Grading Policy
  Course Folder
  0. Warmup
  1. Line
  2. Triangle
  3. Modeling
  4. Viewing
  5. Lighting
  6. Texturing+PBO
  7. Ray Tracing
  8. Shadows+FBO
  9. Subdivision
  1. Rasterization
  2. Scene, Camera, Lights!
  3. Buffers, Textures, Shaders
  4. Animation
  Image Gallery:

PA1: F15, F14, W13,          W12, W10

PA2: F15, S10, W10

PA3: F15, F14, W13

PA4: S10, W10


Don't see the menu?

Course Notes

OpenGL (ES) APIs Table
Building OpenGL/GLUT Programs
Building OpenGL/GLFW Apps
Command-line Options and Third-party Libraries
OpenGL ES 2.0 Graphics Programming for Android - JAVA
OpenGL ES 3.1 Graphics Programming for Android - Native


Khronos Developers Library
OpenGL Extensions Core Availability

Approaching Zero (→ 0) Driver Overhead (AZDO)
OpenGL NVIDIA Command-list: AZDO by Tristan Lorach at Best of GTC at SIGGRAPH 2015 (video)
AZDO at GDC2014 (video)

Song Ho Ahn's OpenGL Tutorials and OpenGL Projection Matrix
Tom Dalling's Modern OpenGL Tutorials
Lighthouse3D Core GLSL Tutorials including geometry shader
OGLdev OpenGL Tutorials
RasterTek OpenGL 4.0 Tutorials for Windows
OpenGL 3.3+ Tutorials
OpenGL Geometry Shader tutorial
OpenGL Tesselation Shader tutorial
OpenGL Compute Shader tutorial
OpenGL and OpenGL ES sample code

Learning OpenGL ES (on Android)
OpenGL ES 2.0 for iPhone tutorials
NeHe OpenGL Tutorials (on iOS)
OpenGL ES Tutorials

Older Tutorials and Resources:
Ozone3D OpenGL & D3D 8.0 Tutorials
Hplus Graphics
Jerome Jouvie's OpenGL Tutorials and Lessons for Java.
Paul's Projects and Tutorials
Lighthouse 3D Tutorials, incl. GLUT and GLSL
TyphoonLabs' OpenGL Shading Language tutorials
Old Redbook covering OpenGL 1.1
Old Bluebook covering OpenGL 1.1 and GLU reference pages


OpenGL - Latest Articles and Reviews on AnandTech
Vulkan - Graphics and compute belong together
More on Vulkan and SPIR-V at GDC2015
An Overview of Next-Generation Graphics APIs at SIGGRAPH 2015
Vulkan on NVIDIA GPUs by Piers Daniell at Best of GTC at SIGGRAPH 2015 (video)
Vulkan Tutorial
Mantle - Latest Articles and Reviews on AnandTech

Apple's Metal

Thirty Days of Metal
Some Thoughts on Appleā€™s Metal API
Metal - Latest Articles and Reviews on AnandTech

Microsoft's Direct3D

Direct3D 12
Windows on Github
Direct3D - Latest Articles and Reviews on AnandTech
The DirectX 12 Performance Preview: AMD, NVIDIA, & Star Swarm
Exploring DirectX 12: 3DMark API Overhead Feature Test
GeForce + Radeon: Previewing DirectX 12 Multi-Adapter with Ashes of the Singularity

Direct3D 11
Microsoft Windows 8 D3D Tutorial
DirectXTutorial Direct3D 9 and 11 up to 11.2
RasterTek DirectX Tutorials Direct3D 10 and 11 (12 to come)
Microsoft Direct3D 11 tutorials


Direct3D 10 and earlier
Blythe, D., "The Direct3D 10 System," Proc. ACM SIGGRAPH, 2006, and the accompanying presentation
The Direct3D Graphics Pipeline up to Direct3D 9.0
Direct3D 9 doc tree reading signposts
Ozone3D OpenGL & D3D 8.0 Tutorials
Drunken Hyena D3D8 Tutorials


Intro to WebGPU
From WebGL to WebGPU

Other articles, tutorials, books

SIGGRAPH 2009 courses not available in the above archive
Real-Time Rendering
GPU Gems
Merry, B., "Performance Tunig for Tile-Based Architectures," in OpenGL Insights, eds. Cozzi, P. and Riccio, C., CRC Press, 2012
nvidia's documentation
Cg Tutorial
Object/Object Intersection Page
Color Mixing
Tone Mapping
Perlin Noise
Convolution Tutorial
Poynton's and Gamma FAQ
Void, Quaternions, 2003
Zorin et al.'s Subdivision GDC01 tutorial and code
Prusiniewicz, Algorithmic Beauty of Plants
Reynold's NPR site
Comet's 3D modeling, texturing, lighting, animation
Game Developer Magazine
IT Hare's Programming Guide for Video-Gamers (thanks to Adam and Ally Fuller)
A STEM Student's Guide: Learning to Code and Design Video Games (thanks to Amelia and LouAnne Taylor)
The Technology Behind Virtual Reality: Coding and Design (thanks to Katie and Yazmin Casal)

Demoes and Interactive Tutorials

Austin's geometric explanation of SVD
Kalman, D., "A Singularly Valuable Decomposition: The SVD of a Matrix," The College Mathematics Journal, 27:2-23, 1996
Digital Image Processing Interactive Tutorials
BSP Trees Demo (old version)
Color Space Conversion
Michael Bach's 84 Optical Illusions
Algebraic Surfaces
Curve Interpolation
Zymon's BRDF browser


GUI Toolkits
OpenGL Related Toolkits and APIs
GLUT-like Windowing, GUI, and Media Control toolkits
The GUI Toolkit/Framework Page (old)

Shader development:
Nvidia's FX Composer

Javascript/WebGL scenegraphs:
Non-WebGL x3dom

Scenegraphs/Game engine:
Unity Technologies' unity
Epic Games' Unreal Engine
OGRE3D (wiki) and CEGUI

Rendering engine:
Arbaro: tree generation for povray
Pixie: opensource Renderman

glm: OpenGL Mathematics a header-only C++ math library based on GLSL specs
Computational Geometry Algorithms Library
OpenMesh: polygonal mesh data structure
Open Dynamics Engine: rigid body dynamics simulation

Encoding formats:
Collada (wiki)
X3D (Book and Resources)
X3D tutorials
File Formats
GD library

Data Sets

Stanford Data Archives
Debevec's Light Probe Image Gallery

Computer Vision Information Pages