The best learning comes from doing; thus, this course requires a number of programming assignments. In this course, the lab exercises are designed to provide you with practical experience in the design and implementation of programmable shaders.
Beginning in week two, the second class period of the week will feature a lab assignment. In each of these, you will be asked to write three shaders (a Basic Shader, an Intermediate Shader, and an Advanced Shader) based on the theory and techniques presented in the previous lecture period. Each shader must be implemented in both RenderMan® and GLSL, resulting in a total of at least six shaders (for GLSL, the shader for a given effect might require both a Vertex and a Fragment Shader). You will be required to submit the following for each lab:
Code for each shader.
Images showing the results for each shader (for GLSL shaders, a screenshot will suffice).
A README file that explains the contents of the submission
for the assignment.
Submission of solutions will be done via try on the CS
Ubuntu systems, using a command of this form:
try wrc-grd shading-N list_of_files
where N is the week number of the lab assignment.
In general, you will have at least a week to complete each lab assignment.
Submissions are due by 23:59:59 (11:59:59pm) on the assigned due date.
Late submissions will be automatically categorized as such by
try; they will be accepted for two days following the
official due date, and will incur a 30% late penalty.
Each assignment will be graded out of 20 points, as follows:
Basic shader: five points each for GLSL and RenderMan
Intermediate shader: three points each for GLSL and RenderMan
Advanced shader: two points each for GLSL and RenderMan
Here is the current schedule (subject to change) of lab assignments:
| Lab # | Assignment (linked to description when assigned) | Assigned | Due | Cutoff |
|---|---|---|---|---|
| - | In-Class Exercise (not submitted, not graded) | 03/11 | never | none |
| 1 | "Hello, Shading!" | 03/13 | 03/20 | 03/22 |
| 2 | Reflection | 03/20 | 04/03 | 04/04 |
| 3 | Textures 1 | 03/27 | 04/08 | 04/10 |
| 4 | Textures 2 | 04/03 | 04/17 | 04/19 |
| 5 | Lighting | 04/17 | 05/02 | 05/04 |
| 6 | Volumetric Effects | 04/24 | 05/08 | 05/10 |
"Cutoff" dates are the last dates on which submissions are accepted (i.e., the last day of the late period for that assignment).