SAH guided spatial split partitioning for fast BVH...
Transcript of SAH guided spatial split partitioning for fast BVH...
![Page 1: SAH guided spatial split partitioning for fast BVH ...fileadmin.cs.lth.se/graphics/research/papers/2016/splitting/splitting... · • Implemented in Intel’s Embree Ray Tracer, version](https://reader034.fdocuments.us/reader034/viewer/2022042317/5f05ac457e708231d41420f8/html5/thumbnails/1.jpg)
SAH guided spatial split partitioning for fast BVH construction
Per Ganestam and Michael Doggett Lund University
![Page 2: SAH guided spatial split partitioning for fast BVH ...fileadmin.cs.lth.se/graphics/research/papers/2016/splitting/splitting... · • Implemented in Intel’s Embree Ray Tracer, version](https://reader034.fdocuments.us/reader034/viewer/2022042317/5f05ac457e708231d41420f8/html5/thumbnails/2.jpg)
Opportunistic triangle splitting for higher quality BVHs
• Bounding Volume Hierarchies (BVH) are a simple, compact 3D data structure commonly used in Ray Tracing • Objective is fast construction, fast tracing, and minimal
memory • Traversal cost : Whiter pixels means higher cost
2
![Page 3: SAH guided spatial split partitioning for fast BVH ...fileadmin.cs.lth.se/graphics/research/papers/2016/splitting/splitting... · • Implemented in Intel’s Embree Ray Tracer, version](https://reader034.fdocuments.us/reader034/viewer/2022042317/5f05ac457e708231d41420f8/html5/thumbnails/3.jpg)
BVH construction
• Focus on a top down approach • Recursively subdivide triangles • Decide where to divide • Surface Area Heuristic (SAH) measures cost • Sweep SAH is a greedy top down method
• Creating a binary tree
![Page 4: SAH guided spatial split partitioning for fast BVH ...fileadmin.cs.lth.se/graphics/research/papers/2016/splitting/splitting... · • Implemented in Intel’s Embree Ray Tracer, version](https://reader034.fdocuments.us/reader034/viewer/2022042317/5f05ac457e708231d41420f8/html5/thumbnails/4.jpg)
Surface Area Heuristic
• A(n) is the surface area • Find the ratio of current triangle’s BB area to parent’s • Consider cost, C, of • intersection of internal, i, and leaf, l, nodes • t, traversal
• Which partitioning gives the lowest cost?
![Page 5: SAH guided spatial split partitioning for fast BVH ...fileadmin.cs.lth.se/graphics/research/papers/2016/splitting/splitting... · • Implemented in Intel’s Embree Ray Tracer, version](https://reader034.fdocuments.us/reader034/viewer/2022042317/5f05ac457e708231d41420f8/html5/thumbnails/5.jpg)
Bonsai BVH construction algorithm
• From "Bonsai: Rapid Bounding Volume Hierarchy Generation using Mini Trees", Ganestam, Barringer, Doggett, and Akenine-Möller, JCGT, Sep. 2015
top tree
bottom tree
a)
b)
c)
mini tree
Partitioning
Built in parallel
Built using Sweep
![Page 6: SAH guided spatial split partitioning for fast BVH ...fileadmin.cs.lth.se/graphics/research/papers/2016/splitting/splitting... · • Implemented in Intel’s Embree Ray Tracer, version](https://reader034.fdocuments.us/reader034/viewer/2022042317/5f05ac457e708231d41420f8/html5/thumbnails/6.jpg)
Bonsai Partitioning using triangle mid-points
• Guarantees no empty partitions
![Page 7: SAH guided spatial split partitioning for fast BVH ...fileadmin.cs.lth.se/graphics/research/papers/2016/splitting/splitting... · • Implemented in Intel’s Embree Ray Tracer, version](https://reader034.fdocuments.us/reader034/viewer/2022042317/5f05ac457e708231d41420f8/html5/thumbnails/7.jpg)
Bonsai algorithm with pruning• For mini-trees with large bounds • Delete node and promote children
Original mini tree
New mini trees
Deleted nodes
Before pruning
After pruning
![Page 8: SAH guided spatial split partitioning for fast BVH ...fileadmin.cs.lth.se/graphics/research/papers/2016/splitting/splitting... · • Implemented in Intel’s Embree Ray Tracer, version](https://reader034.fdocuments.us/reader034/viewer/2022042317/5f05ac457e708231d41420f8/html5/thumbnails/8.jpg)
Triangle Splitting
• Problem : Big and small triangles don’t mix well • Split clipping splits the bounding box • Previous algorithms split before construction • Early Split Clipping [EG07] and EVH [DHK08] • Can result in more triangles and poor splits • Also adds to the overall construction time
• Some algorithms need per scene parameters • Our solution : SAH Spatial Split Partitioning
![Page 9: SAH guided spatial split partitioning for fast BVH ...fileadmin.cs.lth.se/graphics/research/papers/2016/splitting/splitting... · • Implemented in Intel’s Embree Ray Tracer, version](https://reader034.fdocuments.us/reader034/viewer/2022042317/5f05ac457e708231d41420f8/html5/thumbnails/9.jpg)
SAH Spatial Split Partitioning
![Page 10: SAH guided spatial split partitioning for fast BVH ...fileadmin.cs.lth.se/graphics/research/papers/2016/splitting/splitting... · • Implemented in Intel’s Embree Ray Tracer, version](https://reader034.fdocuments.us/reader034/viewer/2022042317/5f05ac457e708231d41420f8/html5/thumbnails/10.jpg)
SAH Spatial Split Partitioning
• Split triangles while partitioning • Create triangle sets • Only split triangles when SAH cost is lower than not
splitting
![Page 11: SAH guided spatial split partitioning for fast BVH ...fileadmin.cs.lth.se/graphics/research/papers/2016/splitting/splitting... · • Implemented in Intel’s Embree Ray Tracer, version](https://reader034.fdocuments.us/reader034/viewer/2022042317/5f05ac457e708231d41420f8/html5/thumbnails/11.jpg)
SAH Spatial Split Partitioning
• Brown box is mid-point bounds and used to find split plane
![Page 12: SAH guided spatial split partitioning for fast BVH ...fileadmin.cs.lth.se/graphics/research/papers/2016/splitting/splitting... · • Implemented in Intel’s Embree Ray Tracer, version](https://reader034.fdocuments.us/reader034/viewer/2022042317/5f05ac457e708231d41420f8/html5/thumbnails/12.jpg)
DL
RD
SAH Spatial Split Partitioning
• Brown box is mid-point bounds and used to find split plane
• Disjoint set • DL, DR
Triangle Sets
![Page 13: SAH guided spatial split partitioning for fast BVH ...fileadmin.cs.lth.se/graphics/research/papers/2016/splitting/splitting... · • Implemented in Intel’s Embree Ray Tracer, version](https://reader034.fdocuments.us/reader034/viewer/2022042317/5f05ac457e708231d41420f8/html5/thumbnails/13.jpg)
O
OL
R
SAH Spatial Split Partitioning
• Disjoint set • DL, DR
• Overlap sets • OL, OR
Triangle Sets
• Brown box is mid-point bounds and used to find split plane • Overlap sets have triangles that overlap the split plane
![Page 14: SAH guided spatial split partitioning for fast BVH ...fileadmin.cs.lth.se/graphics/research/papers/2016/splitting/splitting... · • Implemented in Intel’s Embree Ray Tracer, version](https://reader034.fdocuments.us/reader034/viewer/2022042317/5f05ac457e708231d41420f8/html5/thumbnails/14.jpg)
S
S
L
R
SAH Spatial Split Partitioning
• Disjoint set • DL, DR
• Overlap sets • OL, OR
• Split sets • SL, SR
Triangle Sets
• Brown box is mid-point bounds and used to find split plane • Overlap sets have triangles that overlap the split plane • Split sets contain all overlap triangles
![Page 15: SAH guided spatial split partitioning for fast BVH ...fileadmin.cs.lth.se/graphics/research/papers/2016/splitting/splitting... · • Implemented in Intel’s Embree Ray Tracer, version](https://reader034.fdocuments.us/reader034/viewer/2022042317/5f05ac457e708231d41420f8/html5/thumbnails/15.jpg)
SAH Spatial Split Partitioning algorithm
• Recursively partition using mid-point and SAH cost • Take lowest cost of split vs. not split • Until mini trees are between 512 and 8K triangles
(based on overall scene size) • Mini trees processed using Sweep SAH
![Page 16: SAH guided spatial split partitioning for fast BVH ...fileadmin.cs.lth.se/graphics/research/papers/2016/splitting/splitting... · • Implemented in Intel’s Embree Ray Tracer, version](https://reader034.fdocuments.us/reader034/viewer/2022042317/5f05ac457e708231d41420f8/html5/thumbnails/16.jpg)
Efficient memory allocation
• Problem : Using separate arrays and merging • Solution : In place, memory growing • Memory is allocated for all triangles + 20% • One half of split triangle overwritten in-place • and the other half added to the other side
• What empty space is left is rebalanced • If split triangles don’t fit • Allocate more memory for right set + 20%
![Page 17: SAH guided spatial split partitioning for fast BVH ...fileadmin.cs.lth.se/graphics/research/papers/2016/splitting/splitting... · • Implemented in Intel’s Embree Ray Tracer, version](https://reader034.fdocuments.us/reader034/viewer/2022042317/5f05ac457e708231d41420f8/html5/thumbnails/17.jpg)
Efficient memory allocation
First Last Last free space
Initial triangle array
After partitioning
After splitting andmemory reordering
Left first
Left lastfree space
Left lastRight first
Right last
Right lastfree space
Pivot
![Page 18: SAH guided spatial split partitioning for fast BVH ...fileadmin.cs.lth.se/graphics/research/papers/2016/splitting/splitting... · • Implemented in Intel’s Embree Ray Tracer, version](https://reader034.fdocuments.us/reader034/viewer/2022042317/5f05ac457e708231d41420f8/html5/thumbnails/18.jpg)
Results
• Implemented in Intel’s Embree Ray Tracer, version 2.7.1 • Results generated on laptop CPU (MacBook Pro) with AVX2 support • Consider both build and tracing times • Compare to algorithms
• Without splitting • SweepSAH • Bonsai • BinnedSAH (included in Embree)
• With splitting • BonsaiS (Proposed algorithm) • SweepPre (Proposed algorithm as a pre splitting pass for Sweep) • BinnedPre (Pre-split algorithm in Embree) • BinnedS (Spatial split algorithm in Embree, based on SBVH [SFD09])
![Page 19: SAH guided spatial split partitioning for fast BVH ...fileadmin.cs.lth.se/graphics/research/papers/2016/splitting/splitting... · • Implemented in Intel’s Embree Ray Tracer, version](https://reader034.fdocuments.us/reader034/viewer/2022042317/5f05ac457e708231d41420f8/html5/thumbnails/19.jpg)
Results
19All measurements in ms
![Page 20: SAH guided spatial split partitioning for fast BVH ...fileadmin.cs.lth.se/graphics/research/papers/2016/splitting/splitting... · • Implemented in Intel’s Embree Ray Tracer, version](https://reader034.fdocuments.us/reader034/viewer/2022042317/5f05ac457e708231d41420f8/html5/thumbnails/20.jpg)
Results
20
Without splitting
![Page 21: SAH guided spatial split partitioning for fast BVH ...fileadmin.cs.lth.se/graphics/research/papers/2016/splitting/splitting... · • Implemented in Intel’s Embree Ray Tracer, version](https://reader034.fdocuments.us/reader034/viewer/2022042317/5f05ac457e708231d41420f8/html5/thumbnails/21.jpg)
Results
21
With splitting
![Page 22: SAH guided spatial split partitioning for fast BVH ...fileadmin.cs.lth.se/graphics/research/papers/2016/splitting/splitting... · • Implemented in Intel’s Embree Ray Tracer, version](https://reader034.fdocuments.us/reader034/viewer/2022042317/5f05ac457e708231d41420f8/html5/thumbnails/22.jpg)
BonsaiS is one of 2 best tracing 10/12 times
22
![Page 23: SAH guided spatial split partitioning for fast BVH ...fileadmin.cs.lth.se/graphics/research/papers/2016/splitting/splitting... · • Implemented in Intel’s Embree Ray Tracer, version](https://reader034.fdocuments.us/reader034/viewer/2022042317/5f05ac457e708231d41420f8/html5/thumbnails/23.jpg)
Results
• For 4 scenes BonsaiS traces faster than BinnedS (considered to be the HQ builder) • SweepPre is twice in the top two tracers • and is typically between BinnedS and BinnedPre
(Embree builders) • BinnedS always improves tracing performance of
BinnedSAH, but at much longer build times • BinnedS allocated 34x more memory compared to
BonsaiS (measured with Valgrind) • For Arabic City BonsaiS allocated 735MB, BinnedS 25GB
![Page 24: SAH guided spatial split partitioning for fast BVH ...fileadmin.cs.lth.se/graphics/research/papers/2016/splitting/splitting... · • Implemented in Intel’s Embree Ray Tracer, version](https://reader034.fdocuments.us/reader034/viewer/2022042317/5f05ac457e708231d41420f8/html5/thumbnails/24.jpg)
Parallel scaling• Intel E5-2643V3 dual
socket 12 core CPU • Powerplant scene • Per frame tracing
performance on the 12 core CPU • BonsaiS 105ms • BinnedSAH 162ms
Bu
ild
tim
e (m
s)
0
1500
3000
4500
6000
Number of cores
1 2 4 8 16
BonsaiS BinnedSAH
12
![Page 25: SAH guided spatial split partitioning for fast BVH ...fileadmin.cs.lth.se/graphics/research/papers/2016/splitting/splitting... · • Implemented in Intel’s Embree Ray Tracer, version](https://reader034.fdocuments.us/reader034/viewer/2022042317/5f05ac457e708231d41420f8/html5/thumbnails/25.jpg)
Conclusion
• Simple top down triangle splitting and BVH construction algorithm • Integrated or preprocess triangle splitter • Fast BVH construction and fast ray tracing
• Source code will be available in Embree and on paper web page
• Acknowledgements : Thanks to ELLIIT and the Intel Visual Computing Institute for funding.
![Page 26: SAH guided spatial split partitioning for fast BVH ...fileadmin.cs.lth.se/graphics/research/papers/2016/splitting/splitting... · • Implemented in Intel’s Embree Ray Tracer, version](https://reader034.fdocuments.us/reader034/viewer/2022042317/5f05ac457e708231d41420f8/html5/thumbnails/26.jpg)
Thanks for listening!
![Page 27: SAH guided spatial split partitioning for fast BVH ...fileadmin.cs.lth.se/graphics/research/papers/2016/splitting/splitting... · • Implemented in Intel’s Embree Ray Tracer, version](https://reader034.fdocuments.us/reader034/viewer/2022042317/5f05ac457e708231d41420f8/html5/thumbnails/27.jpg)
Bonus slides
![Page 28: SAH guided spatial split partitioning for fast BVH ...fileadmin.cs.lth.se/graphics/research/papers/2016/splitting/splitting... · • Implemented in Intel’s Embree Ray Tracer, version](https://reader034.fdocuments.us/reader034/viewer/2022042317/5f05ac457e708231d41420f8/html5/thumbnails/28.jpg)
Binary Trees
• GPU (Intel Iris Pro 5200) traversal, CPU shading • BonsaiS improves tracing performance compared to
SweepSAH for all scenes • Similar tracing improvement to [KA13], but with fewer
split triangles
![Page 29: SAH guided spatial split partitioning for fast BVH ...fileadmin.cs.lth.se/graphics/research/papers/2016/splitting/splitting... · • Implemented in Intel’s Embree Ray Tracer, version](https://reader034.fdocuments.us/reader034/viewer/2022042317/5f05ac457e708231d41420f8/html5/thumbnails/29.jpg)
Triangle Counts and SAH costs
• BonsaiS creates fewer additional triangles than the two triangle split methods available in Embree • BonsaiS can split far fewer triangles and get the
same and faster tracing • BonsaiS consistently produces lower SAH costs
![Page 30: SAH guided spatial split partitioning for fast BVH ...fileadmin.cs.lth.se/graphics/research/papers/2016/splitting/splitting... · • Implemented in Intel’s Embree Ray Tracer, version](https://reader034.fdocuments.us/reader034/viewer/2022042317/5f05ac457e708231d41420f8/html5/thumbnails/30.jpg)
DL
R
O
S
D
O
S
L
L
R
R
SAH Spatial Split Partitioning
• Disjoint set • DL, DR
• Overlap sets • OL, OR
• Split sets • SL, SR
Triangle Sets
• Brown box is mid-point bounds and used to find split plane • Overlap sets have triangles that overlap the split plane • Split sets contain all overlap triangles