CS114 Projects in Advanced 3D Computer Graphics

University of California @ Irvine, Spring 2017

T/Th 11:00am, ICS 180

Instructor: Shuang Zhao (office hour: W 1:30–2:30pm, DBH 4214)



date topic assignments
4Apr intro (slides)  
6Apr WebGL (slides, demo1, demo2)
instructions on Project 1
Project 1 out
11Apr no lecture: additional office hour
13Apr radiometry (slides)
Monte Carlo integration (slides, demo1, demo2)
Project 1 due
18Apr rendering equation & reflectance models (slides)
instructions on Project 2, Part 1
Project 2, Part 1 out
20Apr path tracing (slides)
25Apr short lecture: instructions on Project 2, Part 2 Project 2, Part 2 out
27Apr no lecture: additional office hour
2May no lecture: additional office hour
4May instructions on final projects (slides)
mass-spring systems (slides)
9May no lecture Project 2 due
11May short lecture: instructions on Project 3 Project 3 out
16May no lecture: additional office hour
18May no lecture: additional office hour Project 3 due
1Jun final project milestone presentations
13Jun final presentation Final Project due

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:

All projects can be done individually or in groups of two.

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.

Due: Thursday Apr 13, 2017 (23:59pm Pacific Time)

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

Due: Tuesday May 9, 2017 (23:59pm Pacific Time)

  • See the project document here.

Due: Thursday May 18, 2017 (23:59pm 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.