CHC+RT: Coherent Hierarchical Culling for Ray Tracing
Abstract
We propose a new technique for in-core and out-of-core GPU ray tracing using a generalization of hierarchical occlusion culling in the style of the CHC++ method. Our method exploits the rasterization pipeline and hardware occlusion queries in order to create coherent batches of work for localized shader-based ray tracing kernels. By combining hierarchies in both ray space and object space, the method is able to share intermediate traversal results among multiple rays. We exploit temporal coherence among similar ray sets between frames and also within the given frame. A suitable management of the current visibility state makes it possible to benefit from occlusion culling for less coherent ray types like diffuse reflections. Since large scenes are still a challenge for modern GPU ray tracers, our method is most useful for scenes with medium to high complexity, especially since our method inherently supports ray tracing highly complex scenes that do not fit in GPU memory. For in-core scenes our method is comparable to CUDA ray tracing and performs up to 5.94 × better than pure shader-based ray tracing.
Supporting Information
Filename | Description |
---|---|
cgf12582-sup-0001-S1.zip10 MB | Supporting Information |
cgf12582-sup-0002-S1.zip143.9 MB | Supporting Information |
Please note: The publisher is not responsible for the content or functionality of any supporting information supplied by the authors. Any queries (other than missing content) should be directed to the corresponding author for the article.
References
- Aila T., Karras T.: Architecture considerations for tracing incoherent rays. In Proc. High-Performance Graphics (2010), pp. 113–122. 2
- Aila T., Laine S.: Understanding the efficiency of ray traversal on GPUs. In Proc. High-Performance Graphics (2009), pp. 145–149. 2, 6
- Aila T., Laine S., Karras T.: Understanding the Efficiency of Ray Traversal on GPUs - Kepler and Fermi Addendum. Tech. Rep. NVR-2012-02, NVIDIA, June 2012. 2, 9
- Amanatides J.: Ray tracing with cones. SIGGRAPH Computer Graphics 18, 3 (1984), 129–135. 2
10.1145/964965.808589 Google Scholar
- Budge B., Bernardin T., Stuart J.A., Sengupta S., Joy K.I., Owens J.D.: Out-of-core data management for path tracing on hybrid resources. Computer Graphics Forum 28, 2 (2009), 385–396. 2
- Bittner J., Hapala M., Havran V.: Fast insertion-based optimization of bounding volume hierarchies. Computer Graphics Forum 32, 1 (2013), 85–100. 9
- Boulos S., Wald I., Benthin C.: Adaptive ray packet reordering. In IEEE Symposium on Interactive Ray Tracing (2008), pp. 131–138. 2
- Bittner J., Wimmer M., Piringer H., Purgathofer W.: Coherent hierarchical culling: Hardware occlusion queries made useful. Computer Graphics Forum 23, 3 (2004), 615–624. 3, 4, 5
- Carr N.A., Hall J.D., Hart J.C.: The ray engine. In Proc. ACM SIGGRAPH/EUROGRAPHICS conference on Graphics hardware (2002), pp. 37–46. 2
- Christensen P.H., Laur D.M., Fong J., Wooten W.L., Batali D.: Ray differentials and multiresolution geometry caching for distribution ray tracing in complex scenes. Computer Graphics Forum 22, 3 (2003), 543–543. 2
- Davidovic T., Engelhardt T., Georgiev I., Slusallek P., Dachsbacher C.: 3D rasterization: abridge between rasterization and ray casting. In Proc. Graphics Interface (2012), pp. 201–208. 2
- Áfra A. T.: Interactive ray tracing of large models using voxel hierarchies. Computer Graphics Forum 31, 1 (2012), 75–88. 2
- Guthe M., Balázs A., Klein R.: Near optimal hierarchical culling: Performance driven use of hardware occlusion queries. In Proc. Eurographics Symposium on Rendering (2006). 3
- Garanzha K., Bely A., Premoze S., Galaktionov V.: Out-of-core GPU ray tracing of complex scenes. In SIGGRAPH Talks (2011), pp. 21:1–21:1. 3
- Gobbetti E., Kasik D., Yoon S.-E.: Technical strategies for massive model visualization. In Proc. ACM Symposium on Solid and Physical Modeling (2008), pp. 405–415. 2
- Garanzha K., Loop C.: Fast ray sorting and breadth-first packet traversal for GPU ray tracing. Computer Graphics Forum 29, 2 (2010), 289–298. 8
- Gobbetti E., Marton F.: Far voxels: A multiresolution framework for interactive rendering of huge complex 3D models on commodity graphics platforms. Transactions on Graphics 24, 3 (2005), 878–885. 3
- Goldsmith J., Salmon J.: Automatic creation of object hierarchies for ray tracing. IEEE Computer Graphics and Applications 7, 5 (1987), 14–20. 2, 4
- Heckbert P.S., Hanrahan P.: Beam tracing polygonal objects. SIGGRAPH Computer Graphics 18, 3 (1984), 119–127. 2
10.1145/964965.808588 Google Scholar
- Hapala M., Havran V.: Review: Kd-tree Traversal Algorithms for Ray Tracing. Computer Graphics Forum 30, 1 (2011), 199–213. 2
- Hu W., Huang Y., Zhang F., Yuan G., Li W.: Ray tracing via GPU rasterization. Visual Computer 30, 6-8 (June 2014), 697–706. 2
- Kim T.-J., Sun X., Yoon S.-E.: T-rex: Interactive global illumination of massive models on heterogeneous computing resources. Transactions on Visualization and Computer Graphics 20, 3 (2014), 481–494. 2
- Laine S., Siltanen S., Lokki T., Savioja L.: Accelerated beam tracing algorithm. Applied Acoustics 70, 1 (2009), 172–181. 2
- Lauterbach C., Yoon S.-E., Tang M., Manocha D.: Reducem: Interactive and memory efficient ray tracing of large models. Computer Graphics Forum 27, 4 (2008), 1313–1321. 2
- Moon B., Byun Y., Kim T.-J., Claudio P., Kim H.-S., Ban Y.-J., Nam S.W., Yoon S.-E.: Cache-oblivious ray reordering. Transactions on Graphics 29, 3 (2010), 1–10. 2, 8
- Mattausch O., Bittner J., Wimmer M.: Chc++: Coherent hierarchical culling revisited. Computer Graphics Forum 27, 3 (2008), 221–230. 3, 5
- Mittring M.: Finding next gen: Cryengine 2. In SIGGRAPH Courses (2007), ACM, pp. 97–121. 7
- Mora B.: Naive ray-tracing: A divide-and-conquer approach. Transactions on Graphics 30, 5 (2011), 117. 2
- Müller P., Wonka P., Haegler S., Ulmer A., Van Gool L.: Procedural modeling of buildings. Transactions on Graphics 25, 3 (July 2006), 614–623. 9
- Novák J., Dachsbacher C.: Rasterized bounding volume hierarchies. Computer Graphics Forum 31, 2 (2012), 403–412. 2
- Parker S.G., Bigler J., Dietrich A., Friedrich H., Hoberock J., Luebke D., McAllister D., McGuire M., Morley K., Robison A., Stich M.: Optix: a general purpose ray tracing engine. Transactions on Graphics 29 (2010), 66:1–66:13. 2
- Pantaleoni J., Fascione L., Hill M., Aila T.: Pantaray: Fast ray-traced occlusion caching of massive scenes. Transactions on Graphics 29 (2010), 37:1–37:10. 3
- Pharr M., Kolb C., Gershbein R., Hanrahan P.: Rendering complex scenes with memory-coherent ray tracing. In Proc. SIGGRAPH (1997), pp. 101–108. 2
- Roger D., Assarsson U., Holzschuch N.: Whitted ray-tracing for dynamic scenes using a ray-space hierarchy on the GPU. In Proc. Eurographics Symposium on Rendering (2007), pp. 99–110. 2
- Ramani K., Gribble C.P., Davis A.: StreamRay: a stream filtering architecture for coherent ray tracing. ACM SIGPLAN Notices 44, 3 (2009), 325–336. 2
- Staneker D., Bartz D., Meissner M.: Improving occlusion query efficiency with occupancy maps. In Proc. Symposium on Parallel and Large-Data Visualization and Graphics (2003), pp. 15-. 3
- Saito T., Takahashi T.: Comprehensible rendering of 3-D shapes. Computer Graphics 24, 4 (1990), 197–206. 3
- Wald I., Mark W.R., Günther J., Boulos S., Ize T., Hunt W., Parker S.G., Shirley P.: State of the Art in Ray Tracing Animated Scenes. Computer Graphics Forum 28, 6 (2009), 1691–1722. 2
- Zirr T., Rehfeld H., Dachsbacher C.: Object-order ray tracing for fully dynamic scenes. In GPU Pro 5. A K Peters/CRC Press, 2014. 2