Premium
Stackless KD‐Tree Traversal for High Performance GPU Ray Tracing
Author(s) -
Popov Stefan,
Günther Johannes,
Seidel HansPeter,
Slusallek Philipp
Publication year - 2007
Publication title -
computer graphics forum
Language(s) - English
Resource type - Journals
SCImago Journal Rank - 0.578
H-Index - 120
eISSN - 1467-8659
pISSN - 0167-7055
DOI - 10.1111/j.1467-8659.2007.01064.x
Subject(s) - tree traversal , computer science , ray tracing (physics) , parallel computing , tree (set theory) , tracing , stack (abstract data type) , computational science , computer graphics (images) , algorithm , operating system , quantum mechanics , mathematical analysis , physics , mathematics
Significant advances have been achieved for realtime ray tracing recently, but realtime performance for complex scenes still requires large computational resources not yet available from the CPUs in standard PCs. Incidentally, most of these PCs also contain modern GPUs that do offer much larger raw compute power. However, limitations in the programming and memory model have so far kept the performance of GPU ray tracers well below that of their CPU counterparts.In this paper we present a novel packet ray traversal implementation that completely eliminates the need for maintaining a stack during kd‐tree traversal and that reduces the number of traversal steps per ray. While CPUs benefit moderately from the stackless approach, it improves GPU performance significantly. We achieve a peak performance of over 16 million rays per second for reasonably complex scenes, including complex shading and secondary rays. Several examples show that with this new technique GPUs can actually outperform equivalent CPU based ray tracers.