minimum triangle separation for correct z-buffer occlusion

34
Minimum Triangle Separation for Correct Z-Buffer Occlusion Minimum Triangle Separation for Correct Z-Buffer Occlusion Kurt AKELEY and Jonathan SU Microsoft Research Asia 3 September 2006

Upload: others

Post on 06-Apr-2022

4 views

Category:

Documents


0 download

TRANSCRIPT

Minimum Triangle Separation for Correct

Z-Buffer Occlusion

Minimum Triangle Separation for Correct

Z-Buffer OcclusionKurt AKELEY and Jonathan SU

Microsoft Research Asia3 September 2006

3 September 2006 Graphics Hardware 2006 2

InfiniteRealityInfiniteReality

Figures taken from InfiniteReality: A Real-Time Graphics System, Proceedings of SIGGRAPH 1997

3 September 2006 Graphics Hardware 2006 3

Multisample AntialiasingMultisample Antialiasing• Visual simulation requires high-quality

and reliable antialiasing• Eight samples per pixel• Colors constant within fragments

Common cases compress well Bandwidth reduction possible

• Z values vary within fragments Required for interpenetration AA Spatial compression is difficult Bandwidth is excessive

Struct sample {int_12 red;int_12 green;int_12 blue;int_24 z;

};

Can a 16-bit z value be used?

3 September 2006 Graphics Hardware 2006 4

3 September 2006 Graphics Hardware 2006 5

Zfar = 50 milesZnear = 25 feet

Normalized to Zfar = 1

Bad

Good

3 September 2006 Graphics Hardware 2006 6

16-bit warpedz-buffer

16-bit integerz-buffer

Zfar = 50 milesZnear = 25 feet

Publications:• Akeley patent, 1998• Lapidous and Guofang,Graphics Hardware 1999(Complementary Z-buffer,reversed floating point)

Bad

Good

3 September 2006 Graphics Hardware 2006 7

Ignores Xwin and Ywin RepresentationIgnores Xwin and Ywin Representation

3 September 2006 Graphics Hardware 2006 8

Discrete Xwin and Ywin affect Zbuf valuesDiscrete Xwin and Ywin affect Zbuf values

3 September 2006 Graphics Hardware 2006 9

Minimum Separation(Z-buffer resolution is like vacuum cleaner horsepower)

Minimum Separation(Z-buffer resolution is like vacuum cleaner horsepower)

Smin

3 September 2006 Graphics Hardware 2006 10

Outline of TalkOutline of Talk

• List assumptions and definitions• Compute Smin

Treating Xwin, Ywin, and Zbuf as discrete representations Treating all other arithmetic as ideal

• Compute Smin again Accumulating error due to all discrete representations from

eye-coordinates to the z-buffer• Ignoring clipping• Assuming high-quality rasterization

• Suggest guidance opportunities• Conclude

We verify all analysis with simulation results

3 September 2006 Graphics Hardware 2006 11

Assumptions and Definitions

3 September 2006 Graphics Hardware 2006 12

AssumptionsAssumptions

• Standard OpenGL/Direct3D-like pipeline Used in standard way (e.g., not ray tracing)

• Triangles only No points No lines

3 September 2006 Graphics Hardware 2006 13

Uncertainty IntervalsUncertainty Intervals

Domain of the exact representable value(round to nearest)

Exact representable value

Uncertainty interval size

Uncertainty interval (round to nearest)

3 September 2006 Graphics Hardware 2006 14

3 September 2006 Graphics Hardware 2006 15

Compute Smin(with discrete Xwin,Ywin, and Zbuf )

3 September 2006 Graphics Hardware 2006 16

Xwin,Ywin Uncertainty SquareXwin,Ywin Uncertainty SquareFor any x,y location in the window-coordinate triangle

Xwin

Ywin

3 September 2006 Graphics Hardware 2006 17

Uncertainty CuboidUncertainty CuboidFor any point on the surface of the 3-D triangle

Zbuf uncertainty interval

Ywin uncertainty interval

Xwin

YwinZbuf

Xwin uncertainty interval

3 September 2006 Graphics Hardware 2006 18

What is Smin ?What is Smin ?

• Considering only Zbuf Depth of the uncertainty cuboid

• Considering only Xwin and Ywin Length of diagonal of the uncertainty square

• Considering Xwin, Ywin, and Zbuf Length of diagonal of the uncertainty cuboid

Worst case is for triangles that are perpendicular to the diagonal

3 September 2006 Graphics Hardware 2006 19

Uncertainty Volume Overlap FailureUncertainty Volume Overlap Failure

Xwin

Zbuf

Triangles on edge

3 September 2006 Graphics Hardware 2006 20

Wide Field of View Increases SminWide Field of View Increases Smin

Windowcoordinates

(a)

Eye coordinates(center screen)

(b)

Eye coordinates(corner screen)

(c)

x

y z

x

z

3 September 2006 Graphics Hardware 2006 21

3 September 2006 Graphics Hardware 2006 22

Slopes are 2 and 1 respectively

Smin is dominated by Xwin and Ywin

representation here(explains comment in

Lapidous01)

FOV factor matters here

Bad

Good

3 September 2006 Graphics Hardware 2006 23

Simulation results in blue

Slopes are 2 and 1 respectively

Smin is dominated by Xwin and Ywin

representation here(explains comment in

Lapidous01)

FOV factor matters here

Bad

Good

3 September 2006 Graphics Hardware 2006 24

Compute Smin again(all values treated as discrete)

3 September 2006 Graphics Hardware 2006 25

Cumulative Uncertainty ArithmeticCumulative Uncertainty Arithmetic

Projection Matrix

Projection (division by Zeye)

Viewport (affine adjustment)

Rasterization

Frame Buffer Operations

Frame Buffer

Xeye, Yeye, Zeye

No clipping here !Mapping

(Depth / Window)

Xwin, Ywin, ZwinAssume exact barycentric area calculations

Representation Change

Zbuf

3 September 2006 Graphics Hardware 2006 26

Interval AnalysisInterval Analysis

• We wrote our own interval analysis tool• API allows specification of

Equation Representations of operands and intermediates Values of operands

• Evaluation is done using “ideal” arithmetic Current ideal is IEEE 64-bit

• Handles polynomials correctly, e.g.

• Reverse map to eye coordinates

C Zeye DZwinZeye

⋅ +=

3 September 2006 Graphics Hardware 2006 27

Bad

Good

Vertical bars show the difference between discrete Xwin,Ywin,Zbuf-only calculations and fully-discrete calculations.

3 September 2006 Graphics Hardware 2006 28

Bad

Good

Vertical bars show the difference between discrete Xwin,Ywin,Zbuf-only calculations and fully-discrete calculations.

3 September 2006 Graphics Hardware 2006 29

Bad

Good

Vertical bars show the difference between discrete Xwin,Ywin,Zbuf-only calculations and fully-discrete calculations.

3 September 2006 Graphics Hardware 2006 30

Guidance(for hardware designers

and application developers)

3 September 2006 Graphics Hardware 2006 31

Hardware designer guidanceDirect3D 10 example

Bad

Good

3 September 2006 Graphics Hardware 2006 32

Application Developer GuidanceApplication Developer Guidance

• Can specify a tight Smin bound for a specific GPU !• Linear increase of Smin with Zeye

Assume (near linear) complementary z-buffer Matches linear Xwin, Ywin behavior Is consistent with geometric LOD

Field of View

min sep eyeS K Z=

30 60 90

512

1024

2048Vie

wpo

rt S

ize

3 September 2006 Graphics Hardware 2006 33

ConclusionConclusion

• Uncertainty analysis gives nice understanding of Smin Window-coordinate representation matters Wide FOV can increase Smin by 2x to 3x

• With this understanding, we can give guidance to Hardware designers Application developers (with community agreement)

• In the future, we could Analyze contribution of clipping arithmetic Better understand worst-case interval evaluation Extend to new areas (e.g., shadow generation)

3 September 2006 Graphics Hardware 2006 34

Thanks toThanks to

• Jonathan Su, my intern at MSR Asia• David Blythe and Amar Patel of the DX10 team• Marcel Gavriliu and Jim Kajiya, for help with interval

analysis• Turner Whitted and Harry Shum, for allowing me to

do this research• The Eurographics Hardware Workshop, now

Graphics Hardware, for inviting me to speak in 1991