CS 296: Machine Problem 2

Due: April 6, 11:55pm

alt text

Bounding Volume Hierarchy

For your first programming assignment you will implement a Bounding Volume Hierarchy to accelerate your ray-tracer. Your BVH can employ either Axis-Aligned Bounding Boxes (AABBs) or Bounding Spheres. Your BVH should be able to store both triangles and spheres, with each leaf containing exactly one primitive.

Implementation should be in C++ but is otherwise up to you. You can use either an array-based structure or pointer-based for the BVH. Your construction can be either bottom-up or top-down.

There numerous resources you can find to help with your implmentation:

In addition to implementing the acceleration structure, you will perform a small scalability study.: + Rendering three different scenes with a growing number of spheres (e.g. 100 spheres, 1000 spheres, and 10,000 spheres). + Record the time it takes to render with the BVH and without the BVH

Hand-in

You will hand in your code, report, and 1 image:

Hand-in will be done on Compass and detailed instructions will be forthcoming

Technical Details

Grading: Total of 30 pts

Each item is worth 10 points: