![Page 1: 3D Rasterization: A Bridge between Rasterization and Ray Casting](https://reader035.vdocuments.site/reader035/viewer/2022062422/56813325550346895d9a0ae5/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: 3D Rasterization: A Bridge between Rasterization and Ray Casting](https://reader035.vdocuments.site/reader035/viewer/2022062422/56813325550346895d9a0ae5/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: 3D Rasterization: A Bridge between Rasterization and Ray Casting](https://reader035.vdocuments.site/reader035/viewer/2022062422/56813325550346895d9a0ae5/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: 3D Rasterization: A Bridge between Rasterization and Ray Casting](https://reader035.vdocuments.site/reader035/viewer/2022062422/56813325550346895d9a0ae5/html5/thumbnails/4.jpg)
T. Davidovič3D Rasterization: A Bridge between Rasterization and Ray Casting
The main goal
![Page 5: 3D Rasterization: A Bridge between Rasterization and Ray Casting](https://reader035.vdocuments.site/reader035/viewer/2022062422/56813325550346895d9a0ae5/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: 3D Rasterization: A Bridge between Rasterization and Ray Casting](https://reader035.vdocuments.site/reader035/viewer/2022062422/56813325550346895d9a0ae5/html5/thumbnails/6.jpg)
T. Davidovič3D Rasterization: A Bridge between Rasterization and Ray Casting
The main goal2D rasterization
p0
p1
p2
![Page 7: 3D Rasterization: A Bridge between Rasterization and Ray Casting](https://reader035.vdocuments.site/reader035/viewer/2022062422/56813325550346895d9a0ae5/html5/thumbnails/7.jpg)
T. Davidovič3D Rasterization: A Bridge between Rasterization and Ray Casting
The main goalRay casting
![Page 8: 3D Rasterization: A Bridge between Rasterization and Ray Casting](https://reader035.vdocuments.site/reader035/viewer/2022062422/56813325550346895d9a0ae5/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: 3D Rasterization: A Bridge between Rasterization and Ray Casting](https://reader035.vdocuments.site/reader035/viewer/2022062422/56813325550346895d9a0ae5/html5/thumbnails/9.jpg)
T. Davidovič3D Rasterization: A Bridge between Rasterization and Ray Casting
3D RasterizationFrustum tracing
![Page 10: 3D Rasterization: A Bridge between Rasterization and Ray Casting](https://reader035.vdocuments.site/reader035/viewer/2022062422/56813325550346895d9a0ae5/html5/thumbnails/10.jpg)
T. Davidovič3D Rasterization: A Bridge between Rasterization and Ray Casting
3D RasterizationPseudocodeTraverse( frustum F, node N ) {
![Page 11: 3D Rasterization: A Bridge between Rasterization and Ray Casting](https://reader035.vdocuments.site/reader035/viewer/2022062422/56813325550346895d9a0ae5/html5/thumbnails/11.jpg)
T. Davidovič3D Rasterization: A Bridge between Rasterization and Ray Casting
3D RasterizationFrustum tracing
![Page 12: 3D Rasterization: A Bridge between Rasterization and Ray Casting](https://reader035.vdocuments.site/reader035/viewer/2022062422/56813325550346895d9a0ae5/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: 3D Rasterization: A Bridge between Rasterization and Ray Casting](https://reader035.vdocuments.site/reader035/viewer/2022062422/56813325550346895d9a0ae5/html5/thumbnails/13.jpg)
T. Davidovič3D Rasterization: A Bridge between Rasterization and Ray Casting
3D RasterizationFrustum tracing
isOutside
isOccluded
![Page 14: 3D Rasterization: A Bridge between Rasterization and Ray Casting](https://reader035.vdocuments.site/reader035/viewer/2022062422/56813325550346895d9a0ae5/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: 3D Rasterization: A Bridge between Rasterization and Ray Casting](https://reader035.vdocuments.site/reader035/viewer/2022062422/56813325550346895d9a0ae5/html5/thumbnails/15.jpg)
T. Davidovič3D Rasterization: A Bridge between Rasterization and Ray Casting
3D RasterizationFrustum tracing
Splitting
![Page 16: 3D Rasterization: A Bridge between Rasterization and Ray Casting](https://reader035.vdocuments.site/reader035/viewer/2022062422/56813325550346895d9a0ae5/html5/thumbnails/16.jpg)
T. Davidovič3D Rasterization: A Bridge between Rasterization and Ray Casting
3D RasterizationFrustum tracing
F1 F2
F3 F4
![Page 17: 3D Rasterization: A Bridge between Rasterization and Ray Casting](https://reader035.vdocuments.site/reader035/viewer/2022062422/56813325550346895d9a0ae5/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: 3D Rasterization: A Bridge between Rasterization and Ray Casting](https://reader035.vdocuments.site/reader035/viewer/2022062422/56813325550346895d9a0ae5/html5/thumbnails/18.jpg)
T. Davidovič3D Rasterization: A Bridge between Rasterization and Ray Casting
3D RasterizationBinning – vertex culling
p0
p1
p2
![Page 19: 3D Rasterization: A Bridge between Rasterization and Ray Casting](https://reader035.vdocuments.site/reader035/viewer/2022062422/56813325550346895d9a0ae5/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: 3D Rasterization: A Bridge between Rasterization and Ray Casting](https://reader035.vdocuments.site/reader035/viewer/2022062422/56813325550346895d9a0ae5/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: 3D Rasterization: A Bridge between Rasterization and Ray Casting](https://reader035.vdocuments.site/reader035/viewer/2022062422/56813325550346895d9a0ae5/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: 3D Rasterization: A Bridge between Rasterization and Ray Casting](https://reader035.vdocuments.site/reader035/viewer/2022062422/56813325550346895d9a0ae5/html5/thumbnails/22.jpg)
T. Davidovič3D Rasterization: A Bridge between Rasterization and Ray Casting
ResultsWhat can we do Non-planar viewports
![Page 23: 3D Rasterization: A Bridge between Rasterization and Ray Casting](https://reader035.vdocuments.site/reader035/viewer/2022062422/56813325550346895d9a0ae5/html5/thumbnails/23.jpg)
T. Davidovič3D Rasterization: A Bridge between Rasterization and Ray Casting
ResultsNon-planar viewports
p0
p1
p2
![Page 24: 3D Rasterization: A Bridge between Rasterization and Ray Casting](https://reader035.vdocuments.site/reader035/viewer/2022062422/56813325550346895d9a0ae5/html5/thumbnails/24.jpg)
T. Davidovič3D Rasterization: A Bridge between Rasterization and Ray Casting
ResultsNon-planar viewports
![Page 25: 3D Rasterization: A Bridge between Rasterization and Ray Casting](https://reader035.vdocuments.site/reader035/viewer/2022062422/56813325550346895d9a0ae5/html5/thumbnails/25.jpg)
T. Davidovič3D Rasterization: A Bridge between Rasterization and Ray Casting
ResultsNon-planar viewports
![Page 26: 3D Rasterization: A Bridge between Rasterization and Ray Casting](https://reader035.vdocuments.site/reader035/viewer/2022062422/56813325550346895d9a0ae5/html5/thumbnails/26.jpg)
T. Davidovič3D Rasterization: A Bridge between Rasterization and Ray Casting
ResultsNon-planar viewports
![Page 27: 3D Rasterization: A Bridge between Rasterization and Ray Casting](https://reader035.vdocuments.site/reader035/viewer/2022062422/56813325550346895d9a0ae5/html5/thumbnails/27.jpg)
T. Davidovič3D Rasterization: A Bridge between Rasterization and Ray Casting
ResultsNon-planar viewports
![Page 28: 3D Rasterization: A Bridge between Rasterization and Ray Casting](https://reader035.vdocuments.site/reader035/viewer/2022062422/56813325550346895d9a0ae5/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: 3D Rasterization: A Bridge between Rasterization and Ray Casting](https://reader035.vdocuments.site/reader035/viewer/2022062422/56813325550346895d9a0ae5/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: 3D Rasterization: A Bridge between Rasterization and Ray Casting](https://reader035.vdocuments.site/reader035/viewer/2022062422/56813325550346895d9a0ae5/html5/thumbnails/30.jpg)
T. Davidovič3D Rasterization: A Bridge between Rasterization and Ray Casting
ResultsConsistency
![Page 31: 3D Rasterization: A Bridge between Rasterization and Ray Casting](https://reader035.vdocuments.site/reader035/viewer/2022062422/56813325550346895d9a0ae5/html5/thumbnails/31.jpg)
T. Davidovič3D Rasterization: A Bridge between Rasterization and Ray Casting
ResultsConsistency
dy
dx
Vx > 0
![Page 32: 3D Rasterization: A Bridge between Rasterization and Ray Casting](https://reader035.vdocuments.site/reader035/viewer/2022062422/56813325550346895d9a0ae5/html5/thumbnails/32.jpg)
T. Davidovič3D Rasterization: A Bridge between Rasterization and Ray Casting
ResultsConsistency
dy
dx
Vx = 0
Vy > 0
![Page 33: 3D Rasterization: A Bridge between Rasterization and Ray Casting](https://reader035.vdocuments.site/reader035/viewer/2022062422/56813325550346895d9a0ae5/html5/thumbnails/33.jpg)
T. Davidovič3D Rasterization: A Bridge between Rasterization and Ray Casting
ResultsConsistency
dy
dx
Vx > 0
Vx > 0
![Page 34: 3D Rasterization: A Bridge between Rasterization and Ray Casting](https://reader035.vdocuments.site/reader035/viewer/2022062422/56813325550346895d9a0ae5/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: 3D Rasterization: A Bridge between Rasterization and Ray Casting](https://reader035.vdocuments.site/reader035/viewer/2022062422/56813325550346895d9a0ae5/html5/thumbnails/35.jpg)
T. Davidovič3D Rasterization: A Bridge between Rasterization and Ray Casting
ResultsCoverage Sampling Antialiasing
![Page 36: 3D Rasterization: A Bridge between Rasterization and Ray Casting](https://reader035.vdocuments.site/reader035/viewer/2022062422/56813325550346895d9a0ae5/html5/thumbnails/36.jpg)
T. Davidovič3D Rasterization: A Bridge between Rasterization and Ray Casting
ResultsCoverage Sampling Antialiasing
![Page 37: 3D Rasterization: A Bridge between Rasterization and Ray Casting](https://reader035.vdocuments.site/reader035/viewer/2022062422/56813325550346895d9a0ae5/html5/thumbnails/37.jpg)
T. Davidovič3D Rasterization: A Bridge between Rasterization and Ray Casting
ResultsCoverage Sampling Antialiasing
![Page 38: 3D Rasterization: A Bridge between Rasterization and Ray Casting](https://reader035.vdocuments.site/reader035/viewer/2022062422/56813325550346895d9a0ae5/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: 3D Rasterization: A Bridge between Rasterization and Ray Casting](https://reader035.vdocuments.site/reader035/viewer/2022062422/56813325550346895d9a0ae5/html5/thumbnails/39.jpg)
T. Davidovič3D Rasterization: A Bridge between Rasterization and Ray Casting
ResultsRaw performance
![Page 40: 3D Rasterization: A Bridge between Rasterization and Ray Casting](https://reader035.vdocuments.site/reader035/viewer/2022062422/56813325550346895d9a0ae5/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: 3D Rasterization: A Bridge between Rasterization and Ray Casting](https://reader035.vdocuments.site/reader035/viewer/2022062422/56813325550346895d9a0ae5/html5/thumbnails/41.jpg)
Thank you!
Tomáš Davidovič