This Article 
 Bibliographic References 
 Add to: 
Raytracing Dynamic Scenes on the GPU Using Grids
January 2012 (vol. 18 no. 1)
pp. 5-16
S. Guntury, Center for Visual Inf. Technol. (CVIT), Int. Inst. of Inf. Technol., Hyderabad, India
P. J. Narayanan, Center for Visual Inf. Technol. (CVIT), Int. Inst. of Inf. Technol., Hyderabad, India
Raytracing dynamic scenes at interactive rates have received a lot of attention recently. We present a few strategies for high performance raytracing on a commodity GPU. The construction of grids needs sorting, which is fast on today's GPUs. The grid is thus the acceleration structure of choice for dynamic scenes as per-frame rebuilding is required. We advocate the use of appropriate data structures for each stage of raytracing, resulting in multiple structure building per frame. A perspective grid built for the camera achieves perfect coherence for primary rays. A perspective grid built with respect to each light source provides the best performance for shadow rays. Spherical grids handle lights positioned inside the model space and handle spotlights. Uniform grids are best for reflection and refraction rays with little coherence. We propose an Enforced Coherence method to bring coherence to them by rearranging the ray to voxel mapping using sorting. This gives the best performance on GPUs with only user-managed caches. We also propose a simple, Independent Voxel Walk method, which performs best by taking advantage of the L1 and L2 caches on recent GPUs. We achieve over 10 fps of total rendering on the Conference model with one light source and one reflection bounce, while rebuilding the data structure for each stage. Ideas presented here are likely to give high performance on the future GPUs as well as other manycore architectures.

[1] I. Wald, W.R. Mark, J. GntherBoulos, S. Boulos, T. Ize, W. Hunt, S.G. Parker, and P. Shirley, “State of the Art in Ray Tracing Animated Scenes,” Computer Graphics Forum, vol. 28, no. 6, pp. 1691-1722, 2009.
[2] A. Reshetov, A. Soupikov, and J. Hurley, “Multi-Level Ray Tracing Algorithm,” ACM Trans. Graphics, vol. 24, no. 3, pp. 1176-1185, 2005.
[3] S. Patidar and P.J. Narayanan, “Ray Casting Deformable Models on the GPU,” Proc. Indian Conf. Computer Vision, Graphics and Image Processing, pp. 481-488, 2008.
[4] S. Guntury and P.J. Narayanan, “Ray Tracing Dynamic Scenes with Shadows on GPU,” Proc. Eurographics Symp. Parallel Graphics and Visualization, pp. 27-34, 2010.
[5] K. Zhou, Q. Hou, R. Wang, and B. Guo, “Real-Time KD-Tree Construction on Graphics Hardware,” ACM Trans. Graphics, vol. 27, no. 5, 2008.
[6] C. Lauterbach, M. Garland, S. Sengupta, D. Luebke, and D. Manocha, “Fast BVH Construction on GPUs,” Computer Graphics Forum, vol. 28, no. 2, pp. 375-384, 2009.
[7] H. Dammertz and A. Keller, “The Edge Volume Heuristic - Robust Triangle Subdivision for Improved BVH Performance,” Proc. IEEE Symp. Interactive Ray Tracing, pp. 155 -158, 2008.
[8] M. Ernst and G. Greiner, “Early Split Clipping for Bounding Volume Hierarchies,” Proc. IEEE Symp. Interactive Ray Tracing, pp. 73-78, 2007.
[9] M. Stich, H. Friedrich, and A. Dietrich, “Spatial Splits in Bounding Volume Hierarchies,” Proc. Conf. High Performance Graphics, pp. 7-13, 2009.
[10] S. Popov, I. Georgiev, R. Dimov, and P. Slusallek, “Object Partitioning Considered Harmful: Space Subdivision for BVHs,” Proc. Conf. High Performance Graphics, pp. 15-22, 2009.
[11] J. Kalojanov and P. Slusallek, “A Parallel Algorithm for Construction of Uniform Grids,” Proc. Conf. High Performance Graphics, pp. 23-28, 2009.
[12] T. Ize, P. Shirley, and S. Parker, “Grid Creation Strategies for Efficient Ray Tracing,” Proc. IEEE Symp. Interactive Ray Tracing, pp. 27-32, 2007.
[13] I. Wald, T. Ize, A. Kensler, A. Knoll, and S.G. Parker, “Ray Tracing Animated Scenes Using Coherent Grid Traversal,” ACM Trans. Graphics, vol. 25, no. 3, pp. 485-493, 2006.
[14] W. Hunt and W. Mark, “Ray Specialized Acceleration Structures for Ray Tracing,” Proc. IEEE Symp. Interactive Ray Tracing, pp. 3-10, 2008.
[15] M. Pharr, C. Kolb, R. Gershbein, and P. Hanrahan, “Rendering Complex Scenes with Memory-Coherent Ray Tracing,” Proc. ACM SIGGRAPH, pp. 101-108, 1997.
[16] P.A. Navratil, D.S. Fussell, C. Lin, and W.R. Mark, “Dynamic Ray Scheduling to Improve Ray Coherence and Bandwidth Utilization,” Proc. IEEE Symp. Interactive Ray Tracing, pp. 95-104, 2007.
[17] B. Moon, Y. Byun, T.-J. Kim, P. Claudio, H.-S. Kim, Y.-J. Ban, S.W. Nam, and S.-E. Yoon, “Cache-Oblivious Ray Reordering,” ACM Trans. Graphics, vol. 29, no. 3, pp. 1-10, 2010.
[18] B.C. Budge, T. Bernardin, J.A. Stuart, S. Sengupta, K.I. Joy, and J.D. Owens, “Out-of-Core Data Management for Path Tracing on Hybrid Resources,” Computer Graphics Forum, vol. 28, no. 2, pp. 385-396, 2009.
[19] K. Garanzha and C. Loop, “Fast Ray Sorting and Breadth-First Packet Traversal for GPU Ray Tracing,” Computer Graphics Forum, vol. 29, no. 2, pp. 289-298, 2010.
[20] T. Aila and T. Karras, “Architecture Considerations for Tracing Incoherent Rays,” Proc. Conf. High Performance Graphics, pp. 113-122, 2010.
[21] J. Nickolls, I. Buck, M. Garland, and K. Skadron, “Scalable Parallel Programming with CUDA,” ACM Queue, vol. 6, pp. 40-53, 2008.
[22] J. Schmittler, S. Woop, D. Wagner, W.J. Paul, and P. Slusallek, “Realtime Ray Tracing of Dynamic Scenes on an FPGA Chip,” Proc. ACM SIGGRAPH/EUROGRAPHICS Conf. Graphics Hardware, pp. 95-106, 2004.
[23] S. Sengupta, M. Harris, Y. Zhang, and J.D. Owens, “Scan Primitives for GPU Computing,” Proc. ACM SIGGRAPH/EUROGRAPHICS Symp. Graphics Hardware, pp. 97-106, 2007.
[24] J. Amanatides and A. Woo, “A Fast Traversal Algorithm for Ray Tracing,” Proc. Eurographics, pp. 3-10, 1987.
[25] T. Aila and S. Laine, “Understanding the Efficiency of Ray Traversal on GPUs,” Proc. Conf. High Performance Graphics, pp. 145-149, 2009.
[26] J. Pantaleoni and D. Luebke, “HLBVH: Hierarchical LBVH Construction for Real-Time Ray Tracing,” Proc. Conf. High Performance Graphics, pp. 87-95, 2010.
[27] N. Satish, M. Harris, and M. Garland, “Designing Efficient Sorting Algorithms for Manycore GPUs,” Proc. IEEE Int'l Symp. Parallel and Distributed Processing (IPDPS), pp. 1-10, 2009.
[28] D.G. Merrill and A.S. Grimshaw, “Revisiting Sorting for GPGPU Stream Architectures,” Proc. Int'l Conf. Parallel Architectures and Compilation Techniques (PACT), pp. 545-546, 2010.
[29] J. Kalojanov, B. Markus, and P. Slusallek, “Two-Level Grids for Ray Tracing on GPUs,” Proc. Eurographics, 2011.

Index Terms:
Graphics processing unit,Instruction sets,Coherence,Data structures,Light sources,GPU.,Raytracing,grids,ray coherence,load balancing
S. Guntury, P. J. Narayanan, "Raytracing Dynamic Scenes on the GPU Using Grids," IEEE Transactions on Visualization and Computer Graphics, vol. 18, no. 1, pp. 5-16, Jan. 2012, doi:10.1109/TVCG.2011.46
Usage of this product signifies your acceptance of the Terms of Use.