CMSC 435/634: Introduction to Computer Graphics

Assignment 6


Due May 6, 2004

The Assignment

For this assignment, you will use RenderMan to render an image using several new shaders. The scene must be your own creation. It can be the table, bowl and marbles scene from assignment 1, or a new scene you create for this assignment. In either case, the scene must have at least three different shaders you must also create. You should exhibit the following shading features:

  1. Use of mod to make a repeating pattern
  2. Use of fBm or turbulence
  3. Use of a color spline, 1D color table, or 1D texture
  4. (634 only) Use of illuminance to implement Greg Ward's anisotropic shading model described from "Measuring and Modeling Anisotropic Reflection", SIGGRAPH '92 (as detailed in equation 5b).

You can have each feature in a different shader, have them all appear in one, have every feature in every shader, or just about any other combination you want as long as you have at least three different shaders and can identify the use of each "required element".

Extra credit

Up to five points extra credit will be awarded for particularly original or realistic scenes.

What to turn in

Turn in all files necessary to build and render using 3Delight on the You should also include a readme.txt file containing a description of your shaders, and which of the required features are demonstrated by each. Submit the assignment electronically as 'cs435 Proj6' using the submit mechanism:

    submit cs435 Proj6 [files...]

The usual assignment boilerplate applies as always -- submit all source files; comments are your friend and ours, they're a good idea and increase your chances of partial credit since they help us understand what you were trying to do. All work must be your own and developed from scratch for this assignment. You may discuss concepts but not code with your classmates. Use of any "borrowed" code is considered cheating and will be treated accordingly. We must be able to build and run on the GL systems to grade. If you do your development elsewhere, make sure you do not require software not already on the GL/Linux system (in particular, if you use a different RenderMan implementation, it still must run with 3Delight), and be sure to leave time to get your code running/rendering on the GL/Linux systems.