ABSTRACT
Over the past few years, the powerful computation rates and high memory bandwidth of GPUs have attracted efforts to run raytracing on GPUs. Our work extends Foley et al.'s GPU k-d tree research. We port their kd-restart algorithm from multi-pass, using CPU load balancing, to single pass, using current GPUs' branching and looping abilities. We introduce three optimizations: a packetized formulation, a technique for restarting partially down the tree instead of at the root, and a small, fixed-size stack that is checked before resorting to restart. Our optimized implementation achieves 15 - 18 million primary rays per second and 16 - 27 million shadow rays per second on our test scenes.
Our system also takes advantage of GPUs' strengths at rasterization and shading to offer a mode where rasterization replaces eye ray scene intersection, and primary hits and local shading are produced with standard Direct3D code. For 1024x1024 renderings of our scenes with shadows and Phong shading, we achieve 12-18 frames per second. Finally, we investigate the efficiency of our implementation relative to the computational resources of our GPUs and also compare it against conventional CPUs and the Cell processor, which both have been shown to raytrace well.
- ATI, 2006. Radeon X1900 product site. http://ati.amd.com/products/radeonx1900/index.html.Google Scholar
- ATI, 2006. Researcher CTM documentation. http://ati.amd.com/companyinfo/researcher/documents.html.Google Scholar
- Benthin, C., Wald, I., Scherbaum, M., and Friedrich, H. 2006. Ray Tracing on the CELL Processor. In Proceedings of the 2006 IEEE Symposium on Interactive Ray Tracing.Google Scholar
- Blythe, D. 2006. The Direct3D 10 system. ACM Trans. Graph. 25, 3, 724--734. Google ScholarDigital Library
- Buck, I., Foley, T., Horn, D., Sugerman, J., Fatahalian, K., Houston, M., and Hanrahan, P. 2004. Brook for GPUs: Stream computing on graphics hardware. In Proceedings of ACM SIGGRAPH 2004. Google ScholarDigital Library
- Buck, I. 2005. GPU computation strategies. In GPGPU Course Notes - SIGGRAPH 2005. Google ScholarDigital Library
- Carr, N. A., Hoberock, J., Crane, K., and Hart, J. C. 2006. Fast gpu ray tracing of dynamic meshes using geometry images. In Proceedings of Graphics Interface 2006, Canadian Information Processing Society. Google ScholarDigital Library
- Foley, T., and Sugerman, J. 2005. Kd-tree acceleration structures for a gpu raytracer. In HWWS '05: Proceedings of the ACM SIGGRAPH/EUROGRAPHICS conference on Graphics hardware, ACM Press, New York, NY, USA, 15--22. Google ScholarDigital Library
- Havran, V., and Bittner, J. 2002. On improving kd-trees for ray shooting. In Proceedings of WSCG'2002 conference, 209--217.Google Scholar
- Intel, 2006. Intel Core2 Duo Processor. http://www.intel.com/products/processor/core2duo.Google Scholar
- Microsoft, 2003. Directx home page. http://www.microsoft.com/windows/directx/default.asp.Google Scholar
- Purcell, T. J., Buck, I., Mark, W. R., and Hanrahan, P. 2002. Ray tracing on programmable graphics hardware. ACM Trans. Graph., 703--712. Google ScholarDigital Library
- Reshetov, A., Soupikov, A., and Hurley, J. 2005. Multi-level ray tracing algorithm. ACM Trans. Graph. 24, 3, 1176--1185. Google ScholarDigital Library
- Schmittler, J., Wald, I., and Slusallek, P. 2002. Saarcor: a hardware architecture for ray tracing. In HWWS '02: Proceedings of the ACM Google ScholarDigital Library
- SIGGRAPH/EUROGRAPHICS conference on Graphics hardware, Eurographics Association, Aire-la-Ville, Switzerland, Switzerland, 27--36.Google Scholar
- Stanford University, 2006. GPUBench. http://graphics.stanford.edu/projects/gpubench.Google Scholar
- Sugerman, J., Foley, T., Yoshioka, S., and Hanrahan, P., 2006. Ray tracing on a cell processor with software caching. Poster at The 2006 IEEE Symposium on Interactive Ray Tracing. http://www.sci.utah.edu/RT06/full_compendium.pdf.Google Scholar
- Thrane, N., and Simonsen, L. O. 2005. A comparison of acceleration structures for GPU assisted ray tracing. M. S. thesis, University of Aarhus, Aarhus, Denmark.Google Scholar
- Wald, I., Slusallek, P., Benthin, C., and Wagner, M. 2001. Interactive rendering with coherent ray tracing. Computer Graphics Forum 20, 3, 153--164.Google ScholarDigital Library
- Wald, I. 2004. Realtime Ray Tracing and Interactive Global Illumination. PhD thesis, Saarland University.Google Scholar
- Woop, S., Schmittler, J., and Slusallek, P. 2005. Rpu: a programmable ray processing unit for realtime ray tracing. ACM Trans. Graph. 24, 3, 434--444. Google ScholarDigital Library
Index Terms
- Interactive k-d tree GPU raytracing
Recommendations
Brook for GPUs: stream computing on graphics hardware
SIGGRAPH '04: ACM SIGGRAPH 2004 PapersIn this paper, we present Brook for GPUs, a system for general-purpose computation on programmable graphics hardware. Brook extends C to include simple data-parallel constructs, enabling the use of the GPU as a streaming co-processor. We present a ...
Brook for GPUs: stream computing on graphics hardware
In this paper, we present Brook for GPUs, a system for general-purpose computation on programmable graphics hardware. Brook extends C to include simple data-parallel constructs, enabling the use of the GPU as a streaming co-processor. We present a ...
Brook for GPUs: Stream Computing on Graphics Hardware
Seminal Graphics Papers: Pushing the Boundaries, Volume 2In this paper, we present Brook for GPUs, a system for general-purpose computation on programmable graphics hardware. Brook extends C to include simple data-parallel constructs, enabling the use of the GPU as a streaming co-processor. We present a ...
Comments