Layout by orngjce223, CC-BY Compact BVH StorageFabianowski ∙ Dingliana Compact BVH Storage for Ray Tracing and Photon Mapping Bartosz Fabianowski ∙ John Dingliana Trinity College Dublin 1 / 22
Layout by orngjce223, CC-BY Compact BVH StorageFabianowski ∙ Dingliana Ray Tracing 2 / 22
Layout by orngjce223, CC-BY Compact BVH StorageFabianowski ∙ Dingliana Ray Tracing 2 / 22
Layout by orngjce223, CC-BY Compact BVH StorageFabianowski ∙ Dingliana Ray Tracing 2 / 22
Layout by orngjce223, CC-BY Compact BVH StorageFabianowski ∙ Dingliana Photon Mapping 3 / 22
Layout by orngjce223, CC-BY Compact BVH StorageFabianowski ∙ Dingliana Photon Mapping 3 / 22
Layout by orngjce223, CC-BY Compact BVH StorageFabianowski ∙ Dingliana Spatial Index (1/2) ● Geometric search through primitives: ● Naïve: ● With spatial index: ● Spatial index: ● Hierarchical organization of primitives ● Traversed recursively from root ● Using stack for branching ● Construction, storage, traversal overhead 4 / 22
Layout by orngjce223, CC-BY Compact BVH StorageFabianowski ∙ Dingliana Spatial Index (2/2) ● Kd-Tree: Binary hierarchy of axis-aligned cutting planes ● BVH: Binary hierarchy of tightly fitting axis- aligned bounding boxes 5 / 22
Layout by orngjce223, CC-BY Compact BVH StorageFabianowski ∙ Dingliana BVH: Ray Tracing 6 / 22
Layout by orngjce223, CC-BY Compact BVH StorageFabianowski ∙ Dingliana BVH: Ray Tracing 6 / 22
Layout by orngjce223, CC-BY Compact BVH StorageFabianowski ∙ Dingliana BVH: Ray Tracing 6 / 22
Layout by orngjce223, CC-BY Compact BVH StorageFabianowski ∙ Dingliana BVH: Ray Tracing 6 / 22
Layout by orngjce223, CC-BY Compact BVH StorageFabianowski ∙ Dingliana BVH: Ray Tracing 6 / 22
Layout by orngjce223, CC-BY Compact BVH StorageFabianowski ∙ Dingliana BVH: Photon Mapping 7 / 22
Layout by orngjce223, CC-BY Compact BVH StorageFabianowski ∙ Dingliana BVH: Photon Mapping 7 / 22
Layout by orngjce223, CC-BY Compact BVH StorageFabianowski ∙ Dingliana BVH: Photon Mapping 7 / 22
Layout by orngjce223, CC-BY Compact BVH StorageFabianowski ∙ Dingliana BVH: Photon Mapping 7 / 22
Layout by orngjce223, CC-BY Compact BVH StorageFabianowski ∙ Dingliana BVH: Photon Mapping 7 / 22
Layout by orngjce223, CC-BY Compact BVH StorageFabianowski ∙ Dingliana BVH: Photon Mapping 7 / 22
Layout by orngjce223, CC-BY Compact BVH StorageFabianowski ∙ Dingliana BVH: Photon Mapping 7 / 22
Layout by orngjce223, CC-BY Compact BVH StorageFabianowski ∙ Dingliana Storage Overhead ● Each node is bounded by six planes: ● Each node has two child references: ● Total storage overhead per node: 8 / 22
Layout by orngjce223, CC-BY Compact BVH StorageFabianowski ∙ Dingliana Child Node Bounding Planes 9 / 22
Layout by orngjce223, CC-BY Compact BVH StorageFabianowski ∙ Dingliana Child Node Bounding Planes 9 / 22
Layout by orngjce223, CC-BY Compact BVH StorageFabianowski ∙ Dingliana Child Node Bounding Planes 9 / 22
Layout by orngjce223, CC-BY Compact BVH StorageFabianowski ∙ Dingliana Child Node Bounding Planes 9 / 22
Layout by orngjce223, CC-BY Compact BVH StorageFabianowski ∙ Dingliana Child Node Bounding Planes 9 / 22
Layout by orngjce223, CC-BY Compact BVH StorageFabianowski ∙ Dingliana Child Node Bounding Planes 9 / 22
Layout by orngjce223, CC-BY Compact BVH StorageFabianowski ∙ Dingliana Child Node Bounding Planes 9 / 22
Layout by orngjce223, CC-BY Compact BVH StorageFabianowski ∙ Dingliana Compact BVH ● At most six of a node pair's twelve bounding planes are not inherited from the parent ● Store only non-inherited planes ● Each node pair has up to six bounding planes: ● Each node pair has two child references: ● Total storage overhead per node pair: 10 / 22
Layout by orngjce223, CC-BY Compact BVH StorageFabianowski ∙ Dingliana Ray Tracing Traversal (1/4) 11 / 22
Layout by orngjce223, CC-BY Compact BVH StorageFabianowski ∙ Dingliana Ray Tracing Traversal (1/4) 11 / 22
Layout by orngjce223, CC-BY Compact BVH StorageFabianowski ∙ Dingliana Ray Tracing Traversal (1/4) 11 / 22
Layout by orngjce223, CC-BY Compact BVH StorageFabianowski ∙ Dingliana Ray Tracing Traversal (1/4) 11 / 22
Layout by orngjce223, CC-BY Compact BVH StorageFabianowski ∙ Dingliana Ray Tracing Traversal (1/4) 11 / 22
Layout by orngjce223, CC-BY Compact BVH StorageFabianowski ∙ Dingliana Ray Tracing Traversal (1/4) 11 / 22
Layout by orngjce223, CC-BY Compact BVH StorageFabianowski ∙ Dingliana Ray Tracing Traversal (1/4) 11 / 22
Layout by orngjce223, CC-BY Compact BVH StorageFabianowski ∙ Dingliana Ray Tracing Traversal (1/4) 11 / 22
Layout by orngjce223, CC-BY Compact BVH StorageFabianowski ∙ Dingliana Ray Tracing Traversal (1/4) 11 / 22
Layout by orngjce223, CC-BY Compact BVH StorageFabianowski ∙ Dingliana Ray Tracing Traversal (2/4) 12 / 22
Layout by orngjce223, CC-BY Compact BVH StorageFabianowski ∙ Dingliana Ray Tracing Traversal (2/4) 12 / 22
Layout by orngjce223, CC-BY Compact BVH StorageFabianowski ∙ Dingliana Ray Tracing Traversal (2/4) 12 / 22
Layout by orngjce223, CC-BY Compact BVH StorageFabianowski ∙ Dingliana Ray Tracing Traversal (2/4) 12 / 22
Layout by orngjce223, CC-BY Compact BVH StorageFabianowski ∙ Dingliana Ray Tracing Traversal (2/4) 12 / 22
Layout by orngjce223, CC-BY Compact BVH StorageFabianowski ∙ Dingliana Ray Tracing Traversal (2/4) 12 / 22
Layout by orngjce223, CC-BY Compact BVH StorageFabianowski ∙ Dingliana Ray Tracing Traversal (2/4) 12 / 22
Layout by orngjce223, CC-BY Compact BVH StorageFabianowski ∙ Dingliana Ray Tracing Traversal (3/4) ● Slabs test: ● Compute interval along ray intersecting node ● Requires all six bounding planes to be known ● Compact BVH: ● Keep track of current interval ● Clip using new bounding planes 13 / 22
Layout by orngjce223, CC-BY Compact BVH StorageFabianowski ∙ Dingliana Ray Tracing Traversal (4/4) 14 / 22
Layout by orngjce223, CC-BY Compact BVH StorageFabianowski ∙ Dingliana Photon Mapping Traversal (1/3) 15 / 22
Layout by orngjce223, CC-BY Compact BVH StorageFabianowski ∙ Dingliana Photon Mapping Traversal (1/3) 15 / 22
Layout by orngjce223, CC-BY Compact BVH StorageFabianowski ∙ Dingliana Photon Mapping Traversal (1/3) 15 / 22
Layout by orngjce223, CC-BY Compact BVH StorageFabianowski ∙ Dingliana Photon Mapping Traversal (1/3) 15 / 22
Layout by orngjce223, CC-BY Compact BVH StorageFabianowski ∙ Dingliana Photon Mapping Traversal (1/3) 15 / 22
Layout by orngjce223, CC-BY Compact BVH StorageFabianowski ∙ Dingliana Photon Mapping Traversal (1/3) 15 / 22
Layout by orngjce223, CC-BY Compact BVH StorageFabianowski ∙ Dingliana Photon Mapping Traversal (1/3) 15 / 22
Layout by orngjce223, CC-BY Compact BVH StorageFabianowski ∙ Dingliana Photon Mapping Traversal (1/3) 15 / 22
Layout by orngjce223, CC-BY Compact BVH StorageFabianowski ∙ Dingliana Photon Mapping Traversal (1/3) 15 / 22
Layout by orngjce223, CC-BY Compact BVH StorageFabianowski ∙ Dingliana Photon Mapping Traversal (2/3) ● Point test: ● Check whether inside each bounding plane ● Can ignore inherited bounding planes ● Compact BVH: ● Check whether inside new bounding planes ● Distribute results to children using bit masks 16 / 22
Layout by orngjce223, CC-BY Compact BVH StorageFabianowski ∙ Dingliana Photon Mapping Traversal (3/3) 17 / 22
Layout by orngjce223, CC-BY Compact BVH StorageFabianowski ∙ Dingliana Results: Ray Tracing 18 / 22
Layout by orngjce223, CC-BY Compact BVH StorageFabianowski ∙ Dingliana Results: Photon Mapping 19 / 22
Layout by orngjce223, CC-BY Compact BVH StorageFabianowski ∙ Dingliana 20 / 22
Layout by orngjce223, CC-BY Compact BVH StorageFabianowski ∙ Dingliana Conclusions ● BVH advantage: ● Fast Rebuilds/Refits ● BVH disadvantage: ● Storage Overhead ● Our compact BVH representation: ● Reduces storage overhead ● Reduces traversal bandwidth ● Increases frame rate ● Leaves construction cost unchanged 21 / 22
Layout by orngjce223, CC-BY Compact BVH StorageFabianowski ∙ Dingliana Questions? 22 / 22