CS114 Projects in Advanced 3D Computer Graphics

University of California @ Irvine, Spring 2019

T/Th 5:00 pm, ICS 180

Instructor: Shuang Zhao (office hour: F 10:30–11:30 am, DBH 4214)



date topic assignments
2Apr intro  
4Apr WebGL
instructions on Project 1
Project 1 out
9Apr no lecture
11Apr radiometry
Monte Carlo integration
Project 1 due
16Apr rendering equation & reflectance models
instructions on Project 2, Part 1
Project 2, Part 1 out
18Apr path tracing
23Apr short lecture: instructions on Project 2, Part 2 Project 2, Part 2 out
24Apr no lecture: additional office hour
30Apr no lecture: additional office hour
2May no lecture: additional office hour
7May mass-spring systems Project 2 due
9May instructions on Project 3 & final projects Project 3 out
14May no lecture: additional office hour
16May no lecture: additional office hour Project 3 due
21May no lecture: additional office hour Final project proposal due
23May no lecture: additional office hour
28May no lecture: additional office hour
30May no lecture: additional office hour
4Jun no lecture
6Jun final project milestone presentation

Course Projects

During the first half of the quarter, there will be three small to medium sized projects. The second half of the quarter will focus on one final project. The projects will be weighted as follows:

The final project can be done in groups of two, while others should be completed individually.

Policy for late submissions: Every student has three (3) late days in total to submit his/her work. These late days can be used all for one project or distributed into multiple ones.

Policy for extra credits/challenges: All extra tasks contribute to final grades the same way as the regular ones. On the other hand, these tasks are generally lower "value" as they require significantly more effort to complete.

Due: Thursday Apr 11, 2019 (23:59 pm Pacific Time)

  • See the project document here.
  • Download the project codebase here.

Due: Tuesday May 7, 2019 (23:59 pm Pacific Time)

  • See the project document here.


There is no required textbook. The following is a list of good references for materials covered by this course.

OpenGL Red Book
Dave Shreiner, Graham Sellers, John M. Kessenich and Bill Licea-Kane,
OpenGL Programming Guide: The Official Guide to Learning OpenGL

The famous "OpenGL red book" provides definitive and comprehensive information on OpenGL and the OpenGL Utility Library.

OpenGL Orange Book
Randi J. Rost, Bill Licea-Kane, Dan Ginsburg, John M. Kessenich, Barthold Lichtenbelt, Hugh Malan and Mike Weiblen
OpenGL Shading Language
GI Book
Philip Dutre, Philippe Bekaert, and Kavita Bala
Advanced Global Illumination

A comprehensive book on physically-based rendering with detailed explanations on radiometry, Monte Carlo integration, and various MC solutions to the rendering equation.

Course Policies

Questions, help, discussion: The instructor is available to answer questions, advise on projects, or just to discuss interesting topics related to the class at office hours and by appointment as needed. For electronic communication we are using Piazza (handy link also at the top of this page).

Academic integrity: We assume the work you hand in is your own, and the results you hand in are generated by your program. You're welcome to read whatever you want to learn what you need to do the work, but we do expect you to build your own implementations of the methods we are studying. If you're ever in doubt, just include a citation in your code or report indicating where some idea came from, whether it be a classmate, a web site, another piece of software, or anything—this always maintains your honesty, whether the source was used in a good way or not. The principle is that an assignment is an academic document, like a journal article. When you turn it in, you are claiming that everything in it is your original idea (or is original to you and your partner, if you're handing in as a pair) unless you cite a source for it.

School can be stressful, and your coursework and other factors can put you under a lot of pressure, but that is never a reason for dishonesty. If you feel you can't complete the work on your own, come talk to the professor, or your advisor, and we can help you figure out what to do. Think before you hand in!

Clear-cut cases of dishonesty will result in failing the course.

For more information see UCI's Policy on Academic Honesty.

Collaboration: You are welcome (encouraged, even) to discuss projects among yourselves in general terms. But when it comes to writing up the homeworks or implementing the projects, you need to be working alone (or only with your partner if you are doing a project as a pair). In particular, it's never OK for you to see another student's homework writeup or another team's program code, and certainly never OK to copy parts of one person's or team's writeup, code, or results into another's, even if the general solution was worked out together.