stochastic rasterization - gpu technology conference 2012 · stochastic rasterization - gpu...
TRANSCRIPT
![Page 1: Stochastic Rasterization - GPU Technology Conference 2012 · Stochastic Rasterization - GPU Technology Conference 2012 Author: Eric Enderton; Morgan McGuire Subject: Learn how to](https://reader036.vdocuments.site/reader036/viewer/2022062415/602443a0030685147f4591fe/html5/thumbnails/1.jpg)
Eric Enderton, Morgan McGuire NVIDIA Research
Stochastic Rasterization
![Page 2: Stochastic Rasterization - GPU Technology Conference 2012 · Stochastic Rasterization - GPU Technology Conference 2012 Author: Eric Enderton; Morgan McGuire Subject: Learn how to](https://reader036.vdocuments.site/reader036/viewer/2022062415/602443a0030685147f4591fe/html5/thumbnails/2.jpg)
9 fps on Geforce GT 280
![Page 3: Stochastic Rasterization - GPU Technology Conference 2012 · Stochastic Rasterization - GPU Technology Conference 2012 Author: Eric Enderton; Morgan McGuire Subject: Learn how to](https://reader036.vdocuments.site/reader036/viewer/2022062415/602443a0030685147f4591fe/html5/thumbnails/3.jpg)
![Page 4: Stochastic Rasterization - GPU Technology Conference 2012 · Stochastic Rasterization - GPU Technology Conference 2012 Author: Eric Enderton; Morgan McGuire Subject: Learn how to](https://reader036.vdocuments.site/reader036/viewer/2022062415/602443a0030685147f4591fe/html5/thumbnails/4.jpg)
>60 fps on Geforce GT 280
![Page 5: Stochastic Rasterization - GPU Technology Conference 2012 · Stochastic Rasterization - GPU Technology Conference 2012 Author: Eric Enderton; Morgan McGuire Subject: Learn how to](https://reader036.vdocuments.site/reader036/viewer/2022062415/602443a0030685147f4591fe/html5/thumbnails/5.jpg)
Distribution Ray Tracing
Spatial AA
— pixel (x,y)
Motion blur
— time (t)
Defocus blur / DOF
— lens (u,v)
Monte Carlo sampling
Same rays sample all dimensions at once
![Page 6: Stochastic Rasterization - GPU Technology Conference 2012 · Stochastic Rasterization - GPU Technology Conference 2012 Author: Eric Enderton; Morgan McGuire Subject: Learn how to](https://reader036.vdocuments.site/reader036/viewer/2022062415/602443a0030685147f4591fe/html5/thumbnails/6.jpg)
Stochastic Rasterization
The same thing, but leveraging hardware rasterization
No rays
Interactive speeds
Transparency
![Page 7: Stochastic Rasterization - GPU Technology Conference 2012 · Stochastic Rasterization - GPU Technology Conference 2012 Author: Eric Enderton; Morgan McGuire Subject: Learn how to](https://reader036.vdocuments.site/reader036/viewer/2022062415/602443a0030685147f4591fe/html5/thumbnails/7.jpg)
MSAA
Multi-Sample Anti-Aliasing
— Hardware supports up to 8 samples per pixel
— Spatial anti-aliasing only (triangle edges)
— Not stochastic
Shade once per pixel, not once per sample
— Actually once / fragment
— A major performance criterion for us
![Page 8: Stochastic Rasterization - GPU Technology Conference 2012 · Stochastic Rasterization - GPU Technology Conference 2012 Author: Eric Enderton; Morgan McGuire Subject: Learn how to](https://reader036.vdocuments.site/reader036/viewer/2022062415/602443a0030685147f4591fe/html5/thumbnails/8.jpg)
MSAA
(Kayvon Fatahalian, “Beyond Programmable Shading” course, SIGGRAPH 2010)
![Page 9: Stochastic Rasterization - GPU Technology Conference 2012 · Stochastic Rasterization - GPU Technology Conference 2012 Author: Eric Enderton; Morgan McGuire Subject: Learn how to](https://reader036.vdocuments.site/reader036/viewer/2022062415/602443a0030685147f4591fe/html5/thumbnails/9.jpg)
Familiar stuff, sub-pixel
![Page 10: Stochastic Rasterization - GPU Technology Conference 2012 · Stochastic Rasterization - GPU Technology Conference 2012 Author: Eric Enderton; Morgan McGuire Subject: Learn how to](https://reader036.vdocuments.site/reader036/viewer/2022062415/602443a0030685147f4591fe/html5/thumbnails/10.jpg)
Motion Blur
![Page 11: Stochastic Rasterization - GPU Technology Conference 2012 · Stochastic Rasterization - GPU Technology Conference 2012 Author: Eric Enderton; Morgan McGuire Subject: Learn how to](https://reader036.vdocuments.site/reader036/viewer/2022062415/602443a0030685147f4591fe/html5/thumbnails/11.jpg)
Conventional:
for each x, y sample and triangle Q:
t*, u*, v* = t, u, v
z,a,b = intersect(Q, x, y, t*, u*, v*)
if z < depth[x, y]:
color[x, y] = shade(a, b, ts, us, vs)
depth[x, y] = z
return color
Stochastic:
Accumulation:
for each t, u, v sample:
temp += conventional(t, u, v)
++N
return temp / N
no blur
noisy
ghosts
1 sample per pixel 256x MSAA…or 16x + animation?
![Page 12: Stochastic Rasterization - GPU Technology Conference 2012 · Stochastic Rasterization - GPU Technology Conference 2012 Author: Eric Enderton; Morgan McGuire Subject: Learn how to](https://reader036.vdocuments.site/reader036/viewer/2022062415/602443a0030685147f4591fe/html5/thumbnails/12.jpg)
2D Rasterization
12
1. Bound the triangle’s screen-space extent due to its shape (xy)
2. Iterate over the samples in that bound
3. Perform some xy inside-outside test per sample
4. Shade the samples that pass
2D Rasterizer
Geometry Shader
Pixel Shader
and motion (t)
(2+1)D
t
t = 0 t = 1
![Page 13: Stochastic Rasterization - GPU Technology Conference 2012 · Stochastic Rasterization - GPU Technology Conference 2012 Author: Eric Enderton; Morgan McGuire Subject: Learn how to](https://reader036.vdocuments.site/reader036/viewer/2022062415/602443a0030685147f4591fe/html5/thumbnails/13.jpg)
Extending an Existing Renderer
Pixel Shader Vertex Shader C++ Host Geometry Shader
![Page 14: Stochastic Rasterization - GPU Technology Conference 2012 · Stochastic Rasterization - GPU Technology Conference 2012 Author: Eric Enderton; Morgan McGuire Subject: Learn how to](https://reader036.vdocuments.site/reader036/viewer/2022062415/602443a0030685147f4591fe/html5/thumbnails/14.jpg)
Extending an Existing Renderer
Pixel Shader Vertex Shader C++ Host Geometry Shader
+ velocity attribute
+ camera velocity uniform + duplicate transform
code for prev. vtx + convex hull of
prev & current
(source code at nvidia.com/research)
+ set MSAA mask from
ray-triangle tests
Shading code is unmodified!
![Page 15: Stochastic Rasterization - GPU Technology Conference 2012 · Stochastic Rasterization - GPU Technology Conference 2012 Author: Eric Enderton; Morgan McGuire Subject: Learn how to](https://reader036.vdocuments.site/reader036/viewer/2022062415/602443a0030685147f4591fe/html5/thumbnails/15.jpg)
Geometry Shader z = 0
z = znear
All z > znear: Cull “Normal”: All z < 0: Projected Hull
“z=0 crossing”: zmin < znear and zmax > 0: Clip and Box
-z +z
![Page 16: Stochastic Rasterization - GPU Technology Conference 2012 · Stochastic Rasterization - GPU Technology Conference 2012 Author: Eric Enderton; Morgan McGuire Subject: Learn how to](https://reader036.vdocuments.site/reader036/viewer/2022062415/602443a0030685147f4591fe/html5/thumbnails/16.jpg)
Extreme Example of z = 0 Case
16
![Page 17: Stochastic Rasterization - GPU Technology Conference 2012 · Stochastic Rasterization - GPU Technology Conference 2012 Author: Eric Enderton; Morgan McGuire Subject: Learn how to](https://reader036.vdocuments.site/reader036/viewer/2022062415/602443a0030685147f4591fe/html5/thumbnails/17.jpg)
Extreme Example of z = 0 Case
17
![Page 18: Stochastic Rasterization - GPU Technology Conference 2012 · Stochastic Rasterization - GPU Technology Conference 2012 Author: Eric Enderton; Morgan McGuire Subject: Learn how to](https://reader036.vdocuments.site/reader036/viewer/2022062415/602443a0030685147f4591fe/html5/thumbnails/18.jpg)
Extreme Example of z = 0 Case
18
![Page 19: Stochastic Rasterization - GPU Technology Conference 2012 · Stochastic Rasterization - GPU Technology Conference 2012 Author: Eric Enderton; Morgan McGuire Subject: Learn how to](https://reader036.vdocuments.site/reader036/viewer/2022062415/602443a0030685147f4591fe/html5/thumbnails/19.jpg)
Correct result for a moving camera
19
![Page 20: Stochastic Rasterization - GPU Technology Conference 2012 · Stochastic Rasterization - GPU Technology Conference 2012 Author: Eric Enderton; Morgan McGuire Subject: Learn how to](https://reader036.vdocuments.site/reader036/viewer/2022062415/602443a0030685147f4591fe/html5/thumbnails/20.jpg)
Integration with MSAA
• Perform ray-triangle test per sample
• Override the pixel’s coverage mask
• Shade at most once per pixel
• Use ray differentials (like screen-space derivatives) to set
anisotropic MIP-map levels
![Page 21: Stochastic Rasterization - GPU Technology Conference 2012 · Stochastic Rasterization - GPU Technology Conference 2012 Author: Eric Enderton; Morgan McGuire Subject: Learn how to](https://reader036.vdocuments.site/reader036/viewer/2022062415/602443a0030685147f4591fe/html5/thumbnails/21.jpg)
Pixel Shader
// Sample stochastic visibility
for (int i = 0; i < MSAA_SAMPLES; ++i) {
getRay(origin, dir, i, gl_FragCoord.xy);
if (intersectRay(origin, dir, time[i], u, v)) {
gl_SampleMask[0] |= (1 << i);
}
}
if (gl_SampleMask[0] == 0) discard;
// Barycentric interpolation
vertex = v0 * u + v1 * v + v2 * (1 – u – v);
normal = n0 * u + n1 * v + n2 * (1 – u – v);
texCoord = t0 * u + t1 * v + t2 * (1 – u – v);
// Shade as usual…
![Page 22: Stochastic Rasterization - GPU Technology Conference 2012 · Stochastic Rasterization - GPU Technology Conference 2012 Author: Eric Enderton; Morgan McGuire Subject: Learn how to](https://reader036.vdocuments.site/reader036/viewer/2022062415/602443a0030685147f4591fe/html5/thumbnails/22.jpg)
Multisample Rate: 1x
22
![Page 23: Stochastic Rasterization - GPU Technology Conference 2012 · Stochastic Rasterization - GPU Technology Conference 2012 Author: Eric Enderton; Morgan McGuire Subject: Learn how to](https://reader036.vdocuments.site/reader036/viewer/2022062415/602443a0030685147f4591fe/html5/thumbnails/23.jpg)
Multisample Rate: 4x
23
![Page 24: Stochastic Rasterization - GPU Technology Conference 2012 · Stochastic Rasterization - GPU Technology Conference 2012 Author: Eric Enderton; Morgan McGuire Subject: Learn how to](https://reader036.vdocuments.site/reader036/viewer/2022062415/602443a0030685147f4591fe/html5/thumbnails/24.jpg)
Multisample Rate: 8x
24
![Page 25: Stochastic Rasterization - GPU Technology Conference 2012 · Stochastic Rasterization - GPU Technology Conference 2012 Author: Eric Enderton; Morgan McGuire Subject: Learn how to](https://reader036.vdocuments.site/reader036/viewer/2022062415/602443a0030685147f4591fe/html5/thumbnails/25.jpg)
Multisample Rate: 16x
25
![Page 26: Stochastic Rasterization - GPU Technology Conference 2012 · Stochastic Rasterization - GPU Technology Conference 2012 Author: Eric Enderton; Morgan McGuire Subject: Learn how to](https://reader036.vdocuments.site/reader036/viewer/2022062415/602443a0030685147f4591fe/html5/thumbnails/26.jpg)
Multisample Rate: 64x
26
![Page 27: Stochastic Rasterization - GPU Technology Conference 2012 · Stochastic Rasterization - GPU Technology Conference 2012 Author: Eric Enderton; Morgan McGuire Subject: Learn how to](https://reader036.vdocuments.site/reader036/viewer/2022062415/602443a0030685147f4591fe/html5/thumbnails/27.jpg)
Multisample Rate: 256x
27
![Page 28: Stochastic Rasterization - GPU Technology Conference 2012 · Stochastic Rasterization - GPU Technology Conference 2012 Author: Eric Enderton; Morgan McGuire Subject: Learn how to](https://reader036.vdocuments.site/reader036/viewer/2022062415/602443a0030685147f4591fe/html5/thumbnails/28.jpg)
28
![Page 29: Stochastic Rasterization - GPU Technology Conference 2012 · Stochastic Rasterization - GPU Technology Conference 2012 Author: Eric Enderton; Morgan McGuire Subject: Learn how to](https://reader036.vdocuments.site/reader036/viewer/2022062415/602443a0030685147f4591fe/html5/thumbnails/29.jpg)
Sample Test Efficiency
29 AABB Convex Hull
Scene
![Page 30: Stochastic Rasterization - GPU Technology Conference 2012 · Stochastic Rasterization - GPU Technology Conference 2012 Author: Eric Enderton; Morgan McGuire Subject: Learn how to](https://reader036.vdocuments.site/reader036/viewer/2022062415/602443a0030685147f4591fe/html5/thumbnails/30.jpg)
Depth of Field
![Page 31: Stochastic Rasterization - GPU Technology Conference 2012 · Stochastic Rasterization - GPU Technology Conference 2012 Author: Eric Enderton; Morgan McGuire Subject: Learn how to](https://reader036.vdocuments.site/reader036/viewer/2022062415/602443a0030685147f4591fe/html5/thumbnails/31.jpg)
New Bounding Geometry
![Page 32: Stochastic Rasterization - GPU Technology Conference 2012 · Stochastic Rasterization - GPU Technology Conference 2012 Author: Eric Enderton; Morgan McGuire Subject: Learn how to](https://reader036.vdocuments.site/reader036/viewer/2022062415/602443a0030685147f4591fe/html5/thumbnails/32.jpg)
Multisample Rate: 1x
32
![Page 33: Stochastic Rasterization - GPU Technology Conference 2012 · Stochastic Rasterization - GPU Technology Conference 2012 Author: Eric Enderton; Morgan McGuire Subject: Learn how to](https://reader036.vdocuments.site/reader036/viewer/2022062415/602443a0030685147f4591fe/html5/thumbnails/33.jpg)
Multisample Rate: 4x
33
![Page 34: Stochastic Rasterization - GPU Technology Conference 2012 · Stochastic Rasterization - GPU Technology Conference 2012 Author: Eric Enderton; Morgan McGuire Subject: Learn how to](https://reader036.vdocuments.site/reader036/viewer/2022062415/602443a0030685147f4591fe/html5/thumbnails/34.jpg)
Multisample Rate: 8x
34
![Page 35: Stochastic Rasterization - GPU Technology Conference 2012 · Stochastic Rasterization - GPU Technology Conference 2012 Author: Eric Enderton; Morgan McGuire Subject: Learn how to](https://reader036.vdocuments.site/reader036/viewer/2022062415/602443a0030685147f4591fe/html5/thumbnails/35.jpg)
Multisample Rate: 16x
35
![Page 36: Stochastic Rasterization - GPU Technology Conference 2012 · Stochastic Rasterization - GPU Technology Conference 2012 Author: Eric Enderton; Morgan McGuire Subject: Learn how to](https://reader036.vdocuments.site/reader036/viewer/2022062415/602443a0030685147f4591fe/html5/thumbnails/36.jpg)
Multisample Rate: 64x
36
![Page 37: Stochastic Rasterization - GPU Technology Conference 2012 · Stochastic Rasterization - GPU Technology Conference 2012 Author: Eric Enderton; Morgan McGuire Subject: Learn how to](https://reader036.vdocuments.site/reader036/viewer/2022062415/602443a0030685147f4591fe/html5/thumbnails/37.jpg)
37
![Page 38: Stochastic Rasterization - GPU Technology Conference 2012 · Stochastic Rasterization - GPU Technology Conference 2012 Author: Eric Enderton; Morgan McGuire Subject: Learn how to](https://reader036.vdocuments.site/reader036/viewer/2022062415/602443a0030685147f4591fe/html5/thumbnails/38.jpg)
Stochastic Transparency
![Page 39: Stochastic Rasterization - GPU Technology Conference 2012 · Stochastic Rasterization - GPU Technology Conference 2012 Author: Eric Enderton; Morgan McGuire Subject: Learn how to](https://reader036.vdocuments.site/reader036/viewer/2022062415/602443a0030685147f4591fe/html5/thumbnails/39.jpg)
Transparency
hair
foliage
particles
windows
shadows thereof
![Page 40: Stochastic Rasterization - GPU Technology Conference 2012 · Stochastic Rasterization - GPU Technology Conference 2012 Author: Eric Enderton; Morgan McGuire Subject: Learn how to](https://reader036.vdocuments.site/reader036/viewer/2022062415/602443a0030685147f4591fe/html5/thumbnails/40.jpg)
Order dependent
![Page 41: Stochastic Rasterization - GPU Technology Conference 2012 · Stochastic Rasterization - GPU Technology Conference 2012 Author: Eric Enderton; Morgan McGuire Subject: Learn how to](https://reader036.vdocuments.site/reader036/viewer/2022062415/602443a0030685147f4591fe/html5/thumbnails/41.jpg)
But sorting is painful
Sort primitives
— Fails for overlaps
— Disrupts engine code
Sort per pixel
— A-Buffer
— Unbounded memory
Want: Order Independent Transparency (OIT)
![Page 42: Stochastic Rasterization - GPU Technology Conference 2012 · Stochastic Rasterization - GPU Technology Conference 2012 Author: Eric Enderton; Morgan McGuire Subject: Learn how to](https://reader036.vdocuments.site/reader036/viewer/2022062415/602443a0030685147f4591fe/html5/thumbnails/42.jpg)
cf. [Fuchs et al 1995]
![Page 43: Stochastic Rasterization - GPU Technology Conference 2012 · Stochastic Rasterization - GPU Technology Conference 2012 Author: Eric Enderton; Morgan McGuire Subject: Learn how to](https://reader036.vdocuments.site/reader036/viewer/2022062415/602443a0030685147f4591fe/html5/thumbnails/43.jpg)
Correct on average
… if the masks are uncorrelated.
Uses the z buffer to be order independent.
![Page 44: Stochastic Rasterization - GPU Technology Conference 2012 · Stochastic Rasterization - GPU Technology Conference 2012 Author: Eric Enderton; Morgan McGuire Subject: Learn how to](https://reader036.vdocuments.site/reader036/viewer/2022062415/602443a0030685147f4591fe/html5/thumbnails/44.jpg)
Stochastic Transparency
Screen-door + multi-sampling + random masks.
Correct on average
All cases unified in a single algorithm
— Foliage, Smoke, Hair, Glass, mixtures
One order-independent pass over the geometry
Small fixed space (one MSAA frame buffer)
But, noise
![Page 45: Stochastic Rasterization - GPU Technology Conference 2012 · Stochastic Rasterization - GPU Technology Conference 2012 Author: Eric Enderton; Morgan McGuire Subject: Learn how to](https://reader036.vdocuments.site/reader036/viewer/2022062415/602443a0030685147f4591fe/html5/thumbnails/45.jpg)
MSAA helps
Get S = 8*P samples per pixel, in P passes
Pixel Shader sets 8-bit mask as pseudo-random function of
alpha, x, y, prim ID.
Spatial AA with the same samples
Shading rate stays 1/fragment
![Page 46: Stochastic Rasterization - GPU Technology Conference 2012 · Stochastic Rasterization - GPU Technology Conference 2012 Author: Eric Enderton; Morgan McGuire Subject: Learn how to](https://reader036.vdocuments.site/reader036/viewer/2022062415/602443a0030685147f4591fe/html5/thumbnails/46.jpg)
(Reference)
![Page 47: Stochastic Rasterization - GPU Technology Conference 2012 · Stochastic Rasterization - GPU Technology Conference 2012 Author: Eric Enderton; Morgan McGuire Subject: Learn how to](https://reader036.vdocuments.site/reader036/viewer/2022062415/602443a0030685147f4591fe/html5/thumbnails/47.jpg)
8 spp
![Page 48: Stochastic Rasterization - GPU Technology Conference 2012 · Stochastic Rasterization - GPU Technology Conference 2012 Author: Eric Enderton; Morgan McGuire Subject: Learn how to](https://reader036.vdocuments.site/reader036/viewer/2022062415/602443a0030685147f4591fe/html5/thumbnails/48.jpg)
16 spp
![Page 49: Stochastic Rasterization - GPU Technology Conference 2012 · Stochastic Rasterization - GPU Technology Conference 2012 Author: Eric Enderton; Morgan McGuire Subject: Learn how to](https://reader036.vdocuments.site/reader036/viewer/2022062415/602443a0030685147f4591fe/html5/thumbnails/49.jpg)
32 spp
![Page 50: Stochastic Rasterization - GPU Technology Conference 2012 · Stochastic Rasterization - GPU Technology Conference 2012 Author: Eric Enderton; Morgan McGuire Subject: Learn how to](https://reader036.vdocuments.site/reader036/viewer/2022062415/602443a0030685147f4591fe/html5/thumbnails/50.jpg)
64 spp
![Page 51: Stochastic Rasterization - GPU Technology Conference 2012 · Stochastic Rasterization - GPU Technology Conference 2012 Author: Eric Enderton; Morgan McGuire Subject: Learn how to](https://reader036.vdocuments.site/reader036/viewer/2022062415/602443a0030685147f4591fe/html5/thumbnails/51.jpg)
512 spp
![Page 52: Stochastic Rasterization - GPU Technology Conference 2012 · Stochastic Rasterization - GPU Technology Conference 2012 Author: Eric Enderton; Morgan McGuire Subject: Learn how to](https://reader036.vdocuments.site/reader036/viewer/2022062415/602443a0030685147f4591fe/html5/thumbnails/52.jpg)
![Page 53: Stochastic Rasterization - GPU Technology Conference 2012 · Stochastic Rasterization - GPU Technology Conference 2012 Author: Eric Enderton; Morgan McGuire Subject: Learn how to](https://reader036.vdocuments.site/reader036/viewer/2022062415/602443a0030685147f4591fe/html5/thumbnails/53.jpg)
Run Stochastic Transparency, rendering only z
Optional: Render with MSAA hardware
Each map pixel contains S depth values
Models the deep shadow function vis(z) =
How much light gets from camera to depth z
Stochastic Shadow Map
![Page 54: Stochastic Rasterization - GPU Technology Conference 2012 · Stochastic Rasterization - GPU Technology Conference 2012 Author: Eric Enderton; Morgan McGuire Subject: Learn how to](https://reader036.vdocuments.site/reader036/viewer/2022062415/602443a0030685147f4591fe/html5/thumbnails/54.jpg)
Stochastic Shadow Map
0
1
z
![Page 55: Stochastic Rasterization - GPU Technology Conference 2012 · Stochastic Rasterization - GPU Technology Conference 2012 Author: Eric Enderton; Morgan McGuire Subject: Learn how to](https://reader036.vdocuments.site/reader036/viewer/2022062415/602443a0030685147f4591fe/html5/thumbnails/55.jpg)
Stochastic Shadow Map
Every pixel looks the same
— S z-values
— z’s not sorted
Look-up is just PCF
— S comparisons per shadow-map pixel
Color, better reconstruction filter in [CSSM paper]
![Page 56: Stochastic Rasterization - GPU Technology Conference 2012 · Stochastic Rasterization - GPU Technology Conference 2012 Author: Eric Enderton; Morgan McGuire Subject: Learn how to](https://reader036.vdocuments.site/reader036/viewer/2022062415/602443a0030685147f4591fe/html5/thumbnails/56.jpg)
Colored Stochastic Shadow Maps
![Page 57: Stochastic Rasterization - GPU Technology Conference 2012 · Stochastic Rasterization - GPU Technology Conference 2012 Author: Eric Enderton; Morgan McGuire Subject: Learn how to](https://reader036.vdocuments.site/reader036/viewer/2022062415/602443a0030685147f4591fe/html5/thumbnails/57.jpg)
Depth-based Stochastic Transparency
With an extra pass, you can do a lot better
Shadow map from camera POV
Final color is (parallel) sum:
— C = sigma vis(z) a_i c_i
— vis(z) estimated using shadow map
Very convenient on GPU:
— For sum, compare fragment z to shadow map z’s
— MSAA z-buffer comparison can do S compares at once
![Page 58: Stochastic Rasterization - GPU Technology Conference 2012 · Stochastic Rasterization - GPU Technology Conference 2012 Author: Eric Enderton; Morgan McGuire Subject: Learn how to](https://reader036.vdocuments.site/reader036/viewer/2022062415/602443a0030685147f4591fe/html5/thumbnails/58.jpg)
![Page 59: Stochastic Rasterization - GPU Technology Conference 2012 · Stochastic Rasterization - GPU Technology Conference 2012 Author: Eric Enderton; Morgan McGuire Subject: Learn how to](https://reader036.vdocuments.site/reader036/viewer/2022062415/602443a0030685147f4591fe/html5/thumbnails/59.jpg)
Stochastic Transparency
Randomized, sub-pixel screen-door transparency
Distribute samples over an invisible dimension of Swiss
cheese
Correct on average but noisy
Streaming, fixed space, parallel, MSAA
Turns transparent stuff into opaque stuff
… Which can then be handled by opaque-only algorithms
(including stochastic MB + DOF)
![Page 60: Stochastic Rasterization - GPU Technology Conference 2012 · Stochastic Rasterization - GPU Technology Conference 2012 Author: Eric Enderton; Morgan McGuire Subject: Learn how to](https://reader036.vdocuments.site/reader036/viewer/2022062415/602443a0030685147f4591fe/html5/thumbnails/60.jpg)
Advanced Topics
Stratified sampling
Sample test efficiency
Reconstruction
![Page 61: Stochastic Rasterization - GPU Technology Conference 2012 · Stochastic Rasterization - GPU Technology Conference 2012 Author: Eric Enderton; Morgan McGuire Subject: Learn how to](https://reader036.vdocuments.site/reader036/viewer/2022062415/602443a0030685147f4591fe/html5/thumbnails/61.jpg)
Bibliography
“Hardware-Accelerated Stochastic Rasterization on Conventional GPU
Architectures,” McGuire, Enderton, Shirley & Luebke, HPG 2010
“Stochastic Transparency,” Enderton, Sintorn, Shirley & Luebke, TVCG 2011
“Colored Stochastic Shadow Maps,” McGuire & Enderton, I3D 2011
“Stratified Sampling for Stochastic Transparency,” Laine & Karras, EGSR 2011
“Clipless Dual-Space Bounds for Faster Stochastic Rasterization,” Laine, Aila,
Karras & Lehtinen, Siggraph 2011
“A Local Image Reconstruction Algorithm for Stochastic Rendering,” Shirley,
Aila, Cohen, Enderton, Laine, Luebke & McGuire, I3D 2011
“Temporal Light Field Reconstruction for Rendering Distribution Effects,”
Lehtinen, Aila, Chen, Laine & Durand, SIGGRAPH 2011
![Page 62: Stochastic Rasterization - GPU Technology Conference 2012 · Stochastic Rasterization - GPU Technology Conference 2012 Author: Eric Enderton; Morgan McGuire Subject: Learn how to](https://reader036.vdocuments.site/reader036/viewer/2022062415/602443a0030685147f4591fe/html5/thumbnails/62.jpg)
![Page 63: Stochastic Rasterization - GPU Technology Conference 2012 · Stochastic Rasterization - GPU Technology Conference 2012 Author: Eric Enderton; Morgan McGuire Subject: Learn how to](https://reader036.vdocuments.site/reader036/viewer/2022062415/602443a0030685147f4591fe/html5/thumbnails/63.jpg)
Backup
![Page 64: Stochastic Rasterization - GPU Technology Conference 2012 · Stochastic Rasterization - GPU Technology Conference 2012 Author: Eric Enderton; Morgan McGuire Subject: Learn how to](https://reader036.vdocuments.site/reader036/viewer/2022062415/602443a0030685147f4591fe/html5/thumbnails/64.jpg)
Deep Shadow Maps
How much light gets from camera to depth z =
= How much light gets from depth z to camera
“Deep Shadow Maps”, Lokovic and Leach (Siggraph 2000)
![Page 65: Stochastic Rasterization - GPU Technology Conference 2012 · Stochastic Rasterization - GPU Technology Conference 2012 Author: Eric Enderton; Morgan McGuire Subject: Learn how to](https://reader036.vdocuments.site/reader036/viewer/2022062415/602443a0030685147f4591fe/html5/thumbnails/65.jpg)
Transparency without sorting
Porter-Duff:
Rearrange to find the contribution of each fragment:
using our friend
The sum is order independent, given vis(z).
Approximate vis(z) approximate sum.