Flexible Ray Traversal with an Extended Programming Model



Abstract
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.
Paper
Productization
My proposed traversal shader was selected as a feature of the Intel Arc GPU. This new programming model has been available since the Intel Arc 3/5/7 series.
Demo Video (Research on a simulator)
Demo Video (on Intel Arc A770)
This video is a part of a presentation by Adam Lake, Intel's dev engineer, which introduced the Intel Arc GPU at Intel Game Dev All Access 2023. You can see the demo app by traversal shader running on Arc A770.
BibTex
@INPROCEEDINGS{Lee2019sa,
author = {Won-Jong Lee, Gabor Liktor and Karthik Vaidyanathan},
title = {Flexible Ray Traversal with an Extended Programming Model},
booktitle = {Proceedings of ACM SIGGRAPH Asia 2019, Technical Brief},
year = {2019},
pages = {17-20},
}