a lazy object-space shading architecture with decoupled sampling · instead, modify the reyes...
TRANSCRIPT
![Page 1: A Lazy Object-Space Shading Architecture With Decoupled Sampling · Instead, Modify the Reyes Pipeline 1. Decouple shading from triangle vertices (Decoupling) 2.Shade partial grids](https://reader036.vdocuments.us/reader036/viewer/2022070908/5f8af40397bc433e5b747657/html5/thumbnails/1.jpg)
High Performance Graphics 2010Saarbrücken, Germany
A Lazy Object-Space Shading Architecture With Decoupled Sampling
Christopher A. BurnsKayvon FatahalianWilliam R. Mark
1
†Stanford UniversityIntel Corporation
†
![Page 2: A Lazy Object-Space Shading Architecture With Decoupled Sampling · Instead, Modify the Reyes Pipeline 1. Decouple shading from triangle vertices (Decoupling) 2.Shade partial grids](https://reader036.vdocuments.us/reader036/viewer/2022070908/5f8af40397bc433e5b747657/html5/thumbnails/2.jpg)
High Performance Graphics 2010Saarbrücken, Germany
Chris Burns
I. Motivation
2
![Page 3: A Lazy Object-Space Shading Architecture With Decoupled Sampling · Instead, Modify the Reyes Pipeline 1. Decouple shading from triangle vertices (Decoupling) 2.Shade partial grids](https://reader036.vdocuments.us/reader036/viewer/2022070908/5f8af40397bc433e5b747657/html5/thumbnails/3.jpg)
High Performance Graphics 2010Saarbrücken, Germany
Chris Burns
The Long-Term Objective
High geometric detail
Motion blur and depth-of-field
Efficient support for these in a real-time system
3
*Ray traced by Gilles Tran *Photo by “Austinii” @ http://austinii.deviantart.com
![Page 4: A Lazy Object-Space Shading Architecture With Decoupled Sampling · Instead, Modify the Reyes Pipeline 1. Decouple shading from triangle vertices (Decoupling) 2.Shade partial grids](https://reader036.vdocuments.us/reader036/viewer/2022070908/5f8af40397bc433e5b747657/html5/thumbnails/4.jpg)
High Performance Graphics 2010Saarbrücken, Germany
Chris Burns
XX
XX
Two Possible Approaches...
4
GPU Reyes
Motion Blur, DOF
Adaptive TessellationFine Occlusion Culling
Detailed Geometry
![Page 5: A Lazy Object-Space Shading Architecture With Decoupled Sampling · Instead, Modify the Reyes Pipeline 1. Decouple shading from triangle vertices (Decoupling) 2.Shade partial grids](https://reader036.vdocuments.us/reader036/viewer/2022070908/5f8af40397bc433e5b747657/html5/thumbnails/5.jpg)
High Performance Graphics 2010Saarbrücken, Germany
Chris Burns
XX
XX
Two Possible Approaches...
4
GPU Reyes
Motion Blur, DOF
Adaptive TessellationFine Occlusion Culling
Detailed Geometry
[Ragan-Kelley ‘10]
[Fatahalian ‘10]
1. Start with GPU pipeline, add missing features
![Page 6: A Lazy Object-Space Shading Architecture With Decoupled Sampling · Instead, Modify the Reyes Pipeline 1. Decouple shading from triangle vertices (Decoupling) 2.Shade partial grids](https://reader036.vdocuments.us/reader036/viewer/2022070908/5f8af40397bc433e5b747657/html5/thumbnails/6.jpg)
High Performance Graphics 2010Saarbrücken, Germany
Chris Burns
XX
XX
Two Possible Approaches...
4
GPU Reyes
Motion Blur, DOF
Adaptive TessellationFine Occlusion Culling
Detailed Geometry
[Ragan-Kelley ‘10]
[Fatahalian ‘10]
1. Start with GPU pipeline, add missing features
2. Start with Reyes pipeline, improve overall efficiency
![Page 7: A Lazy Object-Space Shading Architecture With Decoupled Sampling · Instead, Modify the Reyes Pipeline 1. Decouple shading from triangle vertices (Decoupling) 2.Shade partial grids](https://reader036.vdocuments.us/reader036/viewer/2022070908/5f8af40397bc433e5b747657/html5/thumbnails/7.jpg)
High Performance Graphics 2010Saarbrücken, Germany
Chris Burns
Instead, Modify the Reyes Pipeline
1. Decouple shading from triangle vertices (Decoupling)
2. Shade partial grids after rasterization (Lazy Shading)
5
We evolve Reyes in two ways:
![Page 8: A Lazy Object-Space Shading Architecture With Decoupled Sampling · Instead, Modify the Reyes Pipeline 1. Decouple shading from triangle vertices (Decoupling) 2.Shade partial grids](https://reader036.vdocuments.us/reader036/viewer/2022070908/5f8af40397bc433e5b747657/html5/thumbnails/8.jpg)
High Performance Graphics 2010Saarbrücken, Germany
Chris Burns
Instead, Modify the Reyes Pipeline
1. Decouple shading from triangle vertices (Decoupling)
2. Shade partial grids after rasterization (Lazy Shading)
5
We evolve Reyes in two ways:
1. Eliminate the need for half-pixel polygons
2. Eliminate redundant shading via fine-grained occlusion culling
We achieve two things:
![Page 9: A Lazy Object-Space Shading Architecture With Decoupled Sampling · Instead, Modify the Reyes Pipeline 1. Decouple shading from triangle vertices (Decoupling) 2.Shade partial grids](https://reader036.vdocuments.us/reader036/viewer/2022070908/5f8af40397bc433e5b747657/html5/thumbnails/9.jpg)
High Performance Graphics 2010Saarbrücken, Germany
Chris Burns
II. Reyes Overview
6
![Page 10: A Lazy Object-Space Shading Architecture With Decoupled Sampling · Instead, Modify the Reyes Pipeline 1. Decouple shading from triangle vertices (Decoupling) 2.Shade partial grids](https://reader036.vdocuments.us/reader036/viewer/2022070908/5f8af40397bc433e5b747657/html5/thumbnails/10.jpg)
High Performance Graphics 2010Saarbrücken, Germany
Chris Burns
Reyes Pipeline Overview
7
Split / Dice
Surface Evaluation
Shade @ Vertices RastCull
![Page 11: A Lazy Object-Space Shading Architecture With Decoupled Sampling · Instead, Modify the Reyes Pipeline 1. Decouple shading from triangle vertices (Decoupling) 2.Shade partial grids](https://reader036.vdocuments.us/reader036/viewer/2022070908/5f8af40397bc433e5b747657/html5/thumbnails/11.jpg)
High Performance Graphics 2010Saarbrücken, Germany
Chris Burns
Reyes Pipeline Overview
8
Split / Dice
Surface Evaluation
Shade @ Vertices RastCull
![Page 12: A Lazy Object-Space Shading Architecture With Decoupled Sampling · Instead, Modify the Reyes Pipeline 1. Decouple shading from triangle vertices (Decoupling) 2.Shade partial grids](https://reader036.vdocuments.us/reader036/viewer/2022070908/5f8af40397bc433e5b747657/html5/thumbnails/12.jpg)
High Performance Graphics 2010Saarbrücken, Germany
Chris Burns
Reyes Pipeline Overview
8
Split / Dice
Surface Evaluation
Shade @ Vertices RastCull
Split / Dice
![Page 13: A Lazy Object-Space Shading Architecture With Decoupled Sampling · Instead, Modify the Reyes Pipeline 1. Decouple shading from triangle vertices (Decoupling) 2.Shade partial grids](https://reader036.vdocuments.us/reader036/viewer/2022070908/5f8af40397bc433e5b747657/html5/thumbnails/13.jpg)
High Performance Graphics 2010Saarbrücken, Germany
Chris Burns
Reyes Pipeline Overview
8
Split / Dice
Surface Evaluation
Shade @ Vertices RastCull
![Page 14: A Lazy Object-Space Shading Architecture With Decoupled Sampling · Instead, Modify the Reyes Pipeline 1. Decouple shading from triangle vertices (Decoupling) 2.Shade partial grids](https://reader036.vdocuments.us/reader036/viewer/2022070908/5f8af40397bc433e5b747657/html5/thumbnails/14.jpg)
High Performance Graphics 2010Saarbrücken, Germany
Chris Burns
Reyes Pipeline Overview
9
Split / Dice
Surface Evaluation
Shade @ Vertices RastCull
![Page 15: A Lazy Object-Space Shading Architecture With Decoupled Sampling · Instead, Modify the Reyes Pipeline 1. Decouple shading from triangle vertices (Decoupling) 2.Shade partial grids](https://reader036.vdocuments.us/reader036/viewer/2022070908/5f8af40397bc433e5b747657/html5/thumbnails/15.jpg)
High Performance Graphics 2010Saarbrücken, Germany
Chris Burns
Reyes Pipeline Overview
9
Split / Dice
Surface Evaluation
Shade @ Vertices RastCull
Surface Evaluation
uv only all vertexattributes
![Page 16: A Lazy Object-Space Shading Architecture With Decoupled Sampling · Instead, Modify the Reyes Pipeline 1. Decouple shading from triangle vertices (Decoupling) 2.Shade partial grids](https://reader036.vdocuments.us/reader036/viewer/2022070908/5f8af40397bc433e5b747657/html5/thumbnails/16.jpg)
High Performance Graphics 2010Saarbrücken, Germany
Chris Burns
Reyes Pipeline Overview
9
Split / Dice
Surface Evaluation
Shade @ Vertices RastCull
![Page 17: A Lazy Object-Space Shading Architecture With Decoupled Sampling · Instead, Modify the Reyes Pipeline 1. Decouple shading from triangle vertices (Decoupling) 2.Shade partial grids](https://reader036.vdocuments.us/reader036/viewer/2022070908/5f8af40397bc433e5b747657/html5/thumbnails/17.jpg)
High Performance Graphics 2010Saarbrücken, Germany
Chris Burns
Reyes Pipeline Overview
10
Split / Dice
Surface Evaluation
Shade @ Vertices RastCull
![Page 18: A Lazy Object-Space Shading Architecture With Decoupled Sampling · Instead, Modify the Reyes Pipeline 1. Decouple shading from triangle vertices (Decoupling) 2.Shade partial grids](https://reader036.vdocuments.us/reader036/viewer/2022070908/5f8af40397bc433e5b747657/html5/thumbnails/18.jpg)
High Performance Graphics 2010Saarbrücken, Germany
Chris Burns
Reyes Pipeline Overview
10
Split / Dice
Surface Evaluation
Shade @ Vertices RastCull
Cull
![Page 19: A Lazy Object-Space Shading Architecture With Decoupled Sampling · Instead, Modify the Reyes Pipeline 1. Decouple shading from triangle vertices (Decoupling) 2.Shade partial grids](https://reader036.vdocuments.us/reader036/viewer/2022070908/5f8af40397bc433e5b747657/html5/thumbnails/19.jpg)
High Performance Graphics 2010Saarbrücken, Germany
Chris Burns
Reyes Pipeline Overview
10
Split / Dice
Surface Evaluation
Shade @ Vertices RastCull
![Page 20: A Lazy Object-Space Shading Architecture With Decoupled Sampling · Instead, Modify the Reyes Pipeline 1. Decouple shading from triangle vertices (Decoupling) 2.Shade partial grids](https://reader036.vdocuments.us/reader036/viewer/2022070908/5f8af40397bc433e5b747657/html5/thumbnails/20.jpg)
High Performance Graphics 2010Saarbrücken, Germany
Chris Burns
Reyes Pipeline Overview
11
Split / Dice
Surface Evaluation
Shade @ Vertices
RastCull
![Page 21: A Lazy Object-Space Shading Architecture With Decoupled Sampling · Instead, Modify the Reyes Pipeline 1. Decouple shading from triangle vertices (Decoupling) 2.Shade partial grids](https://reader036.vdocuments.us/reader036/viewer/2022070908/5f8af40397bc433e5b747657/html5/thumbnails/21.jpg)
High Performance Graphics 2010Saarbrücken, Germany
Chris Burns
Reyes Pipeline Overview
11
Split / Dice
Surface Evaluation
Shade @ Vertices
RastCull
Shade @ Vertices
![Page 22: A Lazy Object-Space Shading Architecture With Decoupled Sampling · Instead, Modify the Reyes Pipeline 1. Decouple shading from triangle vertices (Decoupling) 2.Shade partial grids](https://reader036.vdocuments.us/reader036/viewer/2022070908/5f8af40397bc433e5b747657/html5/thumbnails/22.jpg)
High Performance Graphics 2010Saarbrücken, Germany
Chris Burns
Reyes Pipeline Overview
11
Split / Dice
Surface Evaluation
Shade @ Vertices
RastCull
![Page 23: A Lazy Object-Space Shading Architecture With Decoupled Sampling · Instead, Modify the Reyes Pipeline 1. Decouple shading from triangle vertices (Decoupling) 2.Shade partial grids](https://reader036.vdocuments.us/reader036/viewer/2022070908/5f8af40397bc433e5b747657/html5/thumbnails/23.jpg)
High Performance Graphics 2010Saarbrücken, Germany
Chris Burns
Reyes Pipeline Overview
12
Split / Dice
Surface Evaluation Shade RastCull
Rast
![Page 24: A Lazy Object-Space Shading Architecture With Decoupled Sampling · Instead, Modify the Reyes Pipeline 1. Decouple shading from triangle vertices (Decoupling) 2.Shade partial grids](https://reader036.vdocuments.us/reader036/viewer/2022070908/5f8af40397bc433e5b747657/html5/thumbnails/24.jpg)
High Performance Graphics 2010Saarbrücken, Germany
Chris Burns
III. Decoupled Shading
13
![Page 25: A Lazy Object-Space Shading Architecture With Decoupled Sampling · Instead, Modify the Reyes Pipeline 1. Decouple shading from triangle vertices (Decoupling) 2.Shade partial grids](https://reader036.vdocuments.us/reader036/viewer/2022070908/5f8af40397bc433e5b747657/html5/thumbnails/25.jpg)
High Performance Graphics 2010Saarbrücken, Germany
Chris Burns
Micropolygons are Expensive
14Decoupled Shading
5 pixels23%
1/2 pixel
2 pixels
2.8 pixels
16%
4%
20%
Sample Test Efficiency v. Triangle Area
0.5 pixels/tri 7.7 pixels/tri
![Page 26: A Lazy Object-Space Shading Architecture With Decoupled Sampling · Instead, Modify the Reyes Pipeline 1. Decouple shading from triangle vertices (Decoupling) 2.Shade partial grids](https://reader036.vdocuments.us/reader036/viewer/2022070908/5f8af40397bc433e5b747657/html5/thumbnails/26.jpg)
High Performance Graphics 2010Saarbrücken, Germany
Chris Burns
Decouple Shading From Vertices
15Decoupled Shading
Reyes gives one dial: shading rateWe give two: shading rate and tessellation rateMicropolygons unnecessary for good shading
Reyes Vertex Shading Decoupled w/ Shading Grid
![Page 27: A Lazy Object-Space Shading Architecture With Decoupled Sampling · Instead, Modify the Reyes Pipeline 1. Decouple shading from triangle vertices (Decoupling) 2.Shade partial grids](https://reader036.vdocuments.us/reader036/viewer/2022070908/5f8af40397bc433e5b747657/html5/thumbnails/27.jpg)
High Performance Graphics 2010Saarbrücken, Germany
Chris Burns
Decoupled Shading Results
16Decoupled Shading
7 pixels per triangle
0.5 pixels per triangle
Larger Triangles = Fewer Triangles
![Page 28: A Lazy Object-Space Shading Architecture With Decoupled Sampling · Instead, Modify the Reyes Pipeline 1. Decouple shading from triangle vertices (Decoupling) 2.Shade partial grids](https://reader036.vdocuments.us/reader036/viewer/2022070908/5f8af40397bc433e5b747657/html5/thumbnails/28.jpg)
High Performance Graphics 2010Saarbrücken, Germany
Chris Burns
Decoupled Shading Results
17Decoupled Shading
0x 0.5x 1.0x 1.5x 2.0x 2.5x 3.0x 3.5x
3.1x
3.2x
3.0x
“Spheres” Scene
“Army” Scene
“Furball” Scene
Larger Triangles = Greater Sample Test Efficiency
![Page 29: A Lazy Object-Space Shading Architecture With Decoupled Sampling · Instead, Modify the Reyes Pipeline 1. Decouple shading from triangle vertices (Decoupling) 2.Shade partial grids](https://reader036.vdocuments.us/reader036/viewer/2022070908/5f8af40397bc433e5b747657/html5/thumbnails/29.jpg)
High Performance Graphics 2010Saarbrücken, Germany
Chris Burns
Decoupled Shading Analysis
18Decoupled Shading
10x Fewer Triangles + 3x Improved
Efficiency ≈ 4x Reduced Rast Costs
3.1x3.2x
3.0x
Derived from timing scalar implementation of UVT-interleave at 16 samples per pixel
![Page 30: A Lazy Object-Space Shading Architecture With Decoupled Sampling · Instead, Modify the Reyes Pipeline 1. Decouple shading from triangle vertices (Decoupling) 2.Shade partial grids](https://reader036.vdocuments.us/reader036/viewer/2022070908/5f8af40397bc433e5b747657/html5/thumbnails/30.jpg)
High Performance Graphics 2010Saarbrücken, Germany
Chris Burns
Decoupled Shading Analysis
19
0x
1x
2x
3x
4x
5x
6x
0.5 1.1 2.2 3.4 4.6 7.1
Interleave UV NoBlur
Triangle Area
Marginal cost of adding blur support to
rasterization decreases as triangle size increases
Rasterization Speedup vs. Triangle Size
Implication: Micropolygons make blur more expensive
![Page 31: A Lazy Object-Space Shading Architecture With Decoupled Sampling · Instead, Modify the Reyes Pipeline 1. Decouple shading from triangle vertices (Decoupling) 2.Shade partial grids](https://reader036.vdocuments.us/reader036/viewer/2022070908/5f8af40397bc433e5b747657/html5/thumbnails/31.jpg)
High Performance Graphics 2010Saarbrücken, Germany
Chris Burns
IV. Shading Post-Rasterization
20
![Page 32: A Lazy Object-Space Shading Architecture With Decoupled Sampling · Instead, Modify the Reyes Pipeline 1. Decouple shading from triangle vertices (Decoupling) 2.Shade partial grids](https://reader036.vdocuments.us/reader036/viewer/2022070908/5f8af40397bc433e5b747657/html5/thumbnails/32.jpg)
High Performance Graphics 2010Saarbrücken, Germany
Chris Burns
Reyes Shades Things Unseen
21Lazy Shading
If any part of a grid is visible, the entire grid is shaded
![Page 33: A Lazy Object-Space Shading Architecture With Decoupled Sampling · Instead, Modify the Reyes Pipeline 1. Decouple shading from triangle vertices (Decoupling) 2.Shade partial grids](https://reader036.vdocuments.us/reader036/viewer/2022070908/5f8af40397bc433e5b747657/html5/thumbnails/33.jpg)
High Performance Graphics 2010Saarbrücken, Germany
Chris Burns
Reyes Shades Things Unseen
21Lazy Shading
If any part of a grid is visible, the entire grid is shaded
![Page 34: A Lazy Object-Space Shading Architecture With Decoupled Sampling · Instead, Modify the Reyes Pipeline 1. Decouple shading from triangle vertices (Decoupling) 2.Shade partial grids](https://reader036.vdocuments.us/reader036/viewer/2022070908/5f8af40397bc433e5b747657/html5/thumbnails/34.jpg)
High Performance Graphics 2010Saarbrücken, Germany
Chris Burns
Shading Lazily in Reyes
22
Split / Dice Evaluate Shade RastCull
Lazy Shading
Split / Dice Evaluate
Shade
RastCull
Typical Reyes
Modified Reyes
Frag Buffer
![Page 35: A Lazy Object-Space Shading Architecture With Decoupled Sampling · Instead, Modify the Reyes Pipeline 1. Decouple shading from triangle vertices (Decoupling) 2.Shade partial grids](https://reader036.vdocuments.us/reader036/viewer/2022070908/5f8af40397bc433e5b747657/html5/thumbnails/35.jpg)
High Performance Graphics 2010Saarbrücken, Germany
Chris Burns
Shader Execution is Reduced
23Lazy Shading
Shader Executions Per Pixel 1 2 3 4 5 6 >6
Traditional Reyes
Reyes w/ Post-Rasterization Shading
![Page 36: A Lazy Object-Space Shading Architecture With Decoupled Sampling · Instead, Modify the Reyes Pipeline 1. Decouple shading from triangle vertices (Decoupling) 2.Shade partial grids](https://reader036.vdocuments.us/reader036/viewer/2022070908/5f8af40397bc433e5b747657/html5/thumbnails/36.jpg)
High Performance Graphics 2010Saarbrücken, Germany
Chris Burns
Tiling Worsens Overshading
24
Tiling Tiling + LazyNo Tiling
Lazy Shading
![Page 37: A Lazy Object-Space Shading Architecture With Decoupled Sampling · Instead, Modify the Reyes Pipeline 1. Decouple shading from triangle vertices (Decoupling) 2.Shade partial grids](https://reader036.vdocuments.us/reader036/viewer/2022070908/5f8af40397bc433e5b747657/html5/thumbnails/37.jpg)
High Performance Graphics 2010Saarbrücken, Germany
Chris Burns
We Shade Less Post-Rasterization
25Lazy Shading
Spheres
Army
Furball
Spheres
Army
Furball
1.0x 1.5x 2.0x 2.5x 3.0x 3.5x 4.0x
UntiledTiled
Reduction in Shader Execution
![Page 38: A Lazy Object-Space Shading Architecture With Decoupled Sampling · Instead, Modify the Reyes Pipeline 1. Decouple shading from triangle vertices (Decoupling) 2.Shade partial grids](https://reader036.vdocuments.us/reader036/viewer/2022070908/5f8af40397bc433e5b747657/html5/thumbnails/38.jpg)
High Performance Graphics 2010Saarbrücken, Germany
Chris Burns
Conclusion - Summary
1. Object-space shading can be done w/out micropolygons
Significantly reduces rasterization costs
Reduced marginal cost of stochastic rasterization
2. Redundant shading can be significantly reduced
Especially in a tiled renderer
26
![Page 39: A Lazy Object-Space Shading Architecture With Decoupled Sampling · Instead, Modify the Reyes Pipeline 1. Decouple shading from triangle vertices (Decoupling) 2.Shade partial grids](https://reader036.vdocuments.us/reader036/viewer/2022070908/5f8af40397bc433e5b747657/html5/thumbnails/39.jpg)
High Performance Graphics 2010Saarbrücken, Germany
Chris Burns
Final Thoughts
Micropoylgons mostly unnecessary
Displaced geometry approx. by shading at non-silhouettes
Need fancy tessellator to optimize adaptive tessellation
GPUs and Reyes may converge
We want best of both worlds
Much recent work in this direction [Fatahalian10, Ragan-Kelley10]
27