Our algorithm allows the AS builder to ignore geometry if no rays traverse their bounds. When rendering the Sponza scene with several dynamic objects (a). Conventional renderers may update the AS of all dynamic objects (b). while our lazy build omits invisible ones including secondary rays (c). We can also extend the scope of the algorithm for procedural geometry, such as tessellation (d). We visualize the bounds of animated patches that were not even tessellated for the current frame (e).
Abstract
Modern ray tracing APIs allow developers to easily build Acceleration Structures (AS) with various optimization techniques. However, the visibility-driven on-demand build can not be implemented with the current APIs due to the lack of flexibility during ray traversal. In this paper, we propose a new algorithm to lazily build ASes for real-time ray tracing with an extended programming model supporting flexible ray traversal. The core idea of our approach is a multi-pass build-traversal, which computes instance visibility and builds the visible ASes in different passes. This allows us to lazily build the entire AS only when necessary without hardware implication. Applying our algorithm to dynamic scenes, we demonstrate that the build cost is significantly reduced with minimal overhead.
Research Area: ray tracing, programming model, BVH, acceleration structures.
Published in SIGGRAPH ASIA 2020