analytic visibility on the gpu
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 PresentationTRANSCRIPT
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
Motivation
Rasterization
Thomas Auzinger et al. 2
Vector inputRaster grid Rastered output
*
Center sampleArea sample Higher quality output
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
Motivation
Analytic visibility
Thomas Auzinger et al. 4
1 sample per pixelAnalytic rasterization
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
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
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
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
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)
Analytic Filtering
Sampling
Thomas Auzinger et al. 10
Analytic Filtering
Sampling
Analytic
Thomas Auzinger et al. 11
Analytic Filtering
Sampling
Analytic
Thomas Auzinger et al. 12
Analytic Filtering
Visible edges not enough boundary completionTriangle integration order irrelevantEdge integration order irrelevant
Thomas Auzinger et al. 13
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
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
Per edge computations (one SIMD per edge)Add endpointsAdd intersections with other triangles(one triangle per thread)
Intersection
Thomas Auzinger et al. 16
Add edge indexAdd parameter along edge
Intersection
Thomas Auzinger et al. 17
0 00 0
-0.3 0.0 0.4 1.0
In parallel for all edgesUnordered output global sort performed
Intersection
Thomas Auzinger et al. 18
Take endpoints and occluding intersections
Hidden Line Elimination
Thomas Auzinger et al. 19
✘✘
Take endpoints and occluding intersections
Hidden Line Elimination
Thomas Auzinger et al. 20
Take endpoints and occluding intersectionsAssign occlusion flag
Hidden Line Elimination
Thomas Auzinger et al. 21
flag 1 -1 -1 1
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
Report visible edge segments
Hidden Line Elimination
Thomas Auzinger et al. 23
flag 1 -1 -1 1scan 1 0 -1 0visible ✘ ✘ ✔ ✔
Report visible edge segments
Hidden Line Elimination
Thomas Auzinger et al. 24
flag 1 -1 -1 1scan 1 0 -1 0visible ✘ ✘ ✔ ✔
Perform over all edges in parallelAll hidden edges eliminatedBoundaries not complete
Hidden Line Elimination
Thomas Auzinger et al. 25
Take endpoints and occluded intersectionsReport upper-most occluded line segments
Boundary Completion
Thomas Auzinger et al. 26
Take endpoints and occluded intersectionsReport upper-most occluded line segmentsBoundaries complete
Boundary Completion
Thomas Auzinger et al. 27
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
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
Result - Spikes
Thomas Auzinger et al. 30
See video
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
Result - Zoneplates
Thomas Auzinger et al. 32
See video
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
Fin
Thank you for your attention
Thomas Auzinger et al. 34