Ray-triangle intersection calculations are responsible for a sizeable amount of the computational time spent in modern day renderers. The large number of triangles in a scene makes testing all of them for possible ray intersections impractical, so special data structures are employed to reduce the search space. One such acceleration structure is the bounding volume hierarchy (BVH), which is a tree-like structure used to group 3D objects hierarchically, with each leaf representing one or more of the objects being stored and internal nodes representing groupings of those objects.

ATRBVH is a new method for building high-quality bounding volume hierarchies on the NVIDIA Kepler GPU architecture using CUDA. By iteratively rearranging the structure of small subsets of the original tree using an agglomerative heuristic, the solution proposed is able to produce structures with quality on par with those generated by the best GPU algorithm in about 30% less time.

This project is the product of my Masters research. The results obtained were published as a paper entitled "Bounding Volume Hierarchy Optimization through Agglomerative Treelet Restructuring", which was presented at the High-Performance Graphics 2015. The PDF file for that paper, as well as the presentation slides, can be found at the publications section.

The source code for this project is publicly available at