+ All Categories
Home > Documents > T. Davidovič 3D Rasterization: A Bridge between Rasterization and Ray Casting Whitted ray tracing ...

T. Davidovič 3D Rasterization: A Bridge between Rasterization and Ray Casting Whitted ray tracing ...

Date post: 11-Dec-2015
Category:
Upload: hannah-demers
View: 224 times
Download: 1 times
Share this document with a friend
41
3D Rasterization: A Bridge between Rasterization and Ray Casting Tom áš Davidovič T. Engelhardt, I. Georgiev, P. Slusallek , C. Dachsbacher Saarland University, Intel VCI & Karlsruhe Institute of Technology
Transcript
Page 1: T. Davidovič 3D Rasterization: A Bridge between Rasterization and Ray Casting  Whitted ray tracing  1979...  OptiX 2010  Doom  1992.

3D Rasterization: A Bridge between Rasterization

and Ray Casting

Tomáš DavidovičT. Engelhardt, I. Georgiev,

P. Slusallek, C. Dachsbacher

Saarland University, Intel VCI & Karlsruhe Institute of Technology

Page 2: T. Davidovič 3D Rasterization: A Bridge between Rasterization and Ray Casting  Whitted ray tracing  1979...  OptiX 2010  Doom  1992.

T. Davidovič3D Rasterization: A Bridge between Rasterization and Ray Casting

Ray Tracing vs Rasterization

Whitted ray tracing 1979... OptiX 2010

Doom 1992

Page 3: T. Davidovič 3D Rasterization: A Bridge between Rasterization and Ray Casting  Whitted ray tracing  1979...  OptiX 2010  Doom  1992.

T. Davidovič3D Rasterization: A Bridge between Rasterization and Ray Casting

Ray Tracing vs Rasterization

PBRT – San Miguel ~2010

Crysis 2 by CryTek ~2010

Page 4: T. Davidovič 3D Rasterization: A Bridge between Rasterization and Ray Casting  Whitted ray tracing  1979...  OptiX 2010  Doom  1992.

T. Davidovič3D Rasterization: A Bridge between Rasterization and Ray Casting

The main goal

Page 5: T. Davidovič 3D Rasterization: A Bridge between Rasterization and Ray Casting  Whitted ray tracing  1979...  OptiX 2010  Doom  1992.

T. Davidovič3D Rasterization: A Bridge between Rasterization and Ray Casting

The main goalEdge functions

p0

p1

p2

> 0

< 0

Page 6: T. Davidovič 3D Rasterization: A Bridge between Rasterization and Ray Casting  Whitted ray tracing  1979...  OptiX 2010  Doom  1992.

T. Davidovič3D Rasterization: A Bridge between Rasterization and Ray Casting

The main goal2D rasterization

p0

p1

p2

Page 7: T. Davidovič 3D Rasterization: A Bridge between Rasterization and Ray Casting  Whitted ray tracing  1979...  OptiX 2010  Doom  1992.

T. Davidovič3D Rasterization: A Bridge between Rasterization and Ray Casting

The main goalRay casting

Page 8: T. Davidovič 3D Rasterization: A Bridge between Rasterization and Ray Casting  Whitted ray tracing  1979...  OptiX 2010  Doom  1992.

T. Davidovič3D Rasterization: A Bridge between Rasterization and Ray Casting

The main goalRay casting

e

p2

p1

p0

n = (p2 – e) × (p0 – e)

n

d

V(d) = n . d

Page 9: T. Davidovič 3D Rasterization: A Bridge between Rasterization and Ray Casting  Whitted ray tracing  1979...  OptiX 2010  Doom  1992.

T. Davidovič3D Rasterization: A Bridge between Rasterization and Ray Casting

3D RasterizationFrustum tracing

Page 10: T. Davidovič 3D Rasterization: A Bridge between Rasterization and Ray Casting  Whitted ray tracing  1979...  OptiX 2010  Doom  1992.

T. Davidovič3D Rasterization: A Bridge between Rasterization and Ray Casting

3D RasterizationPseudocodeTraverse( frustum F, node N ) {

Page 11: T. Davidovič 3D Rasterization: A Bridge between Rasterization and Ray Casting  Whitted ray tracing  1979...  OptiX 2010  Doom  1992.

T. Davidovič3D Rasterization: A Bridge between Rasterization and Ray Casting

3D RasterizationFrustum tracing

Page 12: T. Davidovič 3D Rasterization: A Bridge between Rasterization and Ray Casting  Whitted ray tracing  1979...  OptiX 2010  Doom  1992.

T. Davidovič3D Rasterization: A Bridge between Rasterization and Ray Casting

3D RasterizationPseudocodeTraverse( frustum F, node N ) {

if ( isOutside or isOccluded ) return;

Page 13: T. Davidovič 3D Rasterization: A Bridge between Rasterization and Ray Casting  Whitted ray tracing  1979...  OptiX 2010  Doom  1992.

T. Davidovič3D Rasterization: A Bridge between Rasterization and Ray Casting

3D RasterizationFrustum tracing

isOutside

isOccluded

Page 14: T. Davidovič 3D Rasterization: A Bridge between Rasterization and Ray Casting  Whitted ray tracing  1979...  OptiX 2010  Doom  1992.

T. Davidovič3D Rasterization: A Bridge between Rasterization and Ray Casting

3D RasterizationPseudocodeTraverse( frustum F, node N ) {

if ( isOutside or isOccluded ) return;if ( splitFrustum ) {

split F into sub-frusta Fiforeach ( Fi ) traverse ( Fi, N )

}

Page 15: T. Davidovič 3D Rasterization: A Bridge between Rasterization and Ray Casting  Whitted ray tracing  1979...  OptiX 2010  Doom  1992.

T. Davidovič3D Rasterization: A Bridge between Rasterization and Ray Casting

3D RasterizationFrustum tracing

Splitting

Page 16: T. Davidovič 3D Rasterization: A Bridge between Rasterization and Ray Casting  Whitted ray tracing  1979...  OptiX 2010  Doom  1992.

T. Davidovič3D Rasterization: A Bridge between Rasterization and Ray Casting

3D RasterizationFrustum tracing

F1 F2

F3 F4

Page 17: T. Davidovič 3D Rasterization: A Bridge between Rasterization and Ray Casting  Whitted ray tracing  1979...  OptiX 2010  Doom  1992.

T. Davidovič3D Rasterization: A Bridge between Rasterization and Ray Casting

3D RasterizationPseudocodeTraverse( frustum F, node N ) {

if ( isOutside or isOccluded ) return;if ( splitFrustum ) {

split F into sub-frusta Fiforeach ( Fi ) traverse ( Fi, N )

} else {if ( generateSamples ) {

rasterize ( N, binning )} else {

foreach ( child of N )traverse ( F, child of N )

} }

Page 18: T. Davidovič 3D Rasterization: A Bridge between Rasterization and Ray Casting  Whitted ray tracing  1979...  OptiX 2010  Doom  1992.

T. Davidovič3D Rasterization: A Bridge between Rasterization and Ray Casting

3D RasterizationBinning – vertex culling

p0

p1

p2

Page 19: T. Davidovič 3D Rasterization: A Bridge between Rasterization and Ray Casting  Whitted ray tracing  1979...  OptiX 2010  Doom  1992.

T. Davidovič3D Rasterization: A Bridge between Rasterization and Ray Casting

3D RasterizationPsuedocodeTraverse( frustum F, node N ) {

if ( isOutside or isOccluded ) return;if ( splitFrustum ) {

split F into sub-frusta Fiforeach ( Fi ) traverse ( Fi, N )

} else {if ( generateSamples ) {

rasterize ( N, binning )} else {

foreach ( child of N )traverse ( F, child of N )

} }

Page 20: T. Davidovič 3D Rasterization: A Bridge between Rasterization and Ray Casting  Whitted ray tracing  1979...  OptiX 2010  Doom  1992.

T. Davidovič3D Rasterization: A Bridge between Rasterization and Ray Casting

3D RasterizationAs rasterizationTraverse( frustum F, node N = All Scene ) {

if ( isOutside or isOccluded ) return;if ( splitFrustum ) {

split F into sub-frusta Fiforeach ( Fi ) traverse ( Fi, N )

} else {if ( generateSamples ) {

rasterize ( N, binning )} else {

foreach ( child of N )traverse ( F, child of N )

} }

Page 21: T. Davidovič 3D Rasterization: A Bridge between Rasterization and Ray Casting  Whitted ray tracing  1979...  OptiX 2010  Doom  1992.

T. Davidovič3D Rasterization: A Bridge between Rasterization and Ray Casting

3D RasterizationAs ray castingTraverse( frustum F = Single ray, node N ) {

if ( isOutside or isOccluded ) return;if ( splitFrustum ) {

split F into sub-frusta Fiforeach ( Fi ) traverse ( Fi, N )

} else {if ( generateSamples ) {

rasterize ( N, binning )} else {

foreach ( child of N )traverse ( F, child of N )

} }

Page 22: T. Davidovič 3D Rasterization: A Bridge between Rasterization and Ray Casting  Whitted ray tracing  1979...  OptiX 2010  Doom  1992.

T. Davidovič3D Rasterization: A Bridge between Rasterization and Ray Casting

ResultsWhat can we do Non-planar viewports

Page 23: T. Davidovič 3D Rasterization: A Bridge between Rasterization and Ray Casting  Whitted ray tracing  1979...  OptiX 2010  Doom  1992.

T. Davidovič3D Rasterization: A Bridge between Rasterization and Ray Casting

ResultsNon-planar viewports

p0

p1

p2

Page 24: T. Davidovič 3D Rasterization: A Bridge between Rasterization and Ray Casting  Whitted ray tracing  1979...  OptiX 2010  Doom  1992.

T. Davidovič3D Rasterization: A Bridge between Rasterization and Ray Casting

ResultsNon-planar viewports

Page 25: T. Davidovič 3D Rasterization: A Bridge between Rasterization and Ray Casting  Whitted ray tracing  1979...  OptiX 2010  Doom  1992.

T. Davidovič3D Rasterization: A Bridge between Rasterization and Ray Casting

ResultsNon-planar viewports

Page 26: T. Davidovič 3D Rasterization: A Bridge between Rasterization and Ray Casting  Whitted ray tracing  1979...  OptiX 2010  Doom  1992.

T. Davidovič3D Rasterization: A Bridge between Rasterization and Ray Casting

ResultsNon-planar viewports

Page 27: T. Davidovič 3D Rasterization: A Bridge between Rasterization and Ray Casting  Whitted ray tracing  1979...  OptiX 2010  Doom  1992.

T. Davidovič3D Rasterization: A Bridge between Rasterization and Ray Casting

ResultsNon-planar viewports

Page 28: T. Davidovič 3D Rasterization: A Bridge between Rasterization and Ray Casting  Whitted ray tracing  1979...  OptiX 2010  Doom  1992.

T. Davidovič3D Rasterization: A Bridge between Rasterization and Ray Casting

ResultsWhat can we do Non-planar Viewports Consistency

Page 29: T. Davidovič 3D Rasterization: A Bridge between Rasterization and Ray Casting  Whitted ray tracing  1979...  OptiX 2010  Doom  1992.

T. Davidovič3D Rasterization: A Bridge between Rasterization and Ray Casting

ResultsConsistency

e

p2

p1

p0

n = (p2 – e) × (p0 – e)

n

d

V(d) = n . dVx= deriv(V(d), x) = n × dx

dx

dy

xV

Page 30: T. Davidovič 3D Rasterization: A Bridge between Rasterization and Ray Casting  Whitted ray tracing  1979...  OptiX 2010  Doom  1992.

T. Davidovič3D Rasterization: A Bridge between Rasterization and Ray Casting

ResultsConsistency

Page 31: T. Davidovič 3D Rasterization: A Bridge between Rasterization and Ray Casting  Whitted ray tracing  1979...  OptiX 2010  Doom  1992.

T. Davidovič3D Rasterization: A Bridge between Rasterization and Ray Casting

ResultsConsistency

dy

dx

Vx > 0

Page 32: T. Davidovič 3D Rasterization: A Bridge between Rasterization and Ray Casting  Whitted ray tracing  1979...  OptiX 2010  Doom  1992.

T. Davidovič3D Rasterization: A Bridge between Rasterization and Ray Casting

ResultsConsistency

dy

dx

Vx = 0

Vy > 0

Page 33: T. Davidovič 3D Rasterization: A Bridge between Rasterization and Ray Casting  Whitted ray tracing  1979...  OptiX 2010  Doom  1992.

T. Davidovič3D Rasterization: A Bridge between Rasterization and Ray Casting

ResultsConsistency

dy

dx

Vx > 0

Vx > 0

Page 34: T. Davidovič 3D Rasterization: A Bridge between Rasterization and Ray Casting  Whitted ray tracing  1979...  OptiX 2010  Doom  1992.

T. Davidovič3D Rasterization: A Bridge between Rasterization and Ray Casting

ResultsWhat we can do Non-planar Viewports Consistency Coverage Sampling Antialiasing

Page 35: T. Davidovič 3D Rasterization: A Bridge between Rasterization and Ray Casting  Whitted ray tracing  1979...  OptiX 2010  Doom  1992.

T. Davidovič3D Rasterization: A Bridge between Rasterization and Ray Casting

ResultsCoverage Sampling Antialiasing

Page 36: T. Davidovič 3D Rasterization: A Bridge between Rasterization and Ray Casting  Whitted ray tracing  1979...  OptiX 2010  Doom  1992.

T. Davidovič3D Rasterization: A Bridge between Rasterization and Ray Casting

ResultsCoverage Sampling Antialiasing

Page 37: T. Davidovič 3D Rasterization: A Bridge between Rasterization and Ray Casting  Whitted ray tracing  1979...  OptiX 2010  Doom  1992.

T. Davidovič3D Rasterization: A Bridge between Rasterization and Ray Casting

ResultsCoverage Sampling Antialiasing

Page 38: T. Davidovič 3D Rasterization: A Bridge between Rasterization and Ray Casting  Whitted ray tracing  1979...  OptiX 2010  Doom  1992.

T. Davidovič3D Rasterization: A Bridge between Rasterization and Ray Casting

ResultsCoverage Sampling Antialiasing

16x OSAATime x11

CSAA (4+12)Time x4.3

No AA

Page 39: T. Davidovič 3D Rasterization: A Bridge between Rasterization and Ray Casting  Whitted ray tracing  1979...  OptiX 2010  Doom  1992.

T. Davidovič3D Rasterization: A Bridge between Rasterization and Ray Casting

ResultsRaw performance

Page 40: T. Davidovič 3D Rasterization: A Bridge between Rasterization and Ray Casting  Whitted ray tracing  1979...  OptiX 2010  Doom  1992.

T. Davidovič3D Rasterization: A Bridge between Rasterization and Ray Casting

ConclusionsWhat to bring home 3D Rasterization

Poses ray tracing as rasterization Transfer of old ideas

CSAA, binning New ideas

Frustum splitting, Non-planar viewports

Future work More general frusta Unified software rasterization pipeline

Page 41: T. Davidovič 3D Rasterization: A Bridge between Rasterization and Ray Casting  Whitted ray tracing  1979...  OptiX 2010  Doom  1992.

Thank you!

Tomáš Davidovič


Recommended