top of page

Lazy Build of Acceleration Structures with Traversal Shaders

Won-Jong Lee, and Gabor Liktor

Advanced Rendering Technology Team, Intel




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.


Paper preprint (pdf, 1.7M)

Supplemental material preprint (pdf, 2.6M)

Talk Slides (pdf, 3.2M)

Demo Video

Related Publications

"Flexible Ray Traversal with an Extended Programming Model" Won-Jong Lee, Gabor Liktor, and Karthik Vaidyanathan
ACM SIGGRAPH Asia 2019, Technical Brief, pp. 17-20.


We thank Karthik Vaidyanathan and members of the Advanced Rendering Team for their insightful feedback, and Sven Woop for his help with the Embree tessellation code. We thank David Blythe and Charles Lingle for supporting this research. The assets MARBLES and FAIRY are courtesy of the Utah 3D animation repository, and EXPLODING-DRAGON, CLOTH-BALL, BREAKINGLION, N-BODY are courtesy of UNC dynamic scene benchmarks. BLACK-DRAGON was modeled by Dennis Haupt and the SPONZA scene was modeled by Marko Dabrovic. The DragonBaby model is from the Sintel movie by the Blender Foundation.


author = {Won-Jong Lee and Gabor Liktor},
title = {
Lazy Build of Acceleration Structures with Traversal Shaders},
booktitle = {Proceedings of ACM SIGGRAPH Asia 2019, Technical Communication},
year = {2020},
pages = {},

bottom of page