CS 6620 Homework 5
Bounding Volume Hierarchy

Spring 2003
University of Utah
Jenny Simpson



Description:

This program uses an implementation of a bounding volume hierarchy in order to make the ray tracer hit code efficient enough to render a highly tessellated image. A bounding volume hierarchy organizes scene objects spatially and stores this information in a tree structure. Searching the tree structure to find the shape that is intersected by a given ray is much more efficient than performing a linear search.


The geometry for this image was read from a ply file. There are a total of 1,087,716 triangles in the model. Since there was no lighting information in the ply file, lighting and material properties were arbitrarily set.

Efficiency Breakdown (Original):

My BVH code is still very slow. The biggest bottleneck is in the build time for the BVH. Replacing calls to qsort with calls to a partition function would likely fix this problem since most of the build time is spent in qsort. My render time needs to optimized further as well. Here are is how my BVH performed on a labnix machine in the NT lab (1400 MHz / 512M memory) using g++ -O3:

  • Scene Creation Time: 100%
    • BVH build time: 293s
    • Other: 12s

  • Rendering scene 100%
    • Render Time: 49s
    • Scene I/O Time: 1s

  • Total Running Time: 355s


Efficiency Breakdown (Latest):

Here is how my BVH performed on jello.sci.utah.edu (2.2 GHz / 1G memory) using g++ -O3:

  • Scene Creation Time: 100%
    • BVH build time: 23s
    • Other: 4s

  • Rendering scene 100%
    • Render Time: 50s
    • Scene I/O Time: 1s

  • Total Running Time: 78s




Last Updated: Fri Feb 28 13:38:09 MST 2003
simpson@cs.utah.edu