CMSC 491G/691G: Real-Time Shading

Assignment 3

Advanced Illumination

Due March 17, 2005

Goal

In this assignment, you will be exercising the ability to have multiple objects with different shaders and communication between program and shaders.

The Assignment

A number of lighting models are discussed in Chapters 2 and 6 of the book. You should create shaders to implement at least two of the Lafortune, Banks, Cook-Torrance, Ashikhmin, SVD or Homomorphic factorization models. For the latter two, you should implement the factorization code (can be done on the CPU) as well as the fragment code. Show these models on at least two different objects in a simple scene. All model parameters should be provided from the application, not hard-coded into the shader. You are free to decide how the information is passed; as attributes, interpolated from the vertex shader, through at texture, ...

What (and how) to turn in what you do

Make sure your final version is checked in to your Assn3 CVS directory by 11:59 PM on the day of the deadline. Include a readme.txt telling me about your assignment: What lighting models did you choose? What shading techniques did you use in implementing them? What (if any) help did you receive from books, web sites or people? You should also check in a screenshot of your final results. Finally, you should include everything I'd need to render your project if I were using the same platform, OS and compiler you have chosen. Do not all of the intermediate .o's, executables, or other generated files (other than your screen shot).