CMSC 435/634: Introduction to Computer Graphics

Assignment 6
Shading
Due December 9, 2004

Last update:
Tue Nov 30 15:13:53 EST 2004

The Assignment

For this assignment, you will use RenderMan to render an image using several new surface shaders. The scene and shaders must be your own creation. You can use the scene from assignment 1, or a new scene you create for this assignment. In either case, the you must have at least three different shaders. 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 or image texture
  4. (634 only) Make at least one of your shaders antialias itself by using filterstep rather than if, and fading high frequencies of any fBm loop to the average value.

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".

Some of the grade will be awarded for creativity, originality and effort.

Extra credit

Add one or more displacement shaders and/or a volume or atmposphere shaders demonstrating one or more of the features above. The extra credit is extra, you must still include all of the required features in your surface shaders.

Helpful information

Steve May's RMan Notes, from a course at Ohio State, have many helpful tips on shader development strategies. The RenderMan companion, on reserve in the library, is a good user's guide for shading, including all functions and variables you can use in a shader. The RenderMan specification, is online and has even more details on everything you can do in a shader.

What to turn in

Turn in this assignment electronically by checking your source code into your Assn6 CVS directory by 11:59 PM on the day of the deadline. We will use a dated checkout for grading, so you will be graded on whatever has been checked in as of 11:59 PM. Be sure to include a Makefile that will build your project when we run 'make', and a readme.txt file telling us about your assignment. What (if any) help did you receive from books, web sites or people other than the instructor and TA? What extra credit features did you add?

Also submit everything we need to run your submission. Double check the output of cvs update after you submit to make sure you have not forgotten any important source files. Submit your Makefile, any headers and C/C++ files, and any other auxiliary files we might need. Be sure to comment your code! You will not be graded on the presence or quality of your comments, but we will look at your code and anything that helps us understand what you did (or were trying to do) can only help. In any case, your programs are expected to be robust and easy to understand.