Performance analysis for GPU-based ray-triangle algorithms

Several algorithms have been proposed during the past years to solve the ray-triangle intersection test. In this paper we collect the most prominent solutions and describe how to parallelize them on modern programmable graphics processing units (GPUs) by means of NVIDIA CUDA. This paper also provides a comprehensive performance analysis based on several optional features and optimizations (such as back-face culling and the use of pre-computed values) that allowed us to determine the influence of each factor on the performance. Finally, we analyze the architecture of the GPU and its impact on the parallel implementation of each method, as well as the approach used to achieve a high-performance fine-grained parallel computation on the ray-triangle test.

[1]  J. Amanatides,et al.  Ray Tracing Triangular Meshes , 1995 .

[2]  Carsten Benthin,et al.  Realtime ray tracing on current CPU architectures , 2006 .

[3]  H. J. Halin Massively parallel processors , 1996 .

[4]  Tomas Akenine-Möller,et al.  An Evaluation Framework for Ray-Triangle Intersection Algorithms , 2005, J. Graph. Tools.

[5]  Rafael Jesús Segura,et al.  An algorithm for determining intersection segment-polygon in 3D , 1998, Comput. Graph..

[6]  Pat Hanrahan,et al.  Ray tracing on programmable graphics hardware , 2002, SIGGRAPH Courses.

[7]  Adam Herout,et al.  Yet Faster Ray-Triangle Intersection (Using SSE4) , 2010, IEEE Transactions on Visualization and Computer Graphics.

[8]  I. Wald,et al.  Watertight Ray/Triangle Intersection , 2013 .

[9]  P. Shirley,et al.  Optimizing Ray-Triangle Intersection via Automated Search , 2006, 2006 IEEE Symposium on Interactive Ray Tracing.

[10]  Juan José Jiménez-Delgado,et al.  A robust segment/triangle intersection algorithm for interference tests. Efficiency study , 2010, Comput. Geom..

[11]  Jie Cheng,et al.  Programming Massively Parallel Processors. A Hands-on Approach , 2010, Scalable Comput. Pract. Exp..

[12]  Timo Aila,et al.  Understanding the efficiency of ray traversal on GPUs , 2009, High Performance Graphics.

[13]  Tomas Akenine-Möller,et al.  Fast, minimum storage ray/triangle intersection , 1997, J. Graphics, GPU, & Game Tools.

[14]  Sung-Soo Kim,et al.  Hardware-Accelerated Ray-Triangle Intersection Testing for High-Performance Collision Detection , 2007, J. WSCG.

[15]  Andrew S. Glassner,et al.  An introduction to ray tracing , 1989 .

[16]  Antonio J. Rueda Ruiz,et al.  Geometric Algorithms on CUDA , 2008, GRAPP.

[17]  Rafael Jesús Segura,et al.  Algorithms to Test Ray-Triangle Intersection. Comparative Study , 2001, WSCG.

[18]  Maxim Shevtsov,et al.  Ray-Triangle Intersection Algorithm for Modern CPU Architectures , 2007 .

[19]  J. Plucker I. On a new geometry of space , Proceedings of the Royal Society of London.

[20]  D. Badouel An efficient ray-polygon intersection , 1990 .

[21]  Carlos Ureña,et al.  A Vectorized Traversal Algorithm for Ray Tracing , 2009, GRAPP.

[22]  Tim Foley,et al.  KD-tree acceleration structures for a GPU raytracer , 2005, HWWS '05.

[23]  Ming C. Lin,et al.  Collision Detection between Geometric Models: A Survey , 1998 .