An Efficient k-D tree Traversal Algorithm for Ray Tracing on a GPU

GPU상에서 동작하는 Ray Tracing을 위한 효과적인 k-D tree 탐색 알고리즘

  • 강윤식 (연세대학교 컴퓨터과학과) ;
  • 박우찬 (세종대학교 정보처리학과) ;
  • 서충원 (연세대학교 컴퓨터과학과) ;
  • 양성봉 (연세대학교 컴퓨터과학과)
  • Published : 2008.04.15

Abstract

This paper proposes an effective k-D tree traversal algorithm for ray tracing on a GPU. The previous k-D tree traverse algorithm based on GPU uses bottom-up searching from a leaf to the root after failing to find the ray intersected primitive in the leaf node. During the bottom-up search the algorithm decides the current node is visited or not from the parent node. In such a way, we need to visit the parent node which was already visited and the duplicated bounding box intersection tests. The new k-D tree traverse algorithm reduces the brother and parent duplicated visit by using an efficient method which decides whether the brother node is already visited or not during the bottom-up search. Also the algorithm take place bounding box intersection tests only for the nodes which is not yet done. As a result our experiment shows the new algorithm is about 30% faster than the previous.

본 논문은 GPU상에서 작동되는 ray tracing을 위한 효과적인 k-D tree 탐색 알고리즘을 제안한다. 기존의 k-D tree를 위한 GPU 기반 탐색 알고리즘은 임의의 단말노드에서 교차되는 primitive를 찾지 못한 경우. root 노드 방향으로 bottom-up 탐색하여 부모 노드에서 bounding box 교차검사를 이용해 형제 노드의 기 방문 여부를 판단한다. 이러한 방법은 이미 방문한 부모 노드의 방문과 bounding box 교차검사를 중복적으로 수행한다. 본 논문에서 제안하는 알고리즘은 bottom-up 탐색을 수행 할 때 형제노드가 이전에 방문했는지를 확인할 수 있는 효율적인 방법을 제시함으로써 형제노드 및 부모로드의 방문을 생략하도록 하고, 또한 아직 방문하지 않은 노드에 대해서만 bounding box 교차검사를 수행함으로써 중복된 연산을 피한다. 결과적으로 본 논문의 실험은 기존 알고리즘 대비 제안하는 알고리즘이 약 30%의 성능 향상이 있음을 보여 준다.

Keywords

References

  1. I. Wald, C. Benthin, M. Wagner, and P. Slusallek, 'Interactive Rendering with Coherent Ray Tracing,' EUROGRAPHICS, Vol.20 No.3 pp. 153-164, 2001
  2. I. Wald, T. J. Purcell, J. Schmittler, C. Benthin, and P. Slusallek, 'Realtime Ray Tracing and its Use for Interactive Global Illumination,' EUROGRAPHICS State of the Art Reports, pp. 85-122, 2003
  3. S. Parker, W. Martin, P.-P. J. Sloan, P. Shirley, B. Smits, and C. Hansen, 'Interactive ray tracing,' Proceedings of the 1999 symposium on Interactive 3D graphics, pp. 119-126, 1999
  4. A. Nathan, D. Jesse, and C. John, 'The Ray Engine,' Proceedings of the ACM SIGGRAPH/EUROGRAPHICS conference on Graphics hardware, pp. 37-46, 2002
  5. T. J. Purcell, I. Buck, W. R. Mark, and P. Hanrahan, 'Ray tracing on programmable graphics hardware,' ACM Trans. Graph, pp. 703-712, 2002
  6. N. A. Carr, J. D. Hall, and J. C. Hart, 'The Ray Engine,' Tech. Rep. UIUCDCS-R-2002-2269, Department of Computer Science, University of Illinois, 2002
  7. M. Ernst, C. Vogelgsang, and G. Greiner, 'Stack implementation on programmable graphics hardware,' Vision Modeling and Visualization, pp. 255-262, 2004
  8. V. Havran, 'Heuristic Ray Shooting Algorithms,' Ph.D. thesis, Department of Computer Science and Engineering, Faculty of Electrical Engineering, Czech Technical University in Prague, 2000
  9. T. Foley, and J. Sugerman, 'KD-Tree Acceleration Structures for a GPU Raytracer,' Proceedings of Graphics Hardware, pp. 15-22, 2005
  10. D. R. Horn, J. Sugerman, M. Houston, and P. Hanrahan, 'Interactive k-d tree GPU raytracing,' Proceedings of the 2007 symposium on Interactive 3D graphics and games, pp. 167-174, 2007
  11. S. Popov, J. Gunther, H. P. Seidel, and P. Slusallek, 'Stackless KD-Tree Traversal for High Performance GPU Ray Tracing,' EUROGRAPHICS, Vol.10, No.1, 2007
  12. J. L. Bentley, 'Multidimensional Binary Search Trees Used for Associative Searching,' Communications of the ACM, pp. 509-517, 1975
  13. F. W. Jason, 'Data structures for ray tracing,' Proceedings of the workshop on Data Structures for Raster Graphics, pp. 57-73, 1986
  14. M. Pharr, and G. Humphreys, Physically Based Rendering: From Theory to Implementation. Morgan Kaufmann, 2004
  15. I. Buck, T. Foley, D. Horn, J. Sugerman, K. Fatahalian, M. Houston, and P. Hanrahan, 'Brook for GPUs: Stream computing on graphics hardware,' Proceedings of ACM SIGGRAPH, 2004
  16. J. D. MacDonald, and S. B. Kellogg, 'Heuristics for ray tracing using space subdivision,' The Visual Computer, 1990