Schedule
WEEK 
DATES 
TUESDAY 
THURSDAY 
HOMEWORK 
1 
9/26, 9/28 
Introduction 
Light and Color 
HW 1 
2 
10/3, 10/5 
Scanline Rendering 1 
Scanline Rendering 2 
HW 2 
3 
10/10, 10/12 
Geometric Modeling 1 
Geometric Modeling 2 
HW 3 
4 
10/17, 10/19 
Optics 
Shaders 
HW 4 
5 
10/24, 10/26 
Texture Mapping 
More Texture Mapping 
HW 5 
6 
10/31, 11/2 
Ray Tracing 
Sampling 
HW 6 
7 
11/7, 11/9 
Reflection and Transmission 
Acceleration Structures 
HW 7 
8 
11/14, 11/16 
Global Illumination 
Photon Mapping 
HW 8 
9 
11/21, 11/23 
Thanksgiving Recess 
Thanksgiving Recess 

10 
11/28, 11/30 
Advanced Rendering 
(OPTIONAL) Inclass QUIZ 

11 
12/5, 12/7 
Final project discussion (CAs) 
Final project discussion (CAs) 
Ray Traced Image 
Supplemental Readings and Reference Materials
There are a number of supplemental readings and reference materials that describe OpenGL and OpenGL ES and touch on many of the topics we will study in this course. A number of these resources, in addition to many other OpenGL and programming books, are available (for free) through SULAIR for Stanford students. If applicable, the links below should allow you to access the books from within the Stanford network. If you are accessing the books from outside the Stanford network, you will need to configure your browser by following these instructions.
 Fundamentals of Computer Graphics, 4th Edition
Steve Marschner and Peter Shirley, A K Peters/CRC Press, 2015.
Errata for 3rd Edition
 OpenGL Programming Guide: The Official Guide to Learning OpenGL, Version 4.3 (8th Edition)
Dave Shreiner, AddisonWesley Professional, 2013.
 OpenGL ES 2.0 Programming Guide, 1st Edition
Aaftab Munshi, Dan Gisburg, and Dave Shreiner, AddisonWesley Professional, 2008.
 Android in Action, 3rd Edition
W. Frank Ableson, Robi Sen, Chris King, and C. Enrique Ortiz, Manning Publications, 2011.
 iOS Programming: The Big Nerd Ranch Guide (3rd Edition)
Joe Conway and Aaron Hillegass, Big Nerd Ranch Guides, 2012.
Course Outline
Content and slides for this course were borrowed from Pat Hanrahan's CS 148 and CS 348B classes, Marc Levoy's computational and digital photography classes, Bernd Girod's EE classes, Michael Lentine and Jon Su's CS 248 class, and James O' Brien and Ravi Ramamoorthi's classes at UC Berkeley.
Supplemental Readings are not mandatory, but are useful sources of information.
 9/26: Introduction
 Lecture: Slides
 Supplemental Readings: None
 Videos:
 9/28: Light and Color
 Lecture: Slides
 Supplemental Readings: Shirley and Marschner, Ch. 21, Color, Ch. 22, Visual Perception, Ch. 23, Tone Reproduction (more detailed than lecture); OpenGL Programming Guide, Ch. 7
 10/3: Scanline Rendering 1
 Lecture: Slides (full)
 Supplemental Readings: Shirley and Marschner, Ch. 1 (Introduction), 2 (Miscellaneous Math), 3 (Raster Images), and 8, OpenGL Programming Guide, Ch. 1 (Introduction to OpenGL), Ch. 2 (State Management and Drawing Primitives), Ch. 3 (Viewing), Appendix C; Shirley and Marschner, Ch. 5 (Linear Algebra), Ch. 6 (Transformation Matrices), and Ch. 7 (Viewing)
 Videos:
 10/5: Scanline Rendering 2
 Lecture: Slides (full)
 Supplemental Readings: Shirley and Marschner, Ch. 1 (Introduction), 2 (Miscellaneous Math), 3 (Raster Images), and 8, OpenGL Programming Guide, Ch. 1 (Introduction to OpenGL), Ch. 2 (State Management and Drawing Primitives), Ch. 3 (Viewing), Appendix C; Shirley and Marschner, Ch. 5 (Linear Algebra), Ch. 6 (Transformation Matrices), and Ch. 7 (Viewing)
 10/9: Maya Tutorial
 10/10: Geometric Modeling 1
 Lecture: Slides
 Supplemental Readings: Shirley and Marschner, Ch 12.1 Triangle Meshes
 10/12: Geometric Modeling 2
 10/17: Optics
 Lecture: Slides
 Supplemental Readings: Shirley and Marschner, Ch. 10 (Surface Shading); OpenGL Programming Guide, Ch. 7 (Lighting)
 10/19: Shaders
 Lecture: Slides
 Supplemental Readings: OpenGL Programming Guide, Ch. 2 (Shader Fundamentals)
 10/24: Texture Mapping
 Lecture: Slides
 Supplemental Readings: Shirley and Marschner, Ch. 11.1 (3D Texture Mapping), Ch. 11.2 (2D Texture Mapping), Ch. 11.3 (Texture Mapping for Rasterized Triangles), Ch. 11.4 (Bump Textures), Ch. 11.5 (Displacement Mapping), and Ch. 11.6 (Environment Mapping); OpenGL Programming Guide, Ch. 6 (Textures)
 10/26: More Texture Mapping
 Lecture: Slides
 Supplemental Readings: Shirley and Marschner, Ch. 11.1 (3D Texture Mapping), Ch. 11.2 (2D Texture Mapping), Ch. 11.3 (Texture Mapping for Rasterized Triangles), Ch. 11.4 (Bump Textures), Ch. 11.5 (Displacement Mapping), and Ch. 11.6 (Environment Mapping); OpenGL Programming Guide, Ch. 6 (Textures)
 10/31: Ray Tracing
 Lecture: Slides
 Supplemental Readings: Shirley and Marschner, Ch. 4 (Ray Tracing)
 11/2: Sampling
 Lecture: Slides
 Supplemental Readings: Shirley and Marschner, Ch. 9 (Signal Processing)
 11/7: Reflection and Transmission
 11/9: Acceleration Structures
 11/14: Global Illumination
 11/16: Photon Mapping
 11/28: Advanced Rendering
 Lecture: Slides
 Supplemental Readings: Shirley and Marschner, Ch. 13.4
(Distribution Ray Tracing) & Ch. 14
(Sampling), Realistic
ray tracing. Peter Shirley, R. Keith Morley. 2nd ed.,
2003. Ch. 4, Physically
based rendering: from theory to implementation. Matt Pharr, Greg
Humphreys. 2nd ed., 2010. Ch. 6 & Ch. 15
 Supplemental Readings: Physically based rendering: from theory to implementation. Matt Pharr, Greg Humphreys. 2nd ed., 2010. Ch. 11 and 16, PhysicallyBased RealTime Lens Flare Rendering by Hullin et al. 2011