analytic visibility on the gpu

34
Analytic Visibility on the GPU Thomas Auzinger 1 , Michael Wimmer 1 and Stefan Jeschke 2 1 Institute of Computer Graphics and Algorithms Vienna University of Technology 2 Computer Graphics Group IST Austria

Upload: venice

Post on 24-Feb-2016

54 views

Category:

Documents


0 download

DESCRIPTION

Analytic Visibility on the GPU. Thomas Auzinger 1 , Michael Wimmer 1 and Stefan Jeschke 2. 1 Institute of Computer Graphics and Algorithms Vienna University of Technology. 2 Computer Graphics Group IST Austria. Motivation. Rasterization. *. Area sample. Raster grid. Center sample. - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: Analytic Visibility on the GPU

Analytic Visibility on the GPUThomas Auzinger1, Michael Wimmer1

and Stefan Jeschke2

1 Institute of Computer Graphicsand Algorithms

Vienna University of Technology

2 Computer Graphics Group

IST Austria

Page 2: Analytic Visibility on the GPU

Motivation

Rasterization

Thomas Auzinger et al. 2

Vector inputRaster grid Rastered output

*

Center sampleArea sample Higher quality output

Page 3: Analytic Visibility on the GPU

Motivation

Sampling artifacts

Thomas Auzinger et al. 3

Zone plate inputAliasing artifacts1 sample per pixel4 samples per pixel16 samples per pixel256 samples per pixelAnalytic samplingGround truth

Page 4: Analytic Visibility on the GPU

Motivation

Analytic visibility

Thomas Auzinger et al. 4

1 sample per pixelAnalytic rasterization

Page 5: Analytic Visibility on the GPU

Traditional Analytic

Overview

Thomas Auzinger et al. 5

Vector

Raster

Vertex Geometry

Tessellation

Visibility

Discretization(Rasterizer)

ShadingAnti-aliasing

Output

Input

Visibility

ShadingAnti-aliasing

Discretization(Integrator)

Output

Vertex Geometry

Tessellation

Input

ShadingAnti-aliasing

Page 6: Analytic Visibility on the GPU

Related Work – Analytic Filtering

Manson & Schaefer (EG 2010)Wavelet Rasterization

Auzinger et al. (EG 2012)Analytic Anti-Aliasing

Manson & Schaefer (EG 2013)Analytic Rasterization of Curves with

Polynomial Filters

Thomas Auzinger et al. 6

Page 7: Analytic Visibility on the GPU

Traditional Analytic

Overview

Thomas Auzinger et al. 7

Vector

Raster

Vertex Geometry

Tessellation

Visibility

Discretization(Rasterizer)

ShadingAnti-aliasing

Output

Input

Visibility

ShadingAnti-aliasing

Discretization(Integrator)

Output

Vertex Geometry

Tessellation

Input

Visibility

Page 8: Analytic Visibility on the GPU

Related Work - Visibility

Computer graphics loreAppel (1967) Quantitative invisibilityCatmull (1984) Analytic visible surface algorithm

Computational geometryDévai (2011) Optimal hidden surface algorithm

Thomas Auzinger et al. 8

Page 9: Analytic Visibility on the GPU

Traditional Analytic

Overview

Thomas Auzinger et al. 9

Vector

Raster

Vertex Geometry

Tessellation

Visibility

Discretization(Rasterizer)

ShadingAnti-aliasing

Output

Input

Visibility

ShadingAnti-aliasing

Discretization(Integrator)

Output

Vertex Geometry

Tessellation

Input

Discretization(Integrator)

Page 10: Analytic Visibility on the GPU

Analytic Filtering

Sampling

Thomas Auzinger et al. 10

Page 11: Analytic Visibility on the GPU

Analytic Filtering

Sampling

Analytic

Thomas Auzinger et al. 11

Page 12: Analytic Visibility on the GPU

Analytic Filtering

Sampling

Analytic

Thomas Auzinger et al. 12

Page 13: Analytic Visibility on the GPU

Analytic Filtering

Visible edges not enough boundary completionTriangle integration order irrelevantEdge integration order irrelevant

Thomas Auzinger et al. 13

Page 14: Analytic Visibility on the GPU

InputList of trianglesConsistently orientedNon-intersecting

OutputUnordered set of all boundariesof the visible regions of all triangles

Visibility Stage

Thomas Auzinger et al. 14

Visibility

ShadingAnti-aliasing

Discretization(Integrator)

Output

Vertex Geometry

Tessellation

Input

Visibility

