For this assignment, extend the ray caster you wrote in 15-462 to simulate specular reflection and transmission with refraction, do antialiasing, and use BSP trees to accelerate ray-surface intersection testing. Use this program to make some attractive animation that shows off these features (details below). You are to work individually on this assignment.
Those of you who took 15-462 from Heckbert, Welling, or Seitz probably implemented a ray caster using the starter code in the following subdirectories of /afs/cs/academic/class/15462/src/ : libdl, raytrace, raymain following this assignment handout or something close to it.
Those of you who took 462 from Davis probably worked from the directory new_ray following this assignment handout.
If you didn't didn't get most of the bugs out of that code, or you'd prefer to start with a clean slate on this assignment, then send email to us ( amperez@andrew ) or talk to us after lecture and we can help you out. Don't wait until the last day to do this!
What you animate could be subdivision surfaces from A2, or almost anything else, as long as it meets the requirements below.
If you happened to implement BSP trees for 462, then implement a different spatial data structure (e.g. hierarchical bounding volumes) this time. Talk to us if you have questions about this.
Frame files should be 640x480 pixel 24 bit TIFFs or JPEGs, with filenames of the form ###.tif or ###.jpg e.g. 000.tif, 001.tif, 002.tif, ... Short animations will be recorded at 15 frames per second, while long ones will be recorded at 30 frames per second. Tell us if you have a preference (we can accomodate 30/k fps for any integer k). Please use a 4/3 aspect ratio (width/height in pixels).
15-463, Computer Graphics 2
Paul Heckbert