Syllabus for CSC 473: Advanced Rendering Techniques

Course Overview:

This course will cover advanced rendering techniques; global illumination via distributed ray tracer using Monte Carlo sampling, and exposure to photon mapping and point based color bleeding.

The majority of the course will be focused on students building their own software renderer (distributed ray tracer with Monte Carlo sampling) over an 8 week period. This is an opportunity to explore individual software development as you incrementally add features. Each student’s program must be implemented using C++ and will be expected to be reasonably designed using appropriate OO techniques and expected to pass established unit tests to demonstrate correctness.

This course requires substantial math and programming skills. Ultimately the goal of this course is to allow you to enhance your individual software engineering skills while building a large piece of software intended to make pretty pictures that more accurately simulate light transport (than OpenGL local lighting models).

This software development process requires you to consider data structures, performance and practice translating mathematics into C++ code. During this quarter you are expected to talk to one another and learn from one another as a community of scholars whom never copy code blindly.

Course Objectives:

By the end of the quarter students will:


Please see the program description for final details. There is a strict late policy for all assignments: if your program is late you will lose:


Physically Based Rendering by Matt Pharr and Greg Humphreys

Class Style and Logistics

I expect you to participate in class and engage with the class material (studies suggest that taking longhand notes is one of the better ways to guarantee your engagement with the material in class) [1]

I also expect you to form a community of scholars for the duration of the quarter (and hopefully longer). My teaching style is very interactive. Laptops have been shown to be distracting in lecture [2] and are not allowed unless specified (or a specific exception is negotiated) - same for cell phones.


All your work you hand in must be your own work, unless otherwise specified. If your program or parts of your program are plagiarized from another student or unapproved source, you will fail the course and a letter will be put in your file with Cal Poly Judicial Affairs