Page 15: Analytic Visibility on the GPU

IntersectionEdge intersections betweentrianglesHidden line eliminationVisible edge segmentsBoundary completionMissing boundary segments

Pipeline - Visibility

Thomas Auzinger et al. 15

Visibility

ShadingAnti-Aliasing

Discretization(Integrator)

Output

Input

Intersection

Hidden lineelimination

Boundary completion

Vertex

Visibility

Page 16: Analytic Visibility on the GPU

Per edge computations (one SIMD per edge)Add endpointsAdd intersections with other triangles(one triangle per thread)

Intersection

Thomas Auzinger et al. 16

Page 17: Analytic Visibility on the GPU

Add edge indexAdd parameter along edge

Intersection

Thomas Auzinger et al. 17

0 00 0

-0.3 0.0 0.4 1.0

Page 18: Analytic Visibility on the GPU

In parallel for all edgesUnordered output global sort performed

Intersection

Thomas Auzinger et al. 18

Page 19: Analytic Visibility on the GPU

Take endpoints and occluding intersections

Hidden Line Elimination

Thomas Auzinger et al. 19

✘✘

Page 20: Analytic Visibility on the GPU

Take endpoints and occluding intersections

Hidden Line Elimination

Thomas Auzinger et al. 20

Page 21: Analytic Visibility on the GPU

Take endpoints and occluding intersectionsAssign occlusion flag

Hidden Line Elimination

Thomas Auzinger et al. 21

flag 1 -1 -1 1

Page 22: Analytic Visibility on the GPU

Take endpoints and occluding intersectionsAssign occlusion flagPerform scan along edge

Hidden Line Elimination

Thomas Auzinger et al. 22

flag 1 -1 -1 1scan 1 0 -1 0

Page 23: Analytic Visibility on the GPU

Report visible edge segments

Hidden Line Elimination

Thomas Auzinger et al. 23

flag 1 -1 -1 1scan 1 0 -1 0visible ✘ ✘ ✔ ✔

Page 24: Analytic Visibility on the GPU

Report visible edge segments

Hidden Line Elimination

Thomas Auzinger et al. 24

flag 1 -1 -1 1scan 1 0 -1 0visible ✘ ✘ ✔ ✔

Page 25: Analytic Visibility on the GPU

Perform over all edges in parallelAll hidden edges eliminatedBoundaries not complete

Hidden Line Elimination

Thomas Auzinger et al. 25

Page 26: Analytic Visibility on the GPU

Take endpoints and occluded intersectionsReport upper-most occluded line segments

Boundary Completion

Thomas Auzinger et al. 26

Page 27: Analytic Visibility on the GPU

Take endpoints and occluded intersectionsReport upper-most occluded line segmentsBoundaries complete

Boundary Completion

Thomas Auzinger et al. 27

Page 28: Analytic Visibility on the GPU

InputList of trianglesConsistently orientedNon-intersecting

OutputUnordered set of all boundariesof the visible regions of all triangles

Visibility Stage

Thomas Auzinger et al. 28

Visibility

ShadingAnti-aliasing

Discretization(Integrator)

Output

Vertex Geometry

Tessellation

Input

Visibility

Page 29: Analytic Visibility on the GPU

In parallel for all sample locations and for all reported line segments:Analytic convolution of triangle data with filter

Integration

Thomas Auzinger et al. 29

Page 30: Analytic Visibility on the GPU

Result - Spikes

Thomas Auzinger et al. 30

See video

Page 31: Analytic Visibility on the GPU

Timings

Bunny model at different LoDsImplementation in CUDAOutput resolution: 1024²GPU: Nvidia GTX 680Timings in milliseconds

Thomas Auzinger et al. 31

# triangles intersection hidden line elimination

boundary completion

visibility integration

7k 9.9 0.8 1.6 25 9.126k 26 1.6 4.2 50 2170k 77 3.4 11 121 51

Page 32: Analytic Visibility on the GPU

Result - Zoneplates

Thomas Auzinger et al. 32

See video

Page 33: Analytic Visibility on the GPU

Future work

Analytic visibility:Adaptive binning / queuingExact geometric computationsGeneral input (quads, curved surfaces)

General applications:Ground truth solutionAnalytic shadow mapsRender to vector graphicsAnalytic depth peeling

Thomas Auzinger et al. 33

Polygonal approximation Exact circlesManson & Schaefer, EG 2013

Page 34: Analytic Visibility on the GPU

Fin

Thank you for your attention

Thomas Auzinger et al. 34