The best learning comes from doing, thus this course requires a number of programming assignments. The assignments will focus on two major areas: Ray Tracing and Procedural Shading. Starting with the first week, assignments will be given on a weekly basis. In most cases, the assignment will be due the following week.
The following rules apply to programming assignments:
Programming assignments are collectively worth 100 points. Points are distributed as follows:
| Assignment | Assigned | Due | Cutoff | Points |
| Ray Tracing 1: Setting the Scene | March 14, 2012 | March 21, 2012 | March 30, 2012 | 10 |
| Ray Tracing 2: Camera Modeling | March 21, 2012 | March 28, 2012 | April 6, 2012 | 10 |
| Ray Tracing 3: Basic Shading | March 28, 2012 | April 4, 2012 | April 13, 2012 | 10 |
| Ray Tracing 4: Procedural Shading | April 4, 2012 | April 11, 2012 | April 20, 2012 | 10 |
| Procedural Shading using the RenderMan® Shader Language | April 11, 2012 | May 14, 2012 | 10 | |
| Ray Tracing 5: Reflection | April 18, 2012 | April 25, 2012 | May 4, 2012 | 10 |
| Ray Tracing 6: Transmission | April 25, 2012 | May 2, 2012 | May 11, 2012 | 10 |
| Ray Tracing 7: Tone Reproduction (final code due - submit to myCourses) | May 2, 2012 | May 9, 2012 | May 16, 2012 | 10 |
| Assignment extras | 5 extras, 2 points each | 10 | ||
| Add support for 3D models (triangular meshes) | 5 | |||
| Software design and documentation | 5 | |||
"Cutoff" dates are the last dates on which submissions are accepted. Usually, this is the ninth day after the due date; however, note that assignments due late in the quarter may have shorter (or non-existent) late periods.
Each assignment (except for the first) will have "extras" associated with it. Extra components will be worth 2 points each. In order to obtain the maximum score of 100 on the assignment portion of the course, you will need to complete five extra components. You must also add support for rendering 3D models (worth 5 points). The remaining 5 points will be for your software design and documentation.
Note: Even if you complete more than five extras, your total score for the programming assignments will not exceed 100.
As it is extremely important to continue to make progress as the course progresses, late deliverables will be penalized 10% for each day late. There is an exception to this rule: if you anticipate any problems with meeting deliverable deadlines, see me well in advance (ideally, at least one week) of the deadline that might be missed, and we can attempt to work out alternate arrangements.