msbvh an efficient acceleration data structure for ray
play

MSBVH: An Efficient Acceleration Data Structure for Ray Traced - PowerPoint PPT Presentation

MSBVH: An Efficient Acceleration Data Structure for Ray Traced Motion Blur Leonhard Gr unschlo Martin Stich Sehera Nawaz Alexander Keller August 6, 2011 Principles of Accelerated Ray Tracing Hierarchical culling object list


  1. MSBVH: An Efficient Acceleration Data Structure for Ray Traced Motion Blur Leonhard Gr¨ unschloß Martin Stich Sehera Nawaz Alexander Keller August 6, 2011

  2. Principles of Accelerated Ray Tracing Hierarchical culling ◮ object list partitioning ⇒ BVH

  3. Principles of Accelerated Ray Tracing Hierarchical culling ◮ object list partitioning ⇒ BVH

  4. Principles of Accelerated Ray Tracing Hierarchical culling ◮ object list partitioning ⇒ BVH

  5. Principles of Accelerated Ray Tracing Hierarchical culling ◮ object list partitioning ⇒ BVH

  6. Principles of Accelerated Ray Tracing Hierarchical culling ◮ object list partitioning ⇒ BVH

  7. Principles of Accelerated Ray Tracing Hierarchical culling ◮ object list partitioning ⇒ BVH

  8. Principles of Accelerated Ray Tracing Hierarchical culling ◮ object list partitioning ⇒ BVH

  9. Principles of Accelerated Ray Tracing Hierarchical culling ◮ object list partitioning ⇒ BVH

  10. Principles of Accelerated Ray Tracing Hierarchical culling ◮ object list partitioning ⇒ BVH

  11. Principles of Accelerated Ray Tracing Hierarchical culling ◮ object list partitioning ⇒ BVH ◮ bounded memory, but overlapping bounding volumes

  12. Principles of Accelerated Ray Tracing Hierarchical culling ◮ object list partitioning ⇒ BVH ◮ bounded memory, but overlapping bounding volumes ◮ spatial partitioning ⇒ k d-tree

  13. Principles of Accelerated Ray Tracing Hierarchical culling ◮ object list partitioning ⇒ BVH ◮ bounded memory, but overlapping bounding volumes ◮ spatial partitioning ⇒ k d-tree

  14. Principles of Accelerated Ray Tracing Hierarchical culling ◮ object list partitioning ⇒ BVH ◮ bounded memory, but overlapping bounding volumes ◮ spatial partitioning ⇒ k d-tree

  15. Principles of Accelerated Ray Tracing Hierarchical culling ◮ object list partitioning ⇒ BVH ◮ bounded memory, but overlapping bounding volumes ◮ spatial partitioning ⇒ k d-tree

  16. Principles of Accelerated Ray Tracing Hierarchical culling ◮ object list partitioning ⇒ BVH ◮ bounded memory, but overlapping bounding volumes ◮ spatial partitioning ⇒ k d-tree

  17. Principles of Accelerated Ray Tracing Hierarchical culling ◮ object list partitioning ⇒ BVH ◮ bounded memory, but overlapping bounding volumes ◮ spatial partitioning ⇒ k d-tree

  18. Principles of Accelerated Ray Tracing Hierarchical culling ◮ object list partitioning ⇒ BVH ◮ bounded memory, but overlapping bounding volumes ◮ spatial partitioning ⇒ k d-tree

  19. Principles of Accelerated Ray Tracing Hierarchical culling ◮ object list partitioning ⇒ BVH ◮ bounded memory, but overlapping bounding volumes ◮ spatial partitioning ⇒ k d-tree

  20. Principles of Accelerated Ray Tracing Hierarchical culling ◮ object list partitioning ⇒ BVH ◮ bounded memory, but overlapping bounding volumes ◮ spatial partitioning ⇒ k d-tree

  21. Principles of Accelerated Ray Tracing Hierarchical culling ◮ object list partitioning ⇒ BVH ◮ bounded memory, but overlapping bounding volumes ◮ spatial partitioning ⇒ k d-tree

  22. Principles of Accelerated Ray Tracing Hierarchical culling ◮ object list partitioning ⇒ BVH ◮ bounded memory, but overlapping bounding volumes ◮ spatial partitioning ⇒ k d-tree

  23. Principles of Accelerated Ray Tracing Hierarchical culling ◮ object list partitioning ⇒ BVH ◮ bounded memory, but overlapping bounding volumes ◮ spatial partitioning ⇒ k d-tree

  24. Principles of Accelerated Ray Tracing Hierarchical culling ◮ object list partitioning ⇒ BVH ◮ bounded memory, but overlapping bounding volumes ◮ spatial partitioning ⇒ k d-tree ◮ nodes do not overlap, but reference duplication

  25. SBVH Best of both worlds ◮ object list partitioning whenever overlap is small ◮ spatial partitioning otherwise

  26. SBVH Best of both worlds ◮ object list partitioning whenever overlap is small ◮ spatial partitioning otherwise ◮ use spatial splits to build BVH with reference duplication

  27. SBVH Best of both worlds ◮ object list partitioning whenever overlap is small ◮ spatial partitioning otherwise ◮ use spatial splits to build BVH with reference duplication

  28. SBVH Best of both worlds ◮ object list partitioning whenever overlap is small ◮ spatial partitioning otherwise ◮ use spatial splits to build BVH with reference duplication

  29. SBVH Best of both worlds ◮ object list partitioning whenever overlap is small ◮ spatial partitioning otherwise ◮ use spatial splits to build BVH with reference duplication

  30. SBVH Best of both worlds ◮ object list partitioning whenever overlap is small ◮ spatial partitioning otherwise ◮ use spatial splits to build BVH with reference duplication

  31. SBVH Best of both worlds ◮ object list partitioning whenever overlap is small ◮ spatial partitioning otherwise ◮ use spatial splits to build BVH with reference duplication

  32. SBVH Best of both worlds ◮ object list partitioning whenever overlap is small ◮ spatial partitioning otherwise ◮ use spatial splits to build BVH with reference duplication

  33. SBVH Best of both worlds ◮ object list partitioning whenever overlap is small ◮ spatial partitioning otherwise ◮ use spatial splits to build BVH with reference duplication

  34. SBVH Best of both worlds ◮ object list partitioning whenever overlap is small ◮ spatial partitioning otherwise ◮ use spatial splits to build BVH with reference duplication How to support motion blur?

  35. Multiple BVHs Sharing Identical Topology Convex combination of bounding boxes yields conservative BVH

  36. Multiple BVHs Sharing Identical Topology Convex combination of bounding boxes yields conservative BVH

  37. t=0.5 Multiple BVHs Sharing Identical Topology Example: linear interpolation at leaf level

  38. t=0.5 Multiple BVHs Sharing Identical Topology Example: linear interpolation at leaf level

  39. t=0.5 Multiple BVHs Sharing Identical Topology Example: linear interpolation at leaf level t=0 t=1

  40. t=0.5 Multiple BVHs Sharing Identical Topology Example: linear interpolation at leaf level t=0 t=1

  41. t=0.5 Multiple BVHs Sharing Identical Topology Example: linear interpolation at leaf level t=0 t=1

  42. Multiple BVHs Sharing Identical Topology Example: linear interpolation at leaf level t=0 t=0.5 t=1

  43. Multiple BVHs Sharing Identical Topology Example: linear interpolation at leaf level t=0 t=0.5 t=1 ◮ acceptable memory overhead

  44. Multiple BVHs Sharing Identical Topology Example: linear interpolation at leaf level t=0 t=0.5 t=1 ◮ acceptable memory overhead ◮ allows for very tight bounding boxes for every ray time t

  45. Interpolation and Spatial Splits Can a k d-tree be interpolated?

  46. Interpolation and Spatial Splits Can a k d-tree be interpolated? ◮ objects can move across split planes ◮ thus node references change!

  47. Interpolation and Spatial Splits Can a k d-tree be interpolated? ◮ objects can move across split planes ◮ thus node references change! ◮ hierarchy over convex hulls is inefficient

  48. Interpolation and Spatial Splits Can a k d-tree be interpolated? ◮ objects can move across split planes ◮ thus node references change! ◮ hierarchy over convex hulls is inefficient ◮ splitting along time-axis requires lots of memory

  49. Our Contribution Extend the SBVH to handle motion blur (MSBVH) ◮ by computing multiple bounding volumes per node ◮ using classic bounding volume interpolation traversal

  50. Our Contribution Extend the SBVH to handle motion blur (MSBVH) ◮ by computing multiple bounding volumes per node ◮ using classic bounding volume interpolation traversal ◮ which includes spatial splits

  51. Our Contribution Extend the SBVH to handle motion blur (MSBVH) ◮ by computing multiple bounding volumes per node ◮ using classic bounding volume interpolation traversal ◮ which includes spatial splits ◮ memory-efficient (MSBVH) ◮ reduced bounding volume overlap (MSBVH) Note: we assume the hierarchy is rebuilt per frame

  52. Algorithm t=1 t=0

  53. Algorithm t=1 t=0 t=0.5 1. Build the SBVH for t = 0 . 5 to determine topology

  54. Algorithm t=1 t=0 t=0.5 1. Build the SBVH for t = 0 . 5 to determine topology 2. Compute partial primitives in leaf nodes

  55. Algorithm t=1 t=0 t=0.5 1. Build the SBVH for t = 0 . 5 to determine topology 2. Compute partial primitives in leaf nodes

  56. Algorithm t=1 t=0 t=0.5 1. Build the SBVH for t = 0 . 5 to determine topology 2. Compute partial primitives in leaf nodes 3. Compute corresponding bounds for t = 0 and t = 1

  57. Algorithm t=1 t=0 t=0.5 1. Build the SBVH for t = 0 . 5 to determine topology 2. Compute partial primitives in leaf nodes 3. Compute corresponding bounds for t = 0 and t = 1

  58. Algorithm t=1 t=0 1. Build the SBVH for t = 0 . 5 to determine topology 2. Compute partial primitives in leaf nodes 3. Compute corresponding bounds for t = 0 and t = 1 4. Propagate bounds to the parent nodes

  59. Algorithm t=1 t=0 1. Build the SBVH for t = 0 . 5 to determine topology 2. Compute partial primitives in leaf nodes 3. Compute corresponding bounds for t = 0 and t = 1 4. Propagate bounds to the parent nodes 5. Interpolate these bounds during traversal

Recommend


More recommend