This Article 
 Bibliographic References 
 Add to: 
Kd-Jump: a Path-Preserving Stackless Traversal for Faster Isosurface Raytracing on GPUs
November/December 2009 (vol. 15 no. 6)
pp. 1555-1562
David M. Hughes, School of Computer Science, Bangor University, UK
Ik Soo Lim, Computer Science, Bangor University, UK
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 memor y (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.

[1] S. Anderson, Bit twiddling hacks., 2005.
[2] S. Bruckner, S. Grimm, A. Kanitsar, and M. Gröller, Illustrative context-preserving volume rendering. Proc. EuroVis, 2005: 69–76, 2005.
[3] C. Crassin, F. Neyret, S. Lefebvre, and E. Eisemann, Gigavoxels : Ray-guided streaming for efficient and detailed voxel rendering. Symp. Interactive 3D Graphics and Games, pages 15–22, 2009.
[4] K. Engel, M. Kraus, and T. Ertl, High-quality pre-integrated volume rendering using hardware-accelerated pixel shading. Proc. Graphics hardware, pages 9–16, 2001.
[5] T. Foley and J. Sugerman, Kd-tree acceleration structures for a gpu ray-tracer. HWWS '05: Proc. Graphics Hardware, pages 15–22, 2005.
[6] E. Gobbetti, F. Marton, and J. Iglesias Guitián, A single-pass GPU ray casting framework for interactive out-of-core rendering of massive volu-metric datasets. The Visual Computer, 24 (7): 797–806, 2008.
[7] N. Govindaraju, S. Larsen, J. Gray, and D. Manocha, A memory model for scientific algorithms on graphics processors. Proc. IEEE/ACM Supercomputing, pages 89–99, 2006.
[8] M. Grob, C. Lojewski, M. Bertram, and H. Hagen, Fast implicit kd-trees: Accelerated isosurface ray tracing and maximum intensity projection for large scalar fields. Proc. Computer Graphics and Imaging, pages 67–74, 2007.
[9] W. Hong, F. Qiu, and A. Kaufman, Gpu-based object-order ray-casting for large datasets. pages 177–240, 2005.
[10] D. Horn, J. Sugerman, M. Houston, and P. Hanrahan, Interactive kd tree GPU raytracing. Proc. Interactive 3D graphics and games, pages 167–174, 2007.
[11] D. Hughes and I. S. Lim, Kd-jump sourceforge project. http:/
[12] A. Kadosh, D. Cohen-Or, R. Yagel, G. CommerceZone, and I. Jerusalem, Tricubic interpolation of discrete surfaces for binary volumes. Proc. IEEE Transactions on Visualization and Computer Graphics, 9: 580–586, 2003.
[13] A. Knoll, Y. Hijazi, C. Hansen, I. Wald, and H. Hagen, Interactive ray tracing of arbitrary implicits with simd interval arithmetic. Proc. IEEE Symp. on Interactive Ray Tracing, pages 11–18, 2007.
[14] A. Knoll, I. Wald, and C. Hansen, Coherent multiresolution isosurface ray tracing. The Visual Computer, 25 (3): 209–225, 2009.
[15] A. Knoll, I. Wald, S. Parker, and C. Hansen, Interactive isosurface ray tracing of large octree volumes. Proc. IEEE Symp. on Interactive Ray Tracing, pages 115–124, 2006.
[16] C. Lauterbach, M. Garland, S. Sengupta, D. Luebke, and D. Manocha, Fast BVH Construction on GPUs. Computer Graphics Forum, 28: 375–384, 2009.
[17] W. Lorensen and H. Cline, Marching cubes: A high resolution 3D surface construction algorithm. Proc. Computer graphics and interactive techniques, pages 163–169, 1987.
[18] G. Marmitt, H. Friedrich, A. Kleer, I. Wald, and P. Slusallek, Fast and accurate ray-voxel intersection techniques for iso-surface ray tracing. Proc. Vision, Modeling, and Visualization (VMV), pages 429–435, 2004.
[19] S. Parker, M. Parker, Y. Livnat, P. Sloan, C. Hansen, and P. Shirley, Interactive Ray Tracing for Volume Visualization. IEEE Transactions on Visualization and Computer Graphics, 5 (3): 238–250, 1999.
[20] T. Plachetka, Perfect load balancing for demand-driven parallel ray tracing. Lecture Notes in Computer Science, pages 410–419, 2002.
[21] S. Popov, J. Günther, H.-P. Seidel, and P. Slusallek, Stackless kd-tree traversal for high performance GPU ray tracing. Computer Graphics Forum, 26 (3): 415–424, 2007.
[22] E. Reinhard and F. W. Jansen, Hybrid scheduling for efficient ray tracing of complex images. High Performance Computing for Computer Graphics and Visualisation, pages 78–87, July 1995.
[23] I. Viola, A. Kanitsar, and M. Groller, Importance-driven volume rendering. Proc. IEEE Visualization 2004, pages 139–145, 2004.
[24] I. Wald, H. Friedrich, G. Marmitt, and H.-P. Seidel, Faster isosurface ray tracing using implicit kd-trees. IEEE Transactions on Visualization and Computer Graphics, 11 (5): 562–572, 2005.
[25] A. Williams, S. Barrus, R. Morley, and P. Shirley, An efficient and robust ray-box intersection algorithm. Journal of graphics tools, 10 (1): 49–54, 2005.

Index Terms:
Raytracing, isosurface, GPU, parallel computing, volume visualization
David M. Hughes, Ik Soo Lim, "Kd-Jump: a Path-Preserving Stackless Traversal for Faster Isosurface Raytracing on GPUs," IEEE Transactions on Visualization and Computer Graphics, vol. 15, no. 6, pp. 1555-1562, Nov.-Dec. 2009, doi:10.1109/TVCG.2009.161
Usage of this product signifies your acceptance of the Terms of Use.