Computer Graphics
Number: CSD 15-462
Instructor: Srinivasa Narasimhan
Teaching Assistants: Felipe Gomez-Frittelli (fgomezfr)
Vio Yiqing Zhu (yiqingz)
Yuzuko Nakamura (ynakamur)
Office Hours:
Srinivas: By Appointment
Felipe: Mon 8:00-10:00 PM
Vio: Thur 8:00-10:00 PM
Yuzuko: Wed 8:00-10:00 PM
Time: MW 1:30 pm - 2:50 pm
Location: GHC 4215 (Lecture)
GHC 5201 (Office Hours)
Discussion Board: Piazza
(Email TAs if you did not receive invitation)


This course provides a comprehensive introduction to computer graphics modeling, animation, and rendering. Topics covered include basic image processing, geometric transformations, geometric modeling of curves and surfaces, animation, 3-D viewing, visibility algorithms, shading, and ray tracing.



The programming assignments in this course will be written in C++ and require knowledge of mathematics involving matrices, vectors, etc. Therefore successful completion of the following courses is required:

15-213/18-243 Introduction to Computer Systems

and either

18-202 Mathematical Foundations of Electrical Engineering

or both

21-241 Matrix Algebra, and
21-259 Calculus in Three Dimensions

Once you've completed 15-462, you may be interested in other courses offered by the Carnegie Mellon Graphics Lab.


There are two required textbooks for 15-462 this semester:

Shirley, Peter et. al. Fundamentals of Computer Graphics. 3rd ed. Wellesley: A K Peters, 2009.

OpenGL® Architecture Review Board. OpenGL® Programming Guide. 6th ed. Boston: Addison-Wesley, 2007.

An older edition of the OpenGL® Programming Guide (covering the OpenGL® 1.1 specification) may be found online here and should be sufficient for the purposes of this course. However, the printed text may be of interest as it is newer than the online version and covers the OpenGL® 2.1 specification.

Assignments & Grading

  • (10%) Project 1
  • (15%) Project 2
  • (15%) Project 3
  • (15%) Project 4
  • (15%) Project 5
  • (15%) Midterm Exam
  • (15%) Final Exam
You will be given a total of three "late days" for the semester. You may use these late days to extend the deadline of any programming or written assignment without penalty. Once all three late days have been used, further extensions will only be granted at the instructor's discretion and may incur a grading penalty.

Note: Please use Piazza as a primary resource rather than emailing TAs directly. This will yield a more timely response as all the TAs will be browsing Piazza and your question may even have been answered already!


Note: This syllabus may change during the course. Keep checking back.

Name: Introduction
Date: Mon 08/25
Slides: Lecture 1 Slides
Name: OpenGL®
Date: Wed 08/27
Slides: Lecture 2 Slides
Reading: Red Book Ch. 1 and 2
Notes: Project 1 Assigned
Project: Project 1 Description
Project: Project 1 Handout
Name: Labor Day [no class]
Date: Mon 09/01
Note: First Day of Office Hours
Name: Math for Computer Graphics
Date: Wed 09/03
Slides: Lecture 3 Slides
Notes: Math notes
Name: Transformations
Date: Mon 09/08
Slides: Lecture 4 Slides
Notes: Transformation notes
Name: Viewing/Camera
Date: Wed 09/10
Slides: Lecture 5 Slides
Notes: Viewing notes
Name: Curves and Splines
Date: Mon 09/15
Slides: Lecture 6 Slides
Notes: Splines Notes
Notes: Project 1 Due
Name: Meshes and Surfaces
Date: Wed 09/17
Slides: Lecture 7 Slides
Notes: Subdivision SIGGRAPH Course
Notes: Subdivision Notes
Notes: Project 2 Assigned
Project: Project 2 Description
Project: Project 2 Handout
Name: Lighting and Shadows
Date: Mon 09/22
Slides: Lecture 8 Slides
Name: Materials + Texture Mapping
Date: Wed 09/24
Slides: Lecture 9 Slides
Slides: Texture Mapping Slides
Name: Shaders
Date: Mon 09/29
Slides: Shaders Slides
GLSL Tutorial: Lighthouse3D Tutorial
Ray Tracing
Name: Raycasting/raytracing
Date: Wed 10/01
Slides: Lecture 10 Slides
Name: Spatial Data Structures
Date: Mon 10/06
Slides: Lecture 11 Slides
Notes: Project 2 Due
Notes: Project 3 Assigned
Project: Project 3 Description
Project: Project 3 Handout
Midterm Exam
Name: Midterm Review
Date: Wed 10/08
Name: Midterm Exam
Date: Mon 10/13
Indirect Lighting
Name: Radiosity
Date: Wed 10/15
Slides: Radiosity Reading
Slides: Lecture 12 Slides
Name: Photon Mapping
Date: Mon 10/20
Slides: Lecture 13 Slides
Notes: Photon mapping reading
Name: Subsurface and Volumetric Scattering
Date: Wed 10/22
Slides: Lecture 15 Slides
Slides: Further reading
Name: Direct-Global Separation
Date: Mon 10/27
Slides: Lecture 14 Slides
Notes: Project 3 Due
Notes: Project 4 Assigned
Project: Project 4 Description
Project: Project 4 Scenes
Name: Animation and Motion-capture
Date: Wed 10/29
Slides: Lecture 17 Slides
Notes: Reading
Name: Differential Equations
Date: Mon 11/03
Slides: Lecture 18 Slides
Notes: Reading: Differential Equation Basics
Notes: Reading: Implicit Methods
Name: Particle Systems
Date: Wed 11/05
Slides: Lecture 19 Slides
Name: Image processing
Date: Mon 11/10
Slides: Lecture 20: Image Processing
Name: High Dynamic Range Imaging
Date: Wed 11/12
Slides: Lecture 21 Slides
Name: Photo and Webcam Clipart
Date: Mon 11/17
Link: Lecture 21 Reading
Name: Cameras
Date: Wed 11/19
Link: CVPR Tutorial on Computational Imaging
Notes: Project 4 Due
Notes: Project 5 Assigned
Project: Project 5 Description
Project: Project 5 Handout
Name: GPUs
Date: Mon 11/24
Name: Thanksgiving Holiday [no class]
Date: Wed 11/26
Name: Displays
Date: Mon 12/01
Link: Water Drop Display
Link: Light Sensitive Display
Link: 360 degree Light Field Display
Name: Final Review and Project Showcase
Date: Wed 12/03
Notes: Project 5 Due
Name: Final Exam
Date: Sun 12/14 8:30 AM

Last updated: Oct 28, 2014