Course Information

Topics

Image input and output devices such as cameras and displays, graphics hardware and software, input technologies and interactive techniques, typography and page layout, light and color representations, exposure and tone reproduction, image processing and compression, sampling, aliasing and antialiasing, two- and three-dimensional geometry, modeling techniques including curves and surfaces, reflection models and illumination algorithms, basic methods of animation, and information visualization.

Textbooks

Required: Shirley and Marschner, Fundamentals of Computer Graphics, 3rd ed. (in a pinch 2nd ed. is ok)

Optional:
- Shreiner et al., The OpenGL Programming Guide, 6th ed. (7th ed. also ok)
- Angel, OpenGL: A Primer, 3rd ed.
- ... or any other decent OpenGL programming guide that covers shaders (GLSL)

Stanford students have free online access to the 2nd ed. of Shirley and Marschner and the 7th ed. of Shreiner et al.

Other books which you are encouraged to consult (get the latest edition you can find):
- Foley, van Dam, Feiner and Hughes, Computer Graphics: Principles and Practice in C
- Hearn and Baker, Computer Graphics, C Version
- Angel, Interactive Computer Graphics: A Top-Down Approach with OpenGL

Schedule

Day Topic Handouts and Reading
June 22 Introduction Slides
Videos:
- Harmonic Fluids
- The AlloSphere
- The Hubble Ultra Deep Field in 3D
June 24 Light and Color Slides
Readings:
- Doug Kerr's excellent introduction to the CIE 1931 spaces
- Shirley Ch. 20 (Light) and 21 (Color)
June 29 Cameras, Displays and Compression Slides
Readings:
- Stollnitz, DeRose and Salesin, Wavelets for Computer Graphics: A Primer, Part 1
July 1 Image Processing Slides
Readings:
- Shirley Ch. 3 (Raster Images) and 9 (Signal Processing)
- Smith and Blinn, Blue Screen Matting, SIGGRAPH '96 - An advanced review of blue/green screen matting
July 6 Geometry Slides
Readings:
- Shirley Ch. 2 (Miscellaneous Math, excluding 2.5 and 2.7 for now) and 6 (Transformation Matrices)
- Optional: Shirley 2.7 (Triangles), Ch. 5 (Linear Algebra)
July 8 Rendering 1 Slides
Readings:
- Shirley Ch. 4 (Ray Tracing) and 13 (More Ray Tracing)
- Introductory articles from Paul Rademacher, and HyperGraph

Extra Stuff:
- Stuff I wrote a long time ago (might have some errors, please let me know)
- A discussion of how to compute reflected and refracted rays
- POV-Ray homepage and Hall of Fame
July 13 Rendering 2 Slides
Readings:
- Shirley Ch. 8 (The Graphics Pipeline) and 2.7 (Triangles)
- Lori DeLooze's OpenGL tutorial

Extra Stuff:
- Angel's OpenGL: A Primer (preferably 3rd ed.)
- Any OpenGL programming guidebook, such as the "Redbook" (Shreiner et al.) Look particularly at the commands we covered in class, and related ones. While you should always read the introductory chapters, we unfortunately can't pick and choose subsequent chapters because the material is often presented in reference, rather than pedagogical, format.
- The OpenGL SDK documentation
July 15 Rendering 3 and Artist Workflow Slides
Readings:
- Shirley Ch. 8 (The Graphics Pipeline) and 18 (Using Graphics Hardware)
- Lighthouse 3D's excellent GLSL tutorial
- Wolfe, Teaching Texture Mapping Visually
July 20 Curves and Surfaces Slides
Readings:
- Shirley Ch. 15.1-15.5 (Curves)
July 22 Animation and Interaction Slides
Readings:
- Shirley Ch. 17 (Computer Animation)
- Lighthouse 3D's GLUT tutorial (esp. useful for AS4)
- Optional: Shirley Ch. 19 (Building Interactive Graphics Applications)
July 27 No class
July 29 No class
August 3 Visualization (Jason Chuang) Slides from Jeff Heer's CS448B class:
- The Value of Visualization
- Data and Image Models
August 5 Programmable Graphics Hardware (Niels) Slides

Extra Stuff:
- Jim Clark, The Geometry Engine, 1982
- Kurt Akeley, RealityEngine Graphics, 1993
- NVIDIA Fermi Compute Architecture Whitepaper, Architecture Overview p.7 to p.11
August 10 Typography and Layout (Niels) Slides
August 12 Sampling, Aliasing and Special Topics Sampling:
- Slides
- SIGGRAPH Antialiasing Course Notes

Quo vadis?
- Slides
- Featured project links:
--- Light field photography
--- Camera 2.0 (Frankencamera)
--- Optimizing Walking Controllers for Uncertain Inputs and Environments
--- Interactive Generation of Human Animation with Deformable Motion Models: Paper, Video
--- Gesture Controllers: Paper, Video
--- Unified Simulation of Elastic Rods, Shells, and Solids: Paper, Video
--- PatchMatch
--- Real-Time Object Segmentation with Semantic Texton Forests
--- Image-Based Exploration of Massive Online Environments
--- NVidia OptiX GPU raytracer
--- A Connection between Partial Symmetry and Inverse Procedural Modeling
--- Metropolis Procedural Modeling
--- Data-Driven Suggestions for Creativity Support in 3D Modeling (coming soon)
--- Non-local Scan Consolidation for 3D Urban Scene
--- NETRA

(Graphics conference papers archive)

Assignments

Assignments will be due at Midnight (23:59:59 PDT) on the scheduled date. This class has no late days, and a 10% penalty per day late will be enforced.

Submit your assignments here

Check your grades here

Assignment Description Due Date Weight
AS1 (results) Render the Mandelbrot Set June 28 23:59:59 PDT 8%
AS2 (results) Feature-Based Image Metamorphosis July 10 23:59:59 PDT 16%
AS3 Raytracing July 25 23:59:59 PDT 18%
AS4 Half-Life Map Loader using OpenGL Aug 9th 23:59:59 PDT 18%

FAQ