an evaluation of existing bvh traversal algorithms for efficient multi-hit ray tracing jefferson...

13
An Evaluation of Existing BVH Traversal Algorithms for Efficient Multi-Hit Ray Tracing Jefferson Amstutz (SURVICE) Johannes Guenther (Intel) Ingo Wald (Intel) Christiaan Gribble (SURVICE)

Upload: leslie-turner

Post on 02-Jan-2016

216 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: An Evaluation of Existing BVH Traversal Algorithms for Efficient Multi-Hit Ray Tracing Jefferson Amstutz (SURVICE) Johannes Guenther (Intel) Ingo Wald

An Evaluation of Existing BVH Traversal Algorithms for Efficient Multi-Hit Ray Tracing

Jefferson Amstutz (SURVICE)Johannes Guenther (Intel)

Ingo Wald (Intel)Christiaan Gribble (SURVICE)

Page 2: An Evaluation of Existing BVH Traversal Algorithms for Efficient Multi-Hit Ray Tracing Jefferson Amstutz (SURVICE) Johannes Guenther (Intel) Ingo Wald

The Multi-Hit Problem

• Objective: find more than one (possibly all) hit point along the ray [Gribble et al. ’13]– Ray t-distance sorted order– No ray re-launch

Page 3: An Evaluation of Existing BVH Traversal Algorithms for Efficient Multi-Hit Ray Tracing Jefferson Amstutz (SURVICE) Johannes Guenther (Intel) Ingo Wald

Overlapping Geometry

Page 4: An Evaluation of Existing BVH Traversal Algorithms for Efficient Multi-Hit Ray Tracing Jefferson Amstutz (SURVICE) Johannes Guenther (Intel) Ingo Wald

Overlapping Geometry

Page 5: An Evaluation of Existing BVH Traversal Algorithms for Efficient Multi-Hit Ray Tracing Jefferson Amstutz (SURVICE) Johannes Guenther (Intel) Ingo Wald

Bounding Volume Hierarchies

• BVHs have been one of the premier structures for accelerating rays– Fast builds– Fast traversal

• Node overlaps create issues for doing multi-hit ray tracing

Page 6: An Evaluation of Existing BVH Traversal Algorithms for Efficient Multi-Hit Ray Tracing Jefferson Amstutz (SURVICE) Johannes Guenther (Intel) Ingo Wald

Spatial vs. Object Partitioning

Page 7: An Evaluation of Existing BVH Traversal Algorithms for Efficient Multi-Hit Ray Tracing Jefferson Amstutz (SURVICE) Johannes Guenther (Intel) Ingo Wald

Existing BVH Traversal solutions

• Many state-of-the-art implementations for both CPUs and GPUs– Embree (Intel x86, MIC)– Optix (NVIDIA GPUs)

• Intersection callbacks– Client application injects logic to “accept” or

“reject” individual hit points

Page 8: An Evaluation of Existing BVH Traversal Algorithms for Efficient Multi-Hit Ray Tracing Jefferson Amstutz (SURVICE) Johannes Guenther (Intel) Ingo Wald

Traversal Techniques

• Must be all-hit ray traversal– Cannot *guarantee* first N hits with first/any hit trav.

• Sorting hit points– Sort during ray traversal (progressive)– Sort after hit points gathered (post traversal)

• Hit point data layout– Array of Structures (AoS)

• Scalar sorting

– Structure of Arrays (SoA)• Vectorized sorting

Page 9: An Evaluation of Existing BVH Traversal Algorithms for Efficient Multi-Hit Ray Tracing Jefferson Amstutz (SURVICE) Johannes Guenther (Intel) Ingo Wald

Results (SIMD Sorting Efficiency)

Page 10: An Evaluation of Existing BVH Traversal Algorithms for Efficient Multi-Hit Ray Tracing Jefferson Amstutz (SURVICE) Johannes Guenther (Intel) Ingo Wald

Results (hairball)

Page 11: An Evaluation of Existing BVH Traversal Algorithms for Efficient Multi-Hit Ray Tracing Jefferson Amstutz (SURVICE) Johannes Guenther (Intel) Ingo Wald

Results (pplant)

Page 12: An Evaluation of Existing BVH Traversal Algorithms for Efficient Multi-Hit Ray Tracing Jefferson Amstutz (SURVICE) Johannes Guenther (Intel) Ingo Wald

Results (truck)

Page 13: An Evaluation of Existing BVH Traversal Algorithms for Efficient Multi-Hit Ray Tracing Jefferson Amstutz (SURVICE) Johannes Guenther (Intel) Ingo Wald

Future Work

• Memory allocation strategies for variable hit point buffers– Caching strategies for performance– Reduce/prevent hit point memory waste

• Multi-hit traversal algorithms for BVHs