Programming Assignment P4:
Ray Tracing

Revision 1
Main Due Date: 10:30am Tue. 27 Apr. 1999
Animation Due Date: 11:59pm Tue. 4 May 1999

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).


Starting Point

The starting point for this assignment, which you should hopefully have in place from assignment 4 of 15-462, is a ray caster that traces one ray per pixel and does Phong illumination (diffuse+specular), shadows from point light sources, Phong shading (interpolated normal vectors), and texture mapping. We're not giving points for these capabilities in this assignment.

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.


Requirements

Here are the new parts:

Tips

The following are tips, not requirements.
We don't expect motion blur or depth of field.

Grading Criteria

extra credit for really cool stuff
Last modified 14 Apr. 1999

15-463, Computer Graphics 2
Paul Heckbert