dc.contributor.author | Garanzha, Kirill | en_US |
dc.contributor.author | Loop, Charles | en_US |
dc.date.accessioned | 2015-02-23T16:39:57Z | |
dc.date.available | 2015-02-23T16:39:57Z | |
dc.date.issued | 2010 | en_US |
dc.identifier.issn | 1467-8659 | en_US |
dc.identifier.uri | http://dx.doi.org/10.1111/j.1467-8659.2009.01598.x | en_US |
dc.description.abstract | We present a novel approach to ray tracing execution on commodity graphics hardware using CUDA. We decompose a standard ray tracing algorithm into several data-parallel stages that are mapped efficiently to the massively parallel architecture of modern GPUs. These stages include: ray sorting into coherent packets, creation of frustums for packets, breadth-first frustum traversal through a bounding volume hierarchy for the scene, and localized ray-primitive intersections. We utilize the well known parallel primitives scan and segmented scan in order to process irregular data structures, to remove the need for a stack, and to minimize branch divergence in all stages. Our ray sorting stage is based on applying hash values to individual rays, ray stream compression, sorting and decompression. Our breadth-first BVH traversal is based on parallel frustum-bounding box intersection tests and parallel scan per each BVH level.We demonstrate our algorithm with area light sources to get a soft shadow effect and show that our concept is reasonable for GPU implementation. For the same data sets and ray-primitive intersection routines our pipeline is 3x faster than an optimized standard depth first ray tracing implemented in one kernel. | en_US |
dc.publisher | The Eurographics Association and Blackwell Publishing Ltd | en_US |
dc.title | Fast Ray Sorting and Breadth-First Packet Traversal for GPU Ray Tracing | en_US |
dc.description.seriesinformation | Computer Graphics Forum | en_US |
dc.description.volume | 29 | en_US |
dc.description.number | 2 | en_US |
dc.identifier.doi | 10.1111/j.1467-8659.2009.01598.x | en_US |
dc.identifier.pages | 289-298 | en_US |