CS 551/651: Advanced Computer Graphics
Assignment #1
Goal: Experiment with different bounding volume strategies to accelerating ray tracing
Assigned: Tuesday, February 9, 1999
Due: Tuesday, February 23, 1999
Relevant reading/files/software:
Synopsis: You will continue modifying the RSRT source code, this time to implement ray-tracing acceleration via bounding volume hierarchies. RSRT already supports spherical bounding volumes, though not organized into a hierarchy. In addition, RSRT already supports axis-aligned bounding boxes as a primitive, so the code to use AABBs as a bounding volume should be straightforward. Your modified RSRT should read the input file, specified using the RSRT input format described in the RSRT documentation. This input format allows many different primitives, including spheres, discs, boxes, triangles, and so on. You need only organize triangles into a bounding volume hierarchy—all other primitives are optional. Ideally, your modified ray-tracer will permit other types of primitives even if they are not organized into the hierarchy, but this is not required. You must support two types of hierarchical bounding volumes: spheres and axis-aligned bounding boxes. Command-line options should be provided to choose which type of volume is used. You may optionally support other bounding volumes, e.g. oriented bounding boxes, slabs, ellipsoids, cylinders, etc., or hybrid schemes using multiple types of bounding volumes.
Accelerating a ray tracer with bounding volume hierarchies involves two basic tasks:
You should include a README file that documents what strategy or strategies you used for these tasks, how well they worked, and anything else you learned in the process. Also describe what command-line options are necessary to run your version of RSRT with different bounding volumes and (perhaps) different clustering strategies.
Grading: The usual 10-point scale. An assignment which does everything required perfectly will receive 8 points. An assignment implementing "extras" such as bounding volumes beyond spheres and AABBs, or clustering strategies more sophisticated than an octree, or additional primitives besides triangles, can get up to 9 points. The single fastest ray tracer (according to our test scenes, which will contain many triangles inconveniently distributed) will get 10 points.
Turning in the assignment: Before class starts on Tuesday, February 23, you should:
Advice: