a lazy object-space shading architecture with decoupled sampling · instead, modify the reyes...

39
High Performance Graphics 2010 Saarbrücken, Germany A Lazy Object-Space Shading Architecture With Decoupled Sampling Christopher A. Burns Kayvon Fatahalian William R. Mark 1 Stanford University Intel Corporation

Upload: others

Post on 03-Aug-2020

5 views

Category:

Documents


0 download

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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