![Page 1: T. Davidovič 3D Rasterization: A Bridge between Rasterization and Ray Casting Whitted ray tracing 1979... OptiX 2010 Doom 1992](https://reader030.vdocuments.net/reader030/viewer/2022032701/56649c6d5503460f9491ece8/html5/thumbnails/1.jpg)
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](https://reader030.vdocuments.net/reader030/viewer/2022032701/56649c6d5503460f9491ece8/html5/thumbnails/2.jpg)
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](https://reader030.vdocuments.net/reader030/viewer/2022032701/56649c6d5503460f9491ece8/html5/thumbnails/3.jpg)
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](https://reader030.vdocuments.net/reader030/viewer/2022032701/56649c6d5503460f9491ece8/html5/thumbnails/4.jpg)
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](https://reader030.vdocuments.net/reader030/viewer/2022032701/56649c6d5503460f9491ece8/html5/thumbnails/5.jpg)
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](https://reader030.vdocuments.net/reader030/viewer/2022032701/56649c6d5503460f9491ece8/html5/thumbnails/6.jpg)
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](https://reader030.vdocuments.net/reader030/viewer/2022032701/56649c6d5503460f9491ece8/html5/thumbnails/7.jpg)
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](https://reader030.vdocuments.net/reader030/viewer/2022032701/56649c6d5503460f9491ece8/html5/thumbnails/8.jpg)
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](https://reader030.vdocuments.net/reader030/viewer/2022032701/56649c6d5503460f9491ece8/html5/thumbnails/9.jpg)
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](https://reader030.vdocuments.net/reader030/viewer/2022032701/56649c6d5503460f9491ece8/html5/thumbnails/10.jpg)
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](https://reader030.vdocuments.net/reader030/viewer/2022032701/56649c6d5503460f9491ece8/html5/thumbnails/11.jpg)
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](https://reader030.vdocuments.net/reader030/viewer/2022032701/56649c6d5503460f9491ece8/html5/thumbnails/12.jpg)
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](https://reader030.vdocuments.net/reader030/viewer/2022032701/56649c6d5503460f9491ece8/html5/thumbnails/13.jpg)
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](https://reader030.vdocuments.net/reader030/viewer/2022032701/56649c6d5503460f9491ece8/html5/thumbnails/14.jpg)
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](https://reader030.vdocuments.net/reader030/viewer/2022032701/56649c6d5503460f9491ece8/html5/thumbnails/15.jpg)
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](https://reader030.vdocuments.net/reader030/viewer/2022032701/56649c6d5503460f9491ece8/html5/thumbnails/16.jpg)
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](https://reader030.vdocuments.net/reader030/viewer/2022032701/56649c6d5503460f9491ece8/html5/thumbnails/17.jpg)
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](https://reader030.vdocuments.net/reader030/viewer/2022032701/56649c6d5503460f9491ece8/html5/thumbnails/18.jpg)
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](https://reader030.vdocuments.net/reader030/viewer/2022032701/56649c6d5503460f9491ece8/html5/thumbnails/19.jpg)
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](https://reader030.vdocuments.net/reader030/viewer/2022032701/56649c6d5503460f9491ece8/html5/thumbnails/20.jpg)
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](https://reader030.vdocuments.net/reader030/viewer/2022032701/56649c6d5503460f9491ece8/html5/thumbnails/21.jpg)
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](https://reader030.vdocuments.net/reader030/viewer/2022032701/56649c6d5503460f9491ece8/html5/thumbnails/22.jpg)
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](https://reader030.vdocuments.net/reader030/viewer/2022032701/56649c6d5503460f9491ece8/html5/thumbnails/23.jpg)
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](https://reader030.vdocuments.net/reader030/viewer/2022032701/56649c6d5503460f9491ece8/html5/thumbnails/24.jpg)
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](https://reader030.vdocuments.net/reader030/viewer/2022032701/56649c6d5503460f9491ece8/html5/thumbnails/25.jpg)
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](https://reader030.vdocuments.net/reader030/viewer/2022032701/56649c6d5503460f9491ece8/html5/thumbnails/26.jpg)
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](https://reader030.vdocuments.net/reader030/viewer/2022032701/56649c6d5503460f9491ece8/html5/thumbnails/27.jpg)
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](https://reader030.vdocuments.net/reader030/viewer/2022032701/56649c6d5503460f9491ece8/html5/thumbnails/28.jpg)
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](https://reader030.vdocuments.net/reader030/viewer/2022032701/56649c6d5503460f9491ece8/html5/thumbnails/29.jpg)
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](https://reader030.vdocuments.net/reader030/viewer/2022032701/56649c6d5503460f9491ece8/html5/thumbnails/30.jpg)
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](https://reader030.vdocuments.net/reader030/viewer/2022032701/56649c6d5503460f9491ece8/html5/thumbnails/31.jpg)
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](https://reader030.vdocuments.net/reader030/viewer/2022032701/56649c6d5503460f9491ece8/html5/thumbnails/32.jpg)
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](https://reader030.vdocuments.net/reader030/viewer/2022032701/56649c6d5503460f9491ece8/html5/thumbnails/33.jpg)
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](https://reader030.vdocuments.net/reader030/viewer/2022032701/56649c6d5503460f9491ece8/html5/thumbnails/34.jpg)
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](https://reader030.vdocuments.net/reader030/viewer/2022032701/56649c6d5503460f9491ece8/html5/thumbnails/35.jpg)
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](https://reader030.vdocuments.net/reader030/viewer/2022032701/56649c6d5503460f9491ece8/html5/thumbnails/36.jpg)
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](https://reader030.vdocuments.net/reader030/viewer/2022032701/56649c6d5503460f9491ece8/html5/thumbnails/37.jpg)
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](https://reader030.vdocuments.net/reader030/viewer/2022032701/56649c6d5503460f9491ece8/html5/thumbnails/38.jpg)
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](https://reader030.vdocuments.net/reader030/viewer/2022032701/56649c6d5503460f9491ece8/html5/thumbnails/39.jpg)
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](https://reader030.vdocuments.net/reader030/viewer/2022032701/56649c6d5503460f9491ece8/html5/thumbnails/40.jpg)
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](https://reader030.vdocuments.net/reader030/viewer/2022032701/56649c6d5503460f9491ece8/html5/thumbnails/41.jpg)
Thank you!
Tomáš Davidovič