Early Split Clipping for Bounding Volume Hierarchies
Despite their algorithmic elegance and robustness, bounding volume hierarchies (BVHs) have not reached the performance of kd-trees for ray tracing. BVHs do not adapt well to scenes containing large triangles with overlapping bounding boxes. A node cannot be smaller than the bounding box of the primitives it contains. Consequently, the leafs and internal nodes will overlap substantially. This slows down ray tracing, because the number of traversal steps and ray-primitive intersections is increased. Unfortunately, this kind of geometry is common in architectural scenes and low-poly CAD models.
In this paper, we present a building algorithm for BVHs that handles such scenes more efficiently. The restriction that each primitive must be contained in exactly one leaf node is relaxed. Bounding boxes of large primitives are refined with recursive split clipping before constructing the hierarchy. The resulting volumes are used as input for a regular BVH building algorithm. Neither scene geometry nor traversal or building algorithms must be modified in any way. The resulting hierarchies are superior for a wide range of data sets, leading to speed-ups of more than a factor of three.