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.
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
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 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.
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% |