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
|