Assignment 2: Shading

CMSC 635, Spring 2004


Choose one object from the set I bring to class (or come see me to pick one). These objects were chosen to have simple geometry (sphere, box, cylinder) but interesting appearance. Create a shader or set of shaders to model objects like yours as closely as possible. For example, if your object is the crumpled sheet of aluminum foil, your shader should look as much as possible like a crumpled sheet of aluminum foil, but it's not necessary to replicate exactly the same wrinkles as appear in your sample object. You may include additional objects (background, etc) or lights to better show off your object, but the thing itself must be modeled through shading, not more complex geometry.

You can use the shading system of your choice. For RenderMan, we have a copy of 3Delight on and in ~rheingan/public/435/3delight. There is a list of other RenderMan compliant renderers at We have limited availability for ATI's Ashli, which supports the RenderMan shading language (but not the RenderMan interface or RIB). For entirely non-RenderMan, some options include the Stanford Real-Time Shading Language for Windows or Linux; NVIDIA's Cg for Windows or Linux; and Microsoft's DirectX 9 HLSL for Windows only.

What to turn in

Turn in all files for your shader and whatever interesting image, images or animation you feel will best show off your efforts. Turn in these files using the gl.umbc submit system by 24:00 Friday March 19th:

submit cs635 Proj2 <files>

You should also include an informal one to two page write-up at the beginning of class March 30th. While the write-up may be informal, I may count off for spelling and grammar. Please proofread before you turn it in. The write-up shoud describe what you did, how you did it, how well you think it worked, and what further work you might do. Include what hardware and software you used (it is not necessary to use the gl.umbc systems, though you must submit there).

Show and tell

On March 30th, I'd like to spend just a couple of minutes each for you to show your original object and shader results and tell the class about the shader you created. Let me know in a README file in your submission which of your submitted files you'd like to show so I can have them loaded up and ready to go.

Useful links

While they're written from a RenderMan point of view, I recommend Steve May's RManNotes as a resource no matter which shading system you choose. It has many helpful suggestions for developing shaders.

If you are using RenderMan, the RenderMan Specification is an excellent resource.