conservative rasterization and raster order...

53
Conservative Rasterization and Raster Order Views Rahul Sathe, Evgeny Makarov Senior DevTech Engineer NVIDIA

Upload: others

Post on 02-Oct-2020

2 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Conservative Rasterization and Raster Order Viewstwvideo01.ubm-us.net/o1/vault/gdc2017/Presentations/Sathe_Rahul_… · Conservative Rasterization Microsoft. (2015). Direct3D Feature

Conservative Rasterization and Raster Order Views

Rahul Sathe, Evgeny MakarovSenior DevTech Engineer NVIDIA

Page 2: Conservative Rasterization and Raster Order Viewstwvideo01.ubm-us.net/o1/vault/gdc2017/Presentations/Sathe_Rahul_… · Conservative Rasterization Microsoft. (2015). Direct3D Feature

Programmable Sample Locations

Rahul SatheSenior DevTech Engineer NVIDIA

Page 3: Conservative Rasterization and Raster Order Viewstwvideo01.ubm-us.net/o1/vault/gdc2017/Presentations/Sathe_Rahul_… · Conservative Rasterization Microsoft. (2015). Direct3D Feature

Agenda●Motivation: Programmable Sample Locations●Rasterization Basics●Conservative Rasterization●Algorithm

●Pull mode interpolation

●Clipper Issues and the work-arounds●Temporal super sampling/TAA●Future

Page 4: Conservative Rasterization and Raster Order Viewstwvideo01.ubm-us.net/o1/vault/gdc2017/Presentations/Sathe_Rahul_… · Conservative Rasterization Microsoft. (2015). Direct3D Feature

Motivation

●Samples layout: Uniform Grid

●Aliasing : Geometric, shader and texture

●Temporal super-sampling

●Desired feature to tackle flickering

●Ray tracing requires richer sample patterns

●Halton (2, 3), 0-2, Sobol Sequence etc.

Page 5: Conservative Rasterization and Raster Order Viewstwvideo01.ubm-us.net/o1/vault/gdc2017/Presentations/Sathe_Rahul_… · Conservative Rasterization Microsoft. (2015). Direct3D Feature

Rasterization Basics

●Rasterizer

●Fixed Function

●Rasterization:

●Is P(x,y) inside

Vertex Shader

Input Assembler

Hull Shader

Tesselator

Domain Shader

Geometry Shader

Rasterizer

Pixel Shader

Output Merger

Memory Resources(Textures,

Buffers etc.)

Stream-out

Page 6: Conservative Rasterization and Raster Order Viewstwvideo01.ubm-us.net/o1/vault/gdc2017/Presentations/Sathe_Rahul_… · Conservative Rasterization Microsoft. (2015). Direct3D Feature

Rasterization Basics

Page 7: Conservative Rasterization and Raster Order Viewstwvideo01.ubm-us.net/o1/vault/gdc2017/Presentations/Sathe_Rahul_… · Conservative Rasterization Microsoft. (2015). Direct3D Feature

Rasterization Basics

Page 8: Conservative Rasterization and Raster Order Viewstwvideo01.ubm-us.net/o1/vault/gdc2017/Presentations/Sathe_Rahul_… · Conservative Rasterization Microsoft. (2015). Direct3D Feature

Rasterization Basics

Page 9: Conservative Rasterization and Raster Order Viewstwvideo01.ubm-us.net/o1/vault/gdc2017/Presentations/Sathe_Rahul_… · Conservative Rasterization Microsoft. (2015). Direct3D Feature

Rasterization Basics

●Edge Equations in Screen Space●Ax+By+C < 0 : Inside●Ax+By+C > 0 : Outside●Ax+By+C = 0 : On the edge

●Top-left rule when on the edge

●Hierarchical rasterization

Page 10: Conservative Rasterization and Raster Order Viewstwvideo01.ubm-us.net/o1/vault/gdc2017/Presentations/Sathe_Rahul_… · Conservative Rasterization Microsoft. (2015). Direct3D Feature

Rasterization Basics

●Edge Equations in Screen Space●Ax+By+C < 0 : Inside●Ax+By+C > 0 : Outside●Ax+By+C = 0 : On the edge

●Top-left rule when on the edge

●Hierarchical rasterization

Page 11: Conservative Rasterization and Raster Order Viewstwvideo01.ubm-us.net/o1/vault/gdc2017/Presentations/Sathe_Rahul_… · Conservative Rasterization Microsoft. (2015). Direct3D Feature

Conservative Rasterization

Page 12: Conservative Rasterization and Raster Order Viewstwvideo01.ubm-us.net/o1/vault/gdc2017/Presentations/Sathe_Rahul_… · Conservative Rasterization Microsoft. (2015). Direct3D Feature

Conservative Rasterization

Page 13: Conservative Rasterization and Raster Order Viewstwvideo01.ubm-us.net/o1/vault/gdc2017/Presentations/Sathe_Rahul_… · Conservative Rasterization Microsoft. (2015). Direct3D Feature

Conservative Rasterization

●Rasterizes pixels if their extents overlap the primitive

●Feature Level 12_1

●APIs : D3D12 and D3D11.3

●Tier 3 : SV_InnerCoverage

Page 14: Conservative Rasterization and Raster Order Viewstwvideo01.ubm-us.net/o1/vault/gdc2017/Presentations/Sathe_Rahul_… · Conservative Rasterization Microsoft. (2015). Direct3D Feature

Conservative Rasterization

●Rasterizes pixels if their extents overlap the primitive

●Feature Level 12_1

●APIs : D3D12 and D3D11.3

●Tier 3 : SV_InnerCoverage

Page 15: Conservative Rasterization and Raster Order Viewstwvideo01.ubm-us.net/o1/vault/gdc2017/Presentations/Sathe_Rahul_… · Conservative Rasterization Microsoft. (2015). Direct3D Feature

Algorithm

Page 16: Conservative Rasterization and Raster Order Viewstwvideo01.ubm-us.net/o1/vault/gdc2017/Presentations/Sathe_Rahul_… · Conservative Rasterization Microsoft. (2015). Direct3D Feature

Algorithm

Page 17: Conservative Rasterization and Raster Order Viewstwvideo01.ubm-us.net/o1/vault/gdc2017/Presentations/Sathe_Rahul_… · Conservative Rasterization Microsoft. (2015). Direct3D Feature

Algorithm

●GS ●edge equations

●Conservative Rasterizer●PS

●Random offsets●If outside discard ●If inside interpolate●Output the depth

Page 18: Conservative Rasterization and Raster Order Viewstwvideo01.ubm-us.net/o1/vault/gdc2017/Presentations/Sathe_Rahul_… · Conservative Rasterization Microsoft. (2015). Direct3D Feature

Algorithm

●GS ●edge equations

●Conservative Rasterizer●PS

●Random offsets●If outside discard ●If inside interpolate●Output the depth

Page 19: Conservative Rasterization and Raster Order Viewstwvideo01.ubm-us.net/o1/vault/gdc2017/Presentations/Sathe_Rahul_… · Conservative Rasterization Microsoft. (2015). Direct3D Feature

Algorithm

●GS ●edge equations

●Conservative Rasterizer●PS

●Random offsets●If outside discard ●If inside interpolate●Output the depth

Page 20: Conservative Rasterization and Raster Order Viewstwvideo01.ubm-us.net/o1/vault/gdc2017/Presentations/Sathe_Rahul_… · Conservative Rasterization Microsoft. (2015). Direct3D Feature

Algorithm

●GS ●edge equations

●Conservative Rasterizer●PS

●Random offsets●If outside discard ●If inside interpolate●Output the depth

Page 21: Conservative Rasterization and Raster Order Viewstwvideo01.ubm-us.net/o1/vault/gdc2017/Presentations/Sathe_Rahul_… · Conservative Rasterization Microsoft. (2015). Direct3D Feature

Algorithm

●GS ●edge equations

●Conservative Rasterizer●PS

●Random offsets●If outside discard ●If inside interpolate●Output the depth

Page 22: Conservative Rasterization and Raster Order Viewstwvideo01.ubm-us.net/o1/vault/gdc2017/Presentations/Sathe_Rahul_… · Conservative Rasterization Microsoft. (2015). Direct3D Feature

Algorithm

●GS ●edge equations

●Conservative Rasterizer●PS

●Random offsets●If outside discard ●If inside interpolate●Output the depth

Page 23: Conservative Rasterization and Raster Order Viewstwvideo01.ubm-us.net/o1/vault/gdc2017/Presentations/Sathe_Rahul_… · Conservative Rasterization Microsoft. (2015). Direct3D Feature

Pull mode interpolation

●Interpolation is done in the shader

●EvaluateAttributeAtCentroid

●EvaluateAttributeAtSample

●EvaluateAttributeSnapped

●16x16 possible discrete offsets

Page 24: Conservative Rasterization and Raster Order Viewstwvideo01.ubm-us.net/o1/vault/gdc2017/Presentations/Sathe_Rahul_… · Conservative Rasterization Microsoft. (2015). Direct3D Feature

Other Interesting Details

●SV_Depth output forces the late Z/stencil

●Consistent offsets from a given viewpoint

●SampleCount > 1

●PS should generate per sample output depth

●Pass SV_SampleIndex as input to the PS

Page 25: Conservative Rasterization and Raster Order Viewstwvideo01.ubm-us.net/o1/vault/gdc2017/Presentations/Sathe_Rahul_… · Conservative Rasterization Microsoft. (2015). Direct3D Feature

Clipper

Page 26: Conservative Rasterization and Raster Order Viewstwvideo01.ubm-us.net/o1/vault/gdc2017/Presentations/Sathe_Rahul_… · Conservative Rasterization Microsoft. (2015). Direct3D Feature

A

C

B

Clipper

●Clips large triangles

●1.f – (1.f – t) ≠ t

●Must use fixed point math

●But the GS sent the original triangle’s edge equations

●Pixels along shared edges get shaded multiple times

Page 27: Conservative Rasterization and Raster Order Viewstwvideo01.ubm-us.net/o1/vault/gdc2017/Presentations/Sathe_Rahul_… · Conservative Rasterization Microsoft. (2015). Direct3D Feature

A

C

B

Clipper

●Clips large triangles

●1.f – (1.f – t) ≠ t

●Must use fixed point math

●But the GS sent the original triangle’s edge equations

●Pixels along shared edges get shaded multiple times

Page 28: Conservative Rasterization and Raster Order Viewstwvideo01.ubm-us.net/o1/vault/gdc2017/Presentations/Sathe_Rahul_… · Conservative Rasterization Microsoft. (2015). Direct3D Feature

A

C

B

Clipper

●Clips large triangles

●1.f – (1.f – t) ≠ t

●Must use fixed point math

●But the GS sent the original triangle’s edge equations

●Pixels along shared edges get shaded multiple times

A

C

B1

B2

Page 29: Conservative Rasterization and Raster Order Viewstwvideo01.ubm-us.net/o1/vault/gdc2017/Presentations/Sathe_Rahul_… · Conservative Rasterization Microsoft. (2015). Direct3D Feature

A

C

B

Clipper

●Clips large triangles

●1.f – (1.f – t) ≠ t

●Must use fixed point math

●But the GS sent the original triangle’s edge equations

●Pixels along shared edges get shaded multiple times

A

C

B1

B2

A

C

B1

Page 30: Conservative Rasterization and Raster Order Viewstwvideo01.ubm-us.net/o1/vault/gdc2017/Presentations/Sathe_Rahul_… · Conservative Rasterization Microsoft. (2015). Direct3D Feature

A

C

B

Clipper

●Clips large triangles

●1.f – (1.f – t) ≠ t

●Must use fixed point math

●But the GS sent the original triangle’s edge equations

●Pixels along shared edges get shaded multiple times

A

C

B1

B2

A

C

B1

A

C

B1

Page 31: Conservative Rasterization and Raster Order Viewstwvideo01.ubm-us.net/o1/vault/gdc2017/Presentations/Sathe_Rahul_… · Conservative Rasterization Microsoft. (2015). Direct3D Feature

A

C

B

Clipper

●Clips large triangles

●1.f – (1.f – t) ≠ t

●Must use fixed point math

●But the GS sent the original triangle’s edge equations

●Pixels along shared edges get shaded multiple times

A

C

B1

B2

A

C

B1

A

C

B1

C

B1

B2

Page 32: Conservative Rasterization and Raster Order Viewstwvideo01.ubm-us.net/o1/vault/gdc2017/Presentations/Sathe_Rahul_… · Conservative Rasterization Microsoft. (2015). Direct3D Feature

A

C

B

Clipper

●Clips large triangles

●1.f – (1.f – t) ≠ t

●Must use fixed point math

●But the GS sent the original triangle’s edge equations

●Pixels along shared edges get shaded multiple times

A

C

B1

B2

A

C

B1

A

C

B1

C

B1

B2

C

B1

B2

Page 33: Conservative Rasterization and Raster Order Viewstwvideo01.ubm-us.net/o1/vault/gdc2017/Presentations/Sathe_Rahul_… · Conservative Rasterization Microsoft. (2015). Direct3D Feature

A

C

B

Clipper

●Clips large triangles

●1.f – (1.f – t) ≠ t

●Must use fixed point math

●But the GS sent the original triangle’s edge equations

●Pixels along shared edges get shaded multiple times

A

C

B1

B2

A

C

B1

A

C

B1

C

B1

B2

C

B1

B2

C

B1

B2

Page 34: Conservative Rasterization and Raster Order Viewstwvideo01.ubm-us.net/o1/vault/gdc2017/Presentations/Sathe_Rahul_… · Conservative Rasterization Microsoft. (2015). Direct3D Feature

Raster Order Views

Page 35: Conservative Rasterization and Raster Order Viewstwvideo01.ubm-us.net/o1/vault/gdc2017/Presentations/Sathe_Rahul_… · Conservative Rasterization Microsoft. (2015). Direct3D Feature

Raster Order Views

●SM5.1 with D3D11.3

●Similar to UAVs, but

●Impose API ordering

Page 36: Conservative Rasterization and Raster Order Viewstwvideo01.ubm-us.net/o1/vault/gdc2017/Presentations/Sathe_Rahul_… · Conservative Rasterization Microsoft. (2015). Direct3D Feature

Raster Order Views

●SM5.1 with D3D11.3

●Similar to UAVs, but

●Impose API ordering

A

C

B1

Page 37: Conservative Rasterization and Raster Order Viewstwvideo01.ubm-us.net/o1/vault/gdc2017/Presentations/Sathe_Rahul_… · Conservative Rasterization Microsoft. (2015). Direct3D Feature

Raster Order Views

●SM5.1 with D3D11.3

●Similar to UAVs, but

●Impose API ordering

A

C

B1

C

B1

B2

Page 38: Conservative Rasterization and Raster Order Viewstwvideo01.ubm-us.net/o1/vault/gdc2017/Presentations/Sathe_Rahul_… · Conservative Rasterization Microsoft. (2015). Direct3D Feature

Raster Order Views

●SM5.1 with D3D11.3

●Similar to UAVs, but

●Impose API ordering

A

C

B1

C

B1

B2

C

B1

B2

Page 39: Conservative Rasterization and Raster Order Viewstwvideo01.ubm-us.net/o1/vault/gdc2017/Presentations/Sathe_Rahul_… · Conservative Rasterization Microsoft. (2015). Direct3D Feature

Raster Order Views

●SM5.1 with D3D11.3

●Similar to UAVs, but

●Impose API ordering

A

C

B1

C

B1

B2

C

B1

B2

B1

B2

C

Page 40: Conservative Rasterization and Raster Order Viewstwvideo01.ubm-us.net/o1/vault/gdc2017/Presentations/Sathe_Rahul_… · Conservative Rasterization Microsoft. (2015). Direct3D Feature

Raster Order Views

●SM5.1 with D3D11.3

●Similar to UAVs, but

●Impose API ordering

A

C

B1

C

B1

B2

C

B1

B2

B1

B2

CC

B1

B2

Page 41: Conservative Rasterization and Raster Order Viewstwvideo01.ubm-us.net/o1/vault/gdc2017/Presentations/Sathe_Rahul_… · Conservative Rasterization Microsoft. (2015). Direct3D Feature

Handling clipped triangles

Page 42: Conservative Rasterization and Raster Order Viewstwvideo01.ubm-us.net/o1/vault/gdc2017/Presentations/Sathe_Rahul_… · Conservative Rasterization Microsoft. (2015). Direct3D Feature

Handling clipped triangles

●Initialize ROV with -1●GS assigns primId●PS

if (Input.primId != ROV[xy]) {ROV[xy] = Input.primId;Shade();

} else discard;

●SV_Innercoverage

Page 43: Conservative Rasterization and Raster Order Viewstwvideo01.ubm-us.net/o1/vault/gdc2017/Presentations/Sathe_Rahul_… · Conservative Rasterization Microsoft. (2015). Direct3D Feature

Handling clipped triangles

●Initialize ROV with -1●GS assigns primId●PS

if (Input.primId != ROV[xy]) {ROV[xy] = Input.primId;Shade();

} else discard;

●SV_Innercoverage

A

C

B

Page 44: Conservative Rasterization and Raster Order Viewstwvideo01.ubm-us.net/o1/vault/gdc2017/Presentations/Sathe_Rahul_… · Conservative Rasterization Microsoft. (2015). Direct3D Feature

Handling clipped triangles

●Initialize ROV with -1●GS assigns primId●PS

if (Input.primId != ROV[xy]) {ROV[xy] = Input.primId;Shade();

} else discard;

●SV_Innercoverage

A

C

B

A

C

B1

Page 45: Conservative Rasterization and Raster Order Viewstwvideo01.ubm-us.net/o1/vault/gdc2017/Presentations/Sathe_Rahul_… · Conservative Rasterization Microsoft. (2015). Direct3D Feature

Handling clipped triangles

●Initialize ROV with -1●GS assigns primId●PS

if (Input.primId != ROV[xy]) {ROV[xy] = Input.primId;Shade();

} else discard;

●SV_Innercoverage

A

C

B

A

C

B1

A

C

B1

B2

Page 46: Conservative Rasterization and Raster Order Viewstwvideo01.ubm-us.net/o1/vault/gdc2017/Presentations/Sathe_Rahul_… · Conservative Rasterization Microsoft. (2015). Direct3D Feature

Clipping when w < 0●Produces external projections on w=1

●Cannot use edge equations

http://www.gamasutra.com/view/news/168577/Indepth_Software_rasterizer_and_triangle_clipping.php

W = 1

P0

P1

Q0 Q1

W

X

Internal Projection

W = 1

P0

P1

Q0Q1

W

X

External Projection

Page 47: Conservative Rasterization and Raster Order Viewstwvideo01.ubm-us.net/o1/vault/gdc2017/Presentations/Sathe_Rahul_… · Conservative Rasterization Microsoft. (2015). Direct3D Feature

Clipping when w < 0

Page 48: Conservative Rasterization and Raster Order Viewstwvideo01.ubm-us.net/o1/vault/gdc2017/Presentations/Sathe_Rahul_… · Conservative Rasterization Microsoft. (2015). Direct3D Feature

Clipping when w < 0

●Clip against the front plane in the GS

●Might produce inconsistent vertices

●But they are on the same edge same coefficients

●When both the vertices are behind the eye

●Mark as invalid edge

●Skip in-out tests in the PS

Page 49: Conservative Rasterization and Raster Order Viewstwvideo01.ubm-us.net/o1/vault/gdc2017/Presentations/Sathe_Rahul_… · Conservative Rasterization Microsoft. (2015). Direct3D Feature

Temporal Super-sampling

●Plays well with the Temporal AA

●Filter Weights must be calculated per pixel

●Rest of the algorithm stays same

●Tends to have less flickering

Page 50: Conservative Rasterization and Raster Order Viewstwvideo01.ubm-us.net/o1/vault/gdc2017/Presentations/Sathe_Rahul_… · Conservative Rasterization Microsoft. (2015). Direct3D Feature

Future

●Avoid Geometry Shader and late Z/stencil

●Shade @ pixel rate when SampleCount > 1

●Foveated rendering

Page 51: Conservative Rasterization and Raster Order Viewstwvideo01.ubm-us.net/o1/vault/gdc2017/Presentations/Sathe_Rahul_… · Conservative Rasterization Microsoft. (2015). Direct3D Feature

References●Akeley, K. (1993). Reality Engine Graphics. Siggraph (pp. 109-116). ACM.●Brian Karis. (2014). High Quality Temporal Supersampling (Advances in Real-time Rendering in Games: Course). Siggraph.●Microsoft. (2015). Conservative Rasterization●Microsoft. (2015). Direct3D Feature Levels●Microsoft. Rasterization Rules (Windows)●Raster Order Views. (2015, July)●Pharr, & G. Humphreys, Physically Based Rendering from Theory to Implementation (pp. 279-296). Morgan Kaufmann.●Yeung, S. (2012, April 16). In-depth: Software rasterizer and triangle clipping

Page 52: Conservative Rasterization and Raster Order Viewstwvideo01.ubm-us.net/o1/vault/gdc2017/Presentations/Sathe_Rahul_… · Conservative Rasterization Microsoft. (2015). Direct3D Feature

Acknowledgement

●Gareth Thomas (AMD)

●Andrei Tatarinov (NVDIA)

Page 53: Conservative Rasterization and Raster Order Viewstwvideo01.ubm-us.net/o1/vault/gdc2017/Presentations/Sathe_Rahul_… · Conservative Rasterization Microsoft. (2015). Direct3D Feature

Q/A