Post on 22-Dec-2015
RT08, August ‘08
Large Ray Packets for Real-time Whitted Ray Tracing
Ryan Overbeck Columbia University
Ravi Ramamoorthi Columbia University
William R. MarkUniversity of Texas at Austin
Intel Corporation
RT08, August ‘08
Current Real-time Ray Tracing
Use large ray packets (16-256 rays)
Focused on primary visibility and point-light shadows
Images somewhat dull
Easily generated using rasterization algorithms
RT08, August ‘08
This Work: Whitted Ray Tracing
Whitted Ray tracing: Primary Visibility Point-light Shadows Reflections Refractions
RT08, August ‘08
Mission
Study large ray packets for Whitted ray tracing Scene traversal (BVH)
Partition Traversal: New!
Frustum Culling General secondary ray packets: New!
RT08, August ‘08
Mission
Evaluation of old and new algorithms Ray packet size Scene complexity Ray Recursion Complexity
RT08, August ‘08
Result: Real-time Whitted RT
RT08, August ‘08
Outline
Motivation
Frustum Culling for Secondary Rays
Scene Traversal with Large Ray Packets
Results
RT08, August ‘08
Frustum Culling
Primary Rays Reshetov et al. 2005
Point-Light Shadow Rays Boulos et al. 2006 , Wald et al. 2007
Reflection + Refraction Rays New!
RT08, August ‘08
Frustum Culling: Point Light
1. Choose dominant axis:
2. Find intersection points at .
3. Get min/max coords.
1
RT08, August ‘08
1. Choose dominant axis:
2. Find intersection points at .
3. Get min/max coords.
4. Create 4 corner rays.
5. Compute plane normals.
Frustum Culling: Point Light
1
RT08, August ‘08
Frustum Culling: Reflection
RT08, August ‘08
Frustum Culling: Reflection
Samples’ Bounding Box
Scene Bounding Box
RT08, August ‘08
Frustum Culling: Reflection
1. Choose dominant axis:
2. Find intersections with 2 planes:1. from scene AABB.2. from samples’ AABB.
3. Get min/max coords.
4. Create 4 corner rays.
5. Compute plane normals.
RT08, August ‘08
Outline
Motivation
Frustum Culling for Secondary Rays
Scene Traversal with Large Ray Packets
Results
RT08, August ‘08
3 Algorithms for Scene Traversal
Masked Traversal – Control Method Based on Wald 2001, Reshetov 2005 (MLRT) Only good for small packets
Ranged Traversal – State-of-the-art Wald et al. 2007 Degrades performance for incoherent rays!
Partition Traversal: New! Robust to incoherent rays and large packets
RT08, August ‘08
Masked Traversal
012
3
4
RT08, August ‘08
Masked Traversal
012
3
4
BVH Inner Cell
RT08, August ‘08
Masked Traversal
012
3
4
Near BVH Leaf Cell
RT08, August ‘08
Masked Traversal
012
3
4
Far BVH Leaf Cell
RT08, August ‘08
Masked Traversal
012
3
4
Alive
Alive
Alive
Alive
Alive0
1
2
3
4
RT08, August ‘08
Masked Traversal
012
3
4
Alive
Alive
Alive
Alive
Alive0
1
2
3
4
RT08, August ‘08
Masked Traversal
012
3
4
Alive
Alive
Alive
Alive
Alive0
1
2
3
4
RT08, August ‘08
Masked Traversal
012
3
4
Alive
Alive
Alive
Alive
Alive0
1
2
3
4
RT08, August ‘08
Masked Traversal
012
3
4
Alive
Alive
Alive
Alive
Alive0
1
2
3
4
RT08, August ‘08
Masked Traversal
012
3
4
Alive
Alive
Alive
Alive
Dead0
1
2
3
4
RT08, August ‘08
Masked Traversal
012
3
4
Alive
Alive
Alive
Dead
Dead0
1
2
3
4
RT08, August ‘08
Masked Traversal
012
3
4
Alive
Alive
Alive
Dead
Dead0
1
2
3
4
RT08, August ‘08
Masked Traversal
012
3
4
Alive
Alive
Alive
Dead
Dead0
1
2
3
4
RT08, August ‘08
Masked Traversal
012
3
4
Dead
Alive
Alive
Dead
Dead0
1
2
3
4
RT08, August ‘08
Masked Traversal
012
3
4
Dead
Alive
Alive
Dead
Dead0
1
2
3
4
RT08, August ‘08
Masked Traversal
012
3
4
Dead
Alive
Alive
Dead
Dead0
1
2
3
4
RT08, August ‘08
Masked Traversal
012
3
4
Dead
Alive
Alive
Dead
Dead0
1
2
3
4
RT08, August ‘08
Masked Traversal
012
3
4
Dead
Alive
Alive
Dead
Dead0
1
2
3
4
RT08, August ‘08
Masked Traversal
012
3
4
Dead
Alive
Alive
Dead
Dead0
1
2
3
4
RT08, August ‘08
Masked Traversal
012
3
4
Dead
Alive
Alive
Dead
Dead0
1
2
3
4
RT08, August ‘08
Masked Traversal
012
3
4
Dead
Alive
Alive
Dead
Dead0
1
2
3
4
RT08, August ‘08
Masked Traversal
012
3
4
Dead
Alive
Alive
Dead
Dead0
1
2
3
4
RT08, August ‘08
Masked Traversal
012
3
4
Dead
Alive
Alive
Dead
Dead0
1
2
3
4
RT08, August ‘08
Masked Traversal
012
3
4
Dead
Alive
Alive
Dead
Dead0
1
2
3
4
RT08, August ‘08
Masked Traversal
012
3
4
Alive
Alive
Alive
Alive
Alive0
1
2
3
4
RT08, August ‘08
Masked Traversal
012
3
4
Alive
Alive
Alive
Alive
Alive0
1
2
3
4
RT08, August ‘08
Masked Traversal
012
3
4
Alive
Alive
Alive
Alive
Dead0
1
2
3
4
RT08, August ‘08
Masked Traversal
012
3
4
Alive
Alive
Alive
Dead
Dead0
1
2
3
4
RT08, August ‘08
Masked Traversal
012
3
4
Alive
Alive
Alive
Dead
Dead0
1
2
3
4
RT08, August ‘08
Masked Traversal
012
3
4
Alive
Dead
Alive
Dead
Dead0
1
2
3
4
RT08, August ‘08
Masked Traversal
012
3
4
Dead
Dead
Alive
Dead
Dead0
1
2
3
4
Causes extra ray—cell tests
RT08, August ‘08
Ranged Traversal
012
3
4
RT08, August ‘08
Ranged Traversal
012
3
4
RT08, August ‘08
Ranged Traversal
012
3
4
RT08, August ‘08
Ranged Traversal
012
3
4
RT08, August ‘08
Ranged Traversal
012
3
4
RT08, August ‘08
Ranged Traversal
012
3
4
RT08, August ‘08
Ranged Traversal
012
3
4
RT08, August ‘08
Ranged Traversal
012
3
4
RT08, August ‘08
Ranged Traversal
012
3
4
RT08, August ‘08
Ranged Traversal
012
3
4
RT08, August ‘08
Ranged Traversal
012
3
4
RT08, August ‘08
Ranged Traversal
012
3
4
RT08, August ‘08
Ranged Traversal
012
3
4
RT08, August ‘08
Ranged Traversal
012
3
4
RT08, August ‘08
Ranged Traversal
012
3
4
RT08, August ‘08
Ranged Traversal
012
3
4
RT08, August ‘08
Ranged Traversal
012
3
4
RT08, August ‘08
Ranged Traversal
012
3
4
RT08, August ‘08
Ranged Traversal
012
3
4
RT08, August ‘08
Ranged Traversal
012
3
4
RT08, August ‘08
Ranged Traversal
012
4
3
RT08, August ‘08
Ranged Traversal
210
4
3
RT08, August ‘08
Ranged Traversal
210
4
3
RT08, August ‘08
Ranged Traversal
210
4
3
RT08, August ‘08
Ranged Traversal
210
4
3
RT08, August ‘08
Ranged Traversal
210
4
3
RT08, August ‘08
Ranged Traversal
210
4
3
RT08, August ‘08
Ranged Traversal
210
4
3
RT08, August ‘08
Ranged Traversal
210
4
3
RT08, August ‘08
Ranged Traversal
210
4
3
RT08, August ‘08
Ranged Traversal
210
4
3
RT08, August ‘08
Ranged Traversal
210
4
3
RT08, August ‘08
Ranged Traversal
210
4
3
RT08, August ‘08
Ranged Traversal
210
4
3
RT08, August ‘08
Ranged Traversal
210
4
3
RT08, August ‘08
Ranged Traversal
210
4
3
RT08, August ‘08
Ranged Traversal
210
4
3
RT08, August ‘08
Ranged Traversal
210
4
3
RT08, August ‘08
Ranged Traversal
210
4
3
Reduces ray—cell tests
Increases ray—triangle tests
RT08, August ‘08
Partition Traversal (New)
0 1 2 3 4
2
1
0
4
3
RT08, August ‘08
Partition Traversal (New)
0 1 2 3 4
2
1
0
4
3
A
RT08, August ‘08
Partition Traversal (New)
0 1 2 3 4
2
1
0
4
3
ABE
RT08, August ‘08
Partition Traversal (New)
0 1 2 3 4
2
1
0
4
3
AB E
RT08, August ‘08
Partition Traversal (New)
0 1 2 3 4
2
1
0
4
3
ABE
RT08, August ‘08
Partition Traversal (New)
0 1 2 3 4
2
1
0
4
3
AB E
RT08, August ‘08
Partition Traversal (New)
0 1 2 3 4
2
1
0
4
3
ABE
RT08, August ‘08
Partition Traversal (New)
0 1 2 3 4
2
1
0
4
3
ABE
RT08, August ‘08
Partition Traversal (New)
0 1 4 3 2
2
1
0
4
3
ABE
RT08, August ‘08
Partition Traversal (New)
0 1 4 3 2
2
1
0
4
3
ABE
RT08, August ‘08
Partition Traversal (New)
0 1 4 3 2
2
1
0
4
3
A
RT08, August ‘08
Partition Traversal (New)
0 1 4 3 2
2
1
0
4
3
A
RT08, August ‘08
Partition Traversal (New)
0 1 4 3 2
2
1
0
4
3
ABE
RT08, August ‘08
Partition Traversal (New)
0 1 4 3 2
2
1
0
4
3
AB E
RT08, August ‘08
Partition Traversal (New)
0 1 4 3 2
2
1
0
4
3
ABE
RT08, August ‘08
Partition Traversal (New)
0 1 4 3 2
2
1
0
4
3
ABE
RT08, August ‘08
Partition Traversal (New)
0 4 1 3 2
2
1
0
4
3
ABE
RT08, August ‘08
Partition Traversal (New)
0 4 1 3 2
2
1
0
4
3
ABE
RT08, August ‘08
Partition Traversal (New)
0 4 1 3 2
2
1
0
4
3
A
RT08, August ‘08
Partition Traversal (New)
0 4 1 3 2
2
1
0
4
3
A
RT08, August ‘08
Partition Traversal (New)
0 4 1 3 2
2
1
0
4
3
A
RT08, August ‘08
Partition Traversal (New)
0 4 1 3 2
2
1
0
4
3
A
RT08, August ‘08
Partition Traversal (New)
0 4 1 3 2
2
1
0
4
3
A
RT08, August ‘08
Partition Traversal (New)
0 4 1 3 2
2
1
0
4
3
A
RT08, August ‘08
Partition Traversal (New)
0 4 1 3 2
2
1
0
4
3
A
RT08, August ‘08
Partition Traversal (New)
0 4 1 3 2
2
1
0
4
3
ABE
RT08, August ‘08
Partition Traversal (New)
0 4 1 3 2
2
1
0
4
3
AB E
RT08, August ‘08
Partition Traversal (New)
0 4 1 3 2
2
1
0
4
3
ABE
RT08, August ‘08
Partition Traversal (New)
0 4 1 3 2
2
1
0
4
3
ABE
RT08, August ‘08
Partition Traversal (New)
0 4 1 3 2
2
1
0
4
3
A
RT08, August ‘08
Partition Traversal (New)
0 4 1 3 2
2
1
0
4
3
A
RT08, August ‘08
Partition Traversal (New)
0 4 1 3 2
2
1
0
4
3
A
More ray—cell intersection tests
No unnecessary ray—triangle intersection tests
Robust to incoherent rays
RT08, August ‘08
Outline
Motivation
Frustum Culling for Secondary Rays
Scene Traversal with Large Ray Packets
Results
RT08, August ‘08
3 Performance Variables
Ray Packet Size
Scene Complexity
Ray Recursion Complexity
RT08, August ‘08
3 Performance Variables
Ray Packet Size
Scene Complexity
Ray Recursion Complexity
4x4 8x8 32x3216x16
RT08, August ‘08
3 Performance Variables
Ray Packet Size
Scene Complexity
Ray Recursion Complexity
ERW6(804 Triangles)
Toasters(11,141 Triangles)
Fairy(172,669 Triangles)
Rings(217,812 Triangles)
RT08, August ‘08
3 Performance Variables
Ray Packet Size
Scene Complexity
Ray Recursion Complexity
Primary Visibility
Primary Visibility
+Point-light Shadows
Primary Visibility
+2-Bounce
Reflections
Primary Visibility
+2-Deep
Refractions
RT08, August ‘08
Masked
RangedPartition
0
500
1000
1500
Tim
e(M
illio
n C
PU
Cyc
les)
4x4 8x8 16x16 32x32Ray Packet Size
Traversal vs. Ray Packet Size
Masked Traversal: performance degrades for > 4x4 packets
Ranged Traversal: performance degrades for > 8x8 packets
Paritition Traversal: performance increases with packet size
Fairy Scene2-Bounce Reflections
RT08, August ‘08
MaskedPartitionRanged
0
400
800
1200
Tim
e(M
illio
n C
PU
Cyc
les)
Traversal vs. Recursion Complexity
Masked Traversal: Degrades with recursion complexity
Ranged Traversal: Degrades with recursion complexity
Partition Traversal: More robust to increasing recursion complexity
Fairy Scene16x16 Packets
PrimaryShadowsPrimary
+ 2-Deep Refractions
Primary+
2-Bounce Reflections
Primary+Recursion
Complexity
RT08, August ‘08
Masked
RangedPartition
0
1000
2000
3000
Tim
e(M
illio
n C
PU
Cyc
les)
Traversal vs. Recursion Complexity
Difference between Partition and Ranged more pronounced on more complex scenes
Rings Scene16x16 Packets
PrimaryShadowsPrimary
+ 2-Deep Refractions
Primary+
2-Bounce Reflections
Primary+Recursion
Complexity
4000
2x
RT08, August ‘08
Masked
RangedPartition
0
1000
2000
3000
Tim
e(M
illio
n C
PU
Cyc
les)
Traversal vs. Scene Complexity
Ranged Traversal: Degrades with scene complexity
Partition Traversal: More robust to increasing scene complexity
4000
2-Bounce Reflections
16x16 Packets
Scene Complexity
ERW6 Toasters Fairy Rings
RT08, August ‘08
Ranged vs. Partition Traversal
Ranged Traversal Most ray—cell tests deep in BVH More extra ray—triangle tests for incoherent rays
Partition Traversal Most ray—cell tests high in BVH No extra ray—triangle tests
RT08, August ‘08
Traversal: Summary
Use Ranged Traversal Primary rays and coherent point-light shadow rays Small to medium packets: <= 8x8 rays
Use Partition Traversal Incoherent rays: deep reflections + refractions Large ray packets: > =16x16 rays
RT08, August ‘08
With CullingNo Culling
0
100
200
300
Tim
e(M
illio
n C
PU
Cyc
les)
Frustum Culling vs. Recursion Complexity
Frustum culling provides modest benefits
Toasters Scene16x16 Packets
PrimaryShadowsPrimary
+ 2-Deep Refractions
Primary+
2-Bounce Reflections
Primary+Recursion
Complexity
400
RT08, August ‘08
Frustum Culling: Summary
Primary + Point-light Shadows Up to 2x performance benefit possible But more often ~1.5x or less
Reflections + Refractions Expect 1.2x – 1.3x performance benefit
RT08, August ‘08
Conclusion
Use ranged and partition traversal in correct situation
16x16 packets: 3x – 6x benefit over 2x2
Whitted Ray Tracing is now interactive to real-time
11.8 FPS 6.7 FPS 8.5 FPS 4 FPS
RT08, August ‘08
Real-Time Whitted Ray Tracing
Primary Visibility
Ranged Traversal
Point-Light
Ranged Traversal
1-Bounce Reflections
Ranged Traversal
RT08, August ‘08
Conclusion
Primary Visibility
Ranged Traversal
3-Bounce Reflections
Partition Traversal
RT08, August ‘08
Conclusion
Primary Visibility
Ranged Traversal
Point-Light Shadows
Partition Traversal
3-Deep Refractions
Partition Traversal
1-Bounce Reflections
Partition Traversal
RT08, August ‘08
Acknowledgements
Thanks to: Lab mates at Columbia University.
Paid for by: NSF (grants CCF 03-05322, CCF 04-46916, CCF 07-
01775), a Sloan Research Fellowship, and an ONR Young Investigator Award N00014-17-1-0900.
Intel fellowship to Ryan Overbeck and related equipment donations from Intel and NVIDIA.
RT08, August ‘08
Questions?