For this assignment, extend the ray caster you wrote in 15-462 to simulate specular reflection and transmission with refraction, fog, soft shadows, and antialiasing. Use this program to make some attractive animation that shows off most of these effects (details below).
If you didn't take 15-462, or you 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 (andrewb@cs) or talk to us after lecture and we can help you out. Don't wait until the last day to do this!
Recall that in that assignment, most of you took your OpenGL program to draw a generalized cylinder from asst2/3, and modified it slightly to call our library DL, which emulates OpenGL but creates a display list of triangles and spheres, rather than drawing them. We supplied the framework of a ray tracer and you wrote the guts of it (the ray-triangle and ray-sphere intersection routines, in particular). Together, these components allowed you to do simple ray casting. We strongly suggest you skim the 15-462 asst4 web page to make sure you're up to speed. To check that you have the latest version of the support code, compare yours to src/p4/{raytrace,libdl,raymain}. A couple of you wrote your own ray casters from scratch (that is also an option, but not recommended).
We suggest that the surfaces that you animate and ray trace be either the generalized cylinders you created in 462, or the subdivision surfaces you created in 463 P3, but if you're itching to model some new objects, that it OK.
Frame files should be 640x480 pixel 24 bit tiffs, with filenames of the form ###.tiff, i.e. 000.tiff, 001.tiff, 002.tiff, ... We'll assume that you want your animation recorded at 15 frames per second, unless you tell us otherwise (we can accomodate 30/k fps for any integer k). Please use a 4/3 aspect ratio (width/height in pixels).
Email andrewb@cs when your animation is done, telling him how many frames, where they are if not in the standard place, and what frame rate (e.g. 30|15|7.5 per second), and anything we should know about glitches. If your animation will be late, the sooner you can tell us how long it will be and when we can expect it, the better. Low resolution (e.g. 320x240), animation without the listed effects, and late animations will be accepted, but penalized.
15-463, Computer Graphics 2
Paul Heckbert