CS448 Programming Assignment #3 --
Intro to a Real-Time Programmable Shading System

This assignment is due at the start of class on Monday, April 24.

Using the files in /usr/class/cs448/assignments/a3/ (on some machines access this as /n/snell/usr/class...) as a starting point, create a surface similar to either the marble, flame, or planet from Ken Perlin's lecture.

In addition, add a colored spotlight to illuminate the bottom-right part of the sphere, which is only dimly lit in the template program. The colored spotlight must be implemented as a second light, which will require that you write a light shader for it, and active that light shader in main.cpp.

The following pre-defined variables are available in light shaders, and may be helpful:

// Predefined light shader globals

vertex floatv S;           // light-space surface vector, normalized, w=0
vertex float Sdist;        // distance to surface point

Some additional comments on this assignment: