RT08, August ‘08 Large Ray Packets for Real-time Whitted Ray Tracing Ryan Overbeck Columbia...

Post on 22-Dec-2015

215 views 2 download

Tags:

Transcript of RT08, August ‘08 Large Ray Packets for Real-time Whitted Ray Tracing Ryan Overbeck Columbia...

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?