Computer Graphics
Number: CSD 15-462
Instructor: Adrien Treuille
Teaching Assistants: Eric Butler
Zeyang Li ("Linus")
Frank Palermo
Kristin Siu
Office Hours:
Adrien: By Appointment
Linus: M 07:00PM - 09:00PM
Kristin: T 08:00PM - 10:00PM
Eric: W 07:00PM - 09:00PM
Frank: R 03:00PM - 05:00PM
Time: TR 10:30AM - 11:50AM
Location: WEH 7500 (Lecture)
WEH 5336 (TA Office Hours)
Bulletin Board: cmu.cs.class.cs462
(Instructions here.)


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. 2nd ed. Wellesley: A K Peters, 2005.

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

This semester's offering of 15-462 will include four programming projects, two written homeworks, and midterm and final exams. Final grades will be computed as follows:
  • (5%) Homework 1
  • (5%) Homework 2
  • (12%) Project 1
  • (12%) Project 2
  • (18%) Project 3
  • (18%) Project 4
  • (13%) Midterm Exam
  • (17%) Final Exam
Important information about the programming projects is located here.

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.

Final Project Winners

Congratulations to the winners of the final project contest! (Click on any of these images to see the full-size rendering).

Each of this semester's winners received a prize courtesy of Advanced Micro Devices.

Desai Chen
David Joseph Klionsky
Bo Xian See
Zander Strommen


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

Introduction & Basic Math
Name: Introduction
Date: Tues 01/13
Slides: Lecture 1 Slides
Reading: OpenGL® Programming Guide: CH 1-2
Name: OpenGL® Lecture 1
Date: Thurs 01/15
Slides: OpenGL® Basics (Kristin)
Slides: OpenGL® Lighting (Frank)
Reading: OpenGL® Programming Guide: CH 3-6
Name: OpenGL® Lecture 2
Date: Tues 01/20
Notes: Project 1 Assigned
Slides: OpenGL® Transformations (Linus)
Slides: Project 1 (Eric)
Project: Project 1 Description
Project: Project 1 Starter Code
Reading: Fundamentals of Computer Graphics: CH 2
Name: Math for Computer Graphics
Date: Thurs 01/22
Slides: Lecture 4 Slides
Reading: Lecture 4 Notes
Reading: Fundamentals of Computer Graphics: CH 6
Name: Transformations
Date: Tues 01/27
Slides: Lecture 5 Slides
Reading: Lecture 5 Notes
Reading: Fundamentals of Computer Graphics: CH 7
Name: Viewing
Date: Thurs 01/29
Slides: Lecture 6 Slides
Reading: OpenGL® Programming Guide: CH 9
Name: Texture Mapping
Date: Tues 02/03
Notes: Project 1 Due
Notes: Homework 1 Assigned
Slides: Lecture 7 Slides
Homework: Homework 1
Reading: Fundamentals of Computer Graphics: CH 9
Name: Shading
Date: Thurs 02/05
Slides: Lecture 8 Slides
Reading: Fundamentals of Computer Graphics: CH 17
Name: Advanced Texturing / GLSL (Hardware Programming)
Date: Tues 02/10
Notes: Homework 1 Due
Notes: Project 2 Assigned
Slides: Lecture 9 Slides (Linus)
Project: Project 2 Description (Updated 02/18!)
Project: Project 2 Starter Code (TAR.GZ) (Updated 02/20!)
Project: Project 2 Starter Code (ZIP) (Updated 02/20!)
Reading: OpenGL® Shading Language (GLSL) Quick Reference Guide
Reading: Fundamentals of Computer Graphics: CH 15
Name: Curves and Splines
Date: Thurs 02/12
Slides: Lecture 10 Slides
Reading: Caltech Multi-Res Modeling Group - Demos
Reading: Subdivision for Modeling and Animation
Reading: Fundamentals of Computer Graphics: CH 13
Name: Polygon Meshes and Implicit Surfaces
Date: Tues 02/17
Slides: Lecture 11 Slides
Reading: Fundamentals of Computer Graphics: CH 10
Ray Tracing
Name: Ray Casting
Date: Thurs 02/19
Slides: Lecture 12 Slides
Project: Project 2 Description (Updated 02/18!)
Project: Project 2 Starter Code (TAR.GZ) (Updated 02/20!)
Project: Project 2 Starter Code (ZIP) (Updated 02/20!)
Reading: Lecture 12 Notes
Name: Ray Tracing
Date: Tues 02/24
Notes: Project 2 Due
Notes: Homework 2 Assigned
Slides: Lecture 13 Slides
Homework: Homework 2
Name: Spatial Data Structures
Date: Thurs 02/26
Slides: Lecture 14 Slides
Midterm Exam & Spring Break
Name: Midterm Exam Review
Date: Tues 03/03
Notes: Homework 2 Due
Slides: Midterm Exam Review
Name: Midterm Exam
Date: Thurs 03/05
Name: Spring Break [No Lecture]
Date: Tues 03/10
Name: Spring Break [No Lecture]
Date: Thurs 03/12
Notes: Project 3 Assigned
Project: Project 3 Description
Project: Project 3 Starter Code (TAR.GZ)
Project: Project 3 Starter Code (ZIP)
Indirect Illumination
Name: Radiosity
Date: Tues 03/17
Slides: Lecture 16 Slides
Name: Photon Mapping
Date: Thurs 03/19
Slides: Lecture 17 Slides
Name: Animation, Motion Capture, and Keyframing
Date: Tues 03/24
Slides: Lecture 18 Slides
Name: Differential Equations
Date: Thurs 03/26
Slides: Lecture 19 Slides
Name: Particle Systems
Date: Tues 03/31
Slides: Lecture 20 Slides
Name: Cloth and Implicit Integration
Date: Thurs 04/02
Slides: Lecture 21 Slides
Name: Fluids
Date: Tues 04/07
Slides: Lecture 22 Slides
Image Processing
Name: Image Processing
Date: Thurs 04/09
Notes: Project 3 Due
Notes: Project 4 Assigned
Slides: Lecture 23 Slides
Project: Project 4 Description
Project: Project 4 Starter Code (TAR.GZ)
Project: Project 4 Starter Code (ZIP)
Name: Image-Based Rendering
Date: Tues 04/14
Slides: Lecture 24 Slides
Name: Spring Carnival [No Lecture]
Date: Thurs 04/16
Advanced Topics
Name: Guest Lecture: Jean-Francois Lalonde
Date: Tues 04/21
Slides: Lecture 25 Slides
Name: Guest Lecture: Alyosha Efros
Date: Thurs 04/23
Name: Non-Photorealistic Rendering & Visualization
Date: Tues 04/28
Slides: Lecture 27 Slides
Name: Final Exam Review
Date: Thurs 04/30
Notes: Project 4 Due
Slides: Final Exam Review
Final Exam
Name: Final Exam
Date: Tues 05/12
Notes: 8:30AM - 11:30AM. WEH 7500.

Last updated: May 16, 2009