Download - Analytic Visibility on the GPU
![Page 1: Analytic Visibility on the GPU](https://reader034.vdocument.in/reader034/viewer/2022051219/5681665c550346895dd9de84/html5/thumbnails/1.jpg)
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](https://reader034.vdocument.in/reader034/viewer/2022051219/5681665c550346895dd9de84/html5/thumbnails/2.jpg)
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](https://reader034.vdocument.in/reader034/viewer/2022051219/5681665c550346895dd9de84/html5/thumbnails/3.jpg)
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](https://reader034.vdocument.in/reader034/viewer/2022051219/5681665c550346895dd9de84/html5/thumbnails/4.jpg)
Motivation
Analytic visibility
Thomas Auzinger et al. 4
1 sample per pixelAnalytic rasterization
![Page 5: Analytic Visibility on the GPU](https://reader034.vdocument.in/reader034/viewer/2022051219/5681665c550346895dd9de84/html5/thumbnails/5.jpg)
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](https://reader034.vdocument.in/reader034/viewer/2022051219/5681665c550346895dd9de84/html5/thumbnails/6.jpg)
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](https://reader034.vdocument.in/reader034/viewer/2022051219/5681665c550346895dd9de84/html5/thumbnails/7.jpg)
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](https://reader034.vdocument.in/reader034/viewer/2022051219/5681665c550346895dd9de84/html5/thumbnails/8.jpg)
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](https://reader034.vdocument.in/reader034/viewer/2022051219/5681665c550346895dd9de84/html5/thumbnails/9.jpg)
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](https://reader034.vdocument.in/reader034/viewer/2022051219/5681665c550346895dd9de84/html5/thumbnails/10.jpg)
Analytic Filtering
Sampling
Thomas Auzinger et al. 10
![Page 11: Analytic Visibility on the GPU](https://reader034.vdocument.in/reader034/viewer/2022051219/5681665c550346895dd9de84/html5/thumbnails/11.jpg)
Analytic Filtering
Sampling
Analytic
Thomas Auzinger et al. 11
![Page 12: Analytic Visibility on the GPU](https://reader034.vdocument.in/reader034/viewer/2022051219/5681665c550346895dd9de84/html5/thumbnails/12.jpg)
Analytic Filtering
Sampling
Analytic
Thomas Auzinger et al. 12
![Page 13: Analytic Visibility on the GPU](https://reader034.vdocument.in/reader034/viewer/2022051219/5681665c550346895dd9de84/html5/thumbnails/13.jpg)
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](https://reader034.vdocument.in/reader034/viewer/2022051219/5681665c550346895dd9de84/html5/thumbnails/14.jpg)
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](https://reader034.vdocument.in/reader034/viewer/2022051219/5681665c550346895dd9de84/html5/thumbnails/15.jpg)
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](https://reader034.vdocument.in/reader034/viewer/2022051219/5681665c550346895dd9de84/html5/thumbnails/16.jpg)
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](https://reader034.vdocument.in/reader034/viewer/2022051219/5681665c550346895dd9de84/html5/thumbnails/17.jpg)
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](https://reader034.vdocument.in/reader034/viewer/2022051219/5681665c550346895dd9de84/html5/thumbnails/18.jpg)
In parallel for all edgesUnordered output global sort performed
Intersection
Thomas Auzinger et al. 18
![Page 19: Analytic Visibility on the GPU](https://reader034.vdocument.in/reader034/viewer/2022051219/5681665c550346895dd9de84/html5/thumbnails/19.jpg)
Take endpoints and occluding intersections
Hidden Line Elimination
Thomas Auzinger et al. 19
✘✘
![Page 20: Analytic Visibility on the GPU](https://reader034.vdocument.in/reader034/viewer/2022051219/5681665c550346895dd9de84/html5/thumbnails/20.jpg)
Take endpoints and occluding intersections
Hidden Line Elimination
Thomas Auzinger et al. 20
![Page 21: Analytic Visibility on the GPU](https://reader034.vdocument.in/reader034/viewer/2022051219/5681665c550346895dd9de84/html5/thumbnails/21.jpg)
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](https://reader034.vdocument.in/reader034/viewer/2022051219/5681665c550346895dd9de84/html5/thumbnails/22.jpg)
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](https://reader034.vdocument.in/reader034/viewer/2022051219/5681665c550346895dd9de84/html5/thumbnails/23.jpg)
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](https://reader034.vdocument.in/reader034/viewer/2022051219/5681665c550346895dd9de84/html5/thumbnails/24.jpg)
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](https://reader034.vdocument.in/reader034/viewer/2022051219/5681665c550346895dd9de84/html5/thumbnails/25.jpg)
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](https://reader034.vdocument.in/reader034/viewer/2022051219/5681665c550346895dd9de84/html5/thumbnails/26.jpg)
Take endpoints and occluded intersectionsReport upper-most occluded line segments
Boundary Completion
Thomas Auzinger et al. 26
![Page 27: Analytic Visibility on the GPU](https://reader034.vdocument.in/reader034/viewer/2022051219/5681665c550346895dd9de84/html5/thumbnails/27.jpg)
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](https://reader034.vdocument.in/reader034/viewer/2022051219/5681665c550346895dd9de84/html5/thumbnails/28.jpg)
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](https://reader034.vdocument.in/reader034/viewer/2022051219/5681665c550346895dd9de84/html5/thumbnails/29.jpg)
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](https://reader034.vdocument.in/reader034/viewer/2022051219/5681665c550346895dd9de84/html5/thumbnails/30.jpg)
Result - Spikes
Thomas Auzinger et al. 30
See video
![Page 31: Analytic Visibility on the GPU](https://reader034.vdocument.in/reader034/viewer/2022051219/5681665c550346895dd9de84/html5/thumbnails/31.jpg)
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](https://reader034.vdocument.in/reader034/viewer/2022051219/5681665c550346895dd9de84/html5/thumbnails/32.jpg)
Result - Zoneplates
Thomas Auzinger et al. 32
See video
![Page 33: Analytic Visibility on the GPU](https://reader034.vdocument.in/reader034/viewer/2022051219/5681665c550346895dd9de84/html5/thumbnails/33.jpg)
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](https://reader034.vdocument.in/reader034/viewer/2022051219/5681665c550346895dd9de84/html5/thumbnails/34.jpg)
Fin
Thank you for your attention
Thomas Auzinger et al. 34