Assignment 2: Shading

CMSC 491/635, Spring 2011

Due March 10, 2011

Assignment

Use the shading language of your choice to replicate the look of one object from the set I bring to class. 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.

Pay particular attention to those aspects of the appearance that make objects of your type unique and interesting. Does it have interesting surface coloration? Bumps or pits? Interesting reflectance properties? Does light shine through it in an interesting way? 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 language of your choice, but you are responsible for aquiring software for your chosen shading system, getting it to run, and producing any models or programs necessary. Options include

For the GPU shading languages, both NVIDIA and AMD have tools to make shader development easier: NVIDIA's FX Compser, AMD's RenderMonkey. 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.

Show and Tell

On March 15th, I'd like to spend just a couple of minutes for each of you to show your original object, shader results, and tell the class about the shader you created. To avoid spending too much time switching computers, we'll just show images or video of the shaders rather than live demos. Let me know in the README file in your submission what files you would like to show so I can have them loaded up and ready to go.

What to submit

Turn in all files for your shaders, any support code, textures, and model files, and whatever interesting image, images or animation you feel will best show off your efforts. You should also check in an informal one to two page write-up in a file named README in your assignment directory. While the write-up may be informal, I will count off for spelling and grammar. Please proofread before you turn it in. The write-up shoud describe what help you got, if any, 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), and what files you'd like to use at the show and tell.

Turn files into the new assn2 directory in your class repository. This new directory is in the repository, but not on your local computer. To get a copy, you'll need to pull andupdate (analogous to commit and push when submitting changes). With command-line hg, you'd run these commands in your local copy:

hg pull
hg update

Once again, I strongly recommend committing your changes often as you work on the assignment. It is your choice whether to push each commit or wait until the end.