CS114 Projects in Advanced 3D Computer Graphics

University of California @ Irvine, Spring 2020

M/W 3:30pm

Instructor: Shuang Zhao (office hour: Fridays 11 am)



date topic assignments
30Mar no class  
1Apr intro  
6Apr WebGL  
8Apr instructions on Project 1 Project 1
13Apr Monte Carlo integration & radiometry  
15Apr instructions on Project 2, Part 1 Project 1 is due
Project 2 is out
20Apr reflectance models & rendering equation  
22Apr path tracing  
27Apr instructions on Project 2, Part 2  
29Apr no lecture: additional office hour
4May no lecture: additional office hour
6May mass-spring systems Project 2 is due
11May instructions on Project 3 and the final project Project 3 is out
13May no lecture  
18May no lecture: additional office hour Project 3 is due
3June Final Project milestone report is due
12June   Final Project is due


During the first half of the quarter, there will be three (3) small to medium sized projects. The second half of the quarter will focus on one final project.

All projects except the final should be done individually.

Late policy: Every student has one (1) free late day for Project 1--3. Additional late submissions will NOT be accepted.

Due: Wednesday Apr 15, 2020 (23:59 Pacific Time)

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

Due: Wednesday May 6, 2020 (23:59 Pacific Time)

  • See the project document here.

Due: Monday May 18, 2020 (23:59 Pacific Time)

  • See the project document here.
  • Download the project codebase here.
  • Check the course slides on Canvas for instructions and rules.

About CS114

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.


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.