Computer Graphics - LUGG

Computer Science | Faculty of Engineering, LTH

Dynamic Ray Stream Traversal

Rasmus Barringer
Lund University

Tomas Akenine-Möller
Lund University & Intel Corporation

Conditionally accepted to SIGGRAPH, 2014.


While each new generation of processors gets larger caches and more compute power, external memory bandwidth capabilities increase at a much lower pace. Additionally, processors are equipped with wide vector units that require low instruction level divergence to be efficiently utilized. In order to exploit these trends in ray tracing, we present an alternative to traditional depth-first ray traversal that takes advantage of the available cache hierarchy, and provides high SIMD efficiency, while keeping memory bus traffic low. Our main contribution is an efficient algorithm for traversing large packets of rays against a bounding volume hierarchy in a way that groups coherent rays during traversal. In contrast to previous large packet traversal methods, our algorithm allows for individual traversal order for each ray, which is essential for efficient ray tracing. Ray tracing algorithms is a mature research field in computer graphics, and despite this, our new technique increases traversal performance by 36-53%, and is applicable to most ray tracers.


An author-generated version of the paper. [pdf 22.1 MB]
Source code