Computer Graphics
Number: CSD 15-462
Instructor: Adrien Treuille
Teaching Assistants: Eric Butler
Kristin Siu
Ilya Gershgorin
Office Hours:
Adrien: By Appointment
Kristin: Wed. 7-9pm
Eric: Tue. 8-10pm
Ilya: Mon. 6-8pm
Time: TR 10:30AM - 11:50AM
Location: GHC 4401 (Lecture)
GHC 5205 (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 five programming projects, four written homeworks, and midterm and final exams. Final grades will be computed as follows:
  • (5%) Homework 1
  • (5%) Homework 2
  • (5%) Homework 3
  • (5%) Homework 4
  • (7%) Project 1
  • (10%) Project 2
  • (10%) Project 3
  • (15%) Project 4
  • (14%) Project 5
  • (12%) Midterm Exam
  • (12%) 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 the Bulletin Board as a primary resource rather than emailing TAs directly. It will yield a more timely respones as all the TAs will be browsing it and your question may even have been answered already!

Project 1 Contest

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

1st Place -- Yantong Liu
2nd Place -- Christopher Lu
3rd Place -- Duncan Boehle

Project 2 Contest

P2 contest winners: Fastest loop subdivision implementations.

1st Place -- Chong-Oak Lee
2nd Place -- Peter Kinney
3rd Place -- Duncan Boehle
Example outputs going from 0 subdivisions to 5 (Click on any of these images for a full-size rendering) :

Project 3 Contest

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

1st Place -- Christopher Lu
Wrote a screen space ambient occlusion (SSAO) and an x-ray shader. Added a tank and cathedral model.
2nd Place -- Chong-Oak Lee
Wrote a shader for colored and blurred motion lines.
3rd Place -- Jian Xiong Yeo
Added a stegosarus model to the plane scene and changed the texture to a sky.
4th Place -- Xiao Lan
Wrote a toon shader.

Project 4 Contest

P4 contest! (Click on any of these images to see the full-size rendering).

1st Place -- Ross Adelman
Wrote a real-time raytracer in GLSL. It can get 10-15fps on his computer on the scenes below and 1-2 on the clusters.
Click on the images to see a video.

2nd Place -- Wei-Feng Huang
Added anti-aliasing and soft shadows.
3rd Place -- Travis Mandel
Added soft reflections and an enviornment map.
4th Place -- Te Hu
Added soft shadows.

Project 5 Contest

P5 contest! (Click on any of these images to see a video).

1st Place -- Yantong Liu
Wrote a simulation where there is a shark swimming around and you can add fish into your flock. The fish try to goal-seek to where you move the goal, but avoid obstacles (including the moving shark), before they seek to the goal.
2nd Place -- Wei-Feng Huang
Wrote a game where there are ghosts chasing you and you collect mushrooms and when you finally collect them all, you become large and all the ghosts run from you!
3rd Place -- Christopher Lu
Wrote a simulation with the fish changing color depending on their velocity.
4th Place -- Travis Mandel
Wrote a game where you are a shark and the fish are going towards a random goal and run from you when you chase them.


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

Name: Introduction
Date: Tues 01/12
Slides: Lecture 1 Slides
Name: Math for Computer Graphics
Date: Thurs 01/14
Slides: Lecture 2 Slides
Notes: Math Notes
Name: OpenGL®
Date: Tues 01/19
Notes: Project 1 Assigned
Slides: Lecture 3 Slides
Project: Project 1 Description
Project: Project 1 Handout
Reading: OpenGL® Programming Guide: CH 1-2
Name: Transformations
Date: Thurs 01/21
Slides: Lecture 4 Slides
Notes: Transformation Notes
Name: Viewing
Date: Tues 01/26
Slides: Lecture 5 Slides
Notes: Viewing Notes
Name: Curves and Splines
Date: Thurs 01/28
Notes: Homework 1 Assigned
Homework: Homework 1
Reading: Shirley 3rd Edition: Chapters 6-7
Slides: Lecture 6 Slides
Notes: Curves and Splines
Name: Polygon Meshes and Implicit Surfaces
Date: Tues 02/02
Notes: Project 1 Due
Slides: Lecture 7 Slides
Name: Subdivision Surfaces
Date: Thurs 02/04
Notes: Homework 1 Due in class
Notes: Project 2 Assigned
Slides: Project 2 Slides
Project: Project 2 Description
Project: Project 2 Handout
Reading: OpenGL® Programming Guide: CH 9
Name: Snow Day!
Date: Tues 02/09
Name: Laplacian Mesh editing
Date: Thurs 02/11
Slides: Lecture 9 Slides
Notes: Lecture 9 Notes
Further Reading: Laplacian surface editing
Name: Texture Mapping
Date: Tues 02/16
Notes: Homework 2 Assigned
Homework: Homework 2
Slides: Lecture 10 Slides
Name: Shading and Advanced Texturing
Date: Thurs 02/18
Notes: Project 2 Due
Notes: Project 3 Assigned
Slides: Lecture 11 Slides
Project: Project 3 Description
Project: Project 3 Handout
Reading: Shirley 3rd Edition: Chapter 10: Surface Shading
Reading: Shirley 3rd Edition: Chapter 11: Texture Mapping
Name: GLSL
Date: Tues 02/23
Notes: Homework 2 Due
Slides: Lecture 12 Slides
Reference: GLSL Reference
Supplemental Reading: Real-Time GPU Rendering of Piecewise Algebraic Surfaces
Supplemental Video: Real-time GPU Rendering of Piecewise Algebraic Surfaces
Name: Non-photorealistic Rendering & Visualization
Date: Thurs 02/25
Slides: Lecture 13 Slides
Midterm Exam & Spring Break
Name: Midterm Exam Review
Date: Tues 03/02
Slides: Review Slides
Name: Midterm Exam
Date: Thurs 03/04
Name: Spring Break [No Lecture]
Date: Tues 03/09
Name: Spring Break [No Lecture]
Date: Thurs 03/11
Name: Image Processing
Date: Tues 03/16
Notes: Project 3 Due
Slides: Lecture 16 Slides
Name: Ray Casting
Date: Thurs 03/18
Notes: Project 4 Assigned
Project: Project 4 Description
Project: Project 4 Handout
Slides: Lecture 17 Slides
Notes: Lecture 17 Notes
Name: Ray Tracing
Date: Tues 03/23
Slides: Lecture 18 Slides
Notes: Lecture 18 Notes
Name: Spatial Data Structures
Date: Thurs 03/25
Slides: Lecture 19 Slides
Name: Photon Mapping
Date: Tues 03/30
Notes: Homework 3 Assigned
Homework: Homework 3
Slides: Lecture 20 Slides
Name: Radiosity
Date: Thurs 04/01
Slides: Lecture 21 Slides
Name: Animation / Flocking
Date: Tues 04/06
Notes: Homework 3 Due
Slides: Lecture 23 Slides
Name: Motion Capture and Keyframing
Date: Thurs 04/08
Notes: Project 4 Due
Notes: Project 5 Assigned
Project: Project 5 Description
Project: Project 5 Handout
Slides: Lecture 24 Slides
Slides: Lecture 24 Slides
Notes: Additional Diff. Eq. Notes
Name: Differential Equations
Date: Tues 04/13
Notes: Homework 4 Assigned
Homework: Homework 4
Slides: Lecture 25 Slides
Name: Carnival!
Date: Thurs 04/15
Name: Creating Images The 2-D Way
(Guest lecturer: Jean-Francois Lalonde)

Date: Tues 04/20
Slides: Lecture 26 Slides
Name: Particle Systems / Cloth and Implicit Integration
Date: Thurs 04/22
Notes: Homework 4 Due
Slides: Lecture 27 Slides
Name: Fluids
Date: Tues 04/27
Notes: Project 5 Due
Slides: Lecture 28 Slides
Final Exam
Name: Final Exam Review
Date: Thurs 04/29
Slides: Lecture 29 Slides
Name: Final Exam
Date: Fri. May 7
Place: WEH 7500
Time: 8:30am - 11:30am

Last updated: Jan 27, 2011