Our programming model enables flexible control of scene hierarchies during traversal. Some example use cases are: distance based LOD with reflections and shadows (a-c), ray-type based LOD with ambient occlusion and diffuse rays(d-e), and multi-level instancing (f-g).
The availability of hardware-accelerated ray tracing in GPUs and standardized APIs has led to a rapid adoption of ray tracing in games. While these APIs allow programmable surface shading and intersections, most of the ray traversal is assumed to be fixed-function.
As a result, the implementation of per-instance Level-of-Detail (LOD) techniques is very limited. In this paper, we propose an extended programming model for ray tracing which includes an additional programmable stage called the traversal shader that enables procedural selection of acceleration structures for instances.
Using this programming model, we demonstrate multiple applications such as procedural multi-level instancing and stochastic LOD selection that can significantly reduce the bandwidth and memory footprint of ray tracing with no perceptible loss in image quality.
Research Area: Rendering, ray tracing, bounding volume hierarchy (BVH).
PDF: Flexible Ray Traversal with an Extended Programming Model (12.34 MB)
Video: Flexible Ray Traversal with an Extended Programming Model
Published in SIGGRAPH ASIA 2019"