GPU Ray-tracing using Irregular Grids

Arsène Pérard-Gayot, Javor Kalojanov, Philipp Slusallek

source code


We present a spatial index structure to accelerate ray tracing on GPUs.
It is a flat, non-hierarchical spatial subdivision of the scene into axis aligned cells of varying size.
In order to construct it, we first nest an octree into each cell of a uniform grid.
We then apply two optimization passes to increase ray traversal performance:
First, we reduce the expected cost for ray traversal by merging cells together.
This adapts the structure to complex primitive distributions, solving the "teapot in a stadium" problem.
Second, we decouple the cell boundaries used during traversal for rays entering and exiting a given cell.
This allows us to extend the exiting boundaries over adjacent cells that are either empty or do not contain additional primitives.
Now, exiting rays can skip empty space and avoid repeating intersection tests.
Finally, we demonstrate that in addition to the fast ray traversal performance, the structure can be rebuilt efficiently in parallel, allowing for ray tracing dynamic scenes.