CS 636 - Advanced Rendering Techniques

Spring 2020

Description: The creation of realistic images from 3D models is central to the development of computer graphics. The ray tracing algorithm has become one of the most popular and powerful techniques for creating photo-realistic images. Ray tracing's simplicity, elegance and ease of implementation make it one of the most important image generation algorithms in computer graphics. This class will explore in detail the algorithmic components of ray tracing.

These include

Students will implement many of these components in their class programming projects.

Other types of rendering algorithms will be discussed, e.g. radiosity, volume rendering, non-photorealistic rendering and photon mapping.

Location - Online

Time - Wednesday, 6:00 PM → 8:50 PM






I intend to use the standard grading scale of 100→ 90 (A), 89→ 80 (B), 79→ 70 (C), 69→ 60 (D), else (F).
Please also note that incompletes will not be given for this course.


Each assignment is worth 10 points.

Post several (at least 3) images generated from each assignment to a web site.

Make sure that your images and the objects in your images are big enough to see/evaluate the effect implemented in each assignment.
Your images should leave no doubt that you have implemented a particular feature correctly.

Programming assignments may be written in any language. But student experience has shown that interpreted languages, e.g. python, are too slow and inefficient for the serious numerical computing needed to do ray tracing.

Collect and submit all of the needed source files for an assignment in a single zip file.

Include a README file that says what source files and which lines contain the code that implements the central feature for that assignment.
I will be looking over your code, instead of trying to run it, in order to grade the assignments.

You can use ImageMagick to read/write images.

Follow all of the instructions listed in the assignments.
5 points will be subtracted from an assignment if all of the instructions aren't followed.

Assignments are due at 11:59PM on the due date. Well, ... I will honor the vampire rule.
  Post images on the web and code on Bb Learn.
  E-mail me the URL.

Late Policy

It is expected that you will do you own work, i.e. write your own software for the assignments.
You cannot "borrow" code from other students or download programs from the Internet.
Specifically, you cannot use the code provided by the Suffern or Shirley books (or their derivatives) for your assignments.

Any student violating this policy will be given an 'F' for the class.

You may use image and basic math libraries, e.g. for storing and manipulating vectors and matrices.

Final Exam

There will be a final exam on material not covered by the regular assignments.

Topics covered on the final exam are

Questions related to these topics will be in a short-answer format.

Class Schedule

Week 1 - 4/8/20

Week 2 - 4/15/20

Week 3 - 4/22/20

Week 4 - 4/29/20

Week 5 - 5/6/20

Week 6 - 5/13/20

Week 7 - 5/20/20

Week 8 - 5/27/20

Week 9 - 6/3/20

Last modified on June 2, 2020.