Kd-Jump: a Path-Preserving Stackless Traversal for Faster Isosurface Raytracing on GPUs
School of Computer Science, Bangor University, UK
IEEE Transactions on Visualization and Computer Graphics, 2009
@article{hughes2009kd,
title={Kd-jump: a path-preserving stackless traversal for faster isosurface raytracing on gpus},
author={Hughes, D.M. and Lim, I.S.},
journal={Visualization and Computer Graphics, IEEE Transactions on},
volume={15},
number={6},
pages={1555–1562},
year={2009},
publisher={IEEE}
}
Stackless traversal techniques are often used to circumvent memory bottlenecks by avoiding a stack and replacing return traversal with extra computation. This paper addresses whether the stackless traversal approaches are useful on newer hardware and technology (such as CUDA). To this end, we present a novel stackless approach for implicit kd-trees, which exploits the benefits of index-based node traversal, without incurring extra node visitation. This approach, which we term Kd-Jump, enables the traversal to immediately return to the next valid node, like a stack, without incurring extra node visitation (kd-restart). Also, Kd-Jump does not require global memory (stack) at all and only requires a small matrix in fast constant-memory. We report that Kd-Jump outperforms a stack by 10 to 20% and kd-restar t by 100%. We also present a Hybrid Kd-Jump, which utilizes a volume stepper for leaf testing and a run-time depth threshold to define where kd-tree traversal stops and volume-stepping occurs. By using both methods, we gain the benefits of empty space removal, fast texture-caching and realtime ability to determine the best threshold for current isosurface and view direction.
June 26, 2011 by hgpu