1 / 34

Analytic Visibility on the GPU

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.

venice
Télécharger la présentation

Analytic Visibility on the GPU

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Analytic Visibility on the GPU Thomas Auzinger1, Michael Wimmer1 and Stefan Jeschke2 1 Institute of Computer Graphicsand Algorithms Vienna University of Technology 2 Computer Graphics Group IST Austria

  2. Motivation Rasterization * Area sample Raster grid Center sample Vector input Rastered output Higher quality output Thomas Auzinger et al.

  3. Motivation Sampling artifacts Ground truth Aliasing artifacts Zone plate input 1 sample per pixel 4 samples per pixel 16 samples per pixel 256 samples per pixel Analytic sampling Thomas Auzinger et al.

  4. Motivation Analytic visibility Analytic rasterization 1 sample per pixel Thomas Auzinger et al.

  5. Overview Traditional Analytic Input Input Vector Vertex Geometry Tessellation Vertex Geometry Tessellation Visibility Discretization (Rasterizer) Shading Anti-aliasing Shading Anti-aliasing Visibility Shading Anti-aliasing Discretization (Integrator) Output Output Raster Thomas Auzinger et al.

  6. 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.

  7. Overview Traditional Analytic Input Input Vector Vertex Geometry Tessellation Vertex Geometry Tessellation Visibility Discretization (Rasterizer) Visibility Shading Anti-aliasing Visibility Shading Anti-aliasing Discretization (Integrator) Output Output Raster Thomas Auzinger et al.

  8. Related Work - Visibility • Computer graphics lore • Appel (1967) Quantitative invisibility • Catmull (1984) Analytic visible surface algorithm • Computational geometry • Dévai (2011) Optimal hidden surface algorithm Thomas Auzinger et al.

  9. Overview Traditional Analytic Input Input Vector Vertex Geometry Tessellation Vertex Geometry Tessellation Visibility Discretization (Rasterizer) Shading Anti-aliasing Visibility Shading Anti-aliasing Discretization (Integrator) Discretization (Integrator) Output Output Raster Thomas Auzinger et al.

  10. Analytic Filtering • Sampling Thomas Auzinger et al.

  11. Analytic Filtering • Sampling • Analytic Thomas Auzinger et al.

  12. Analytic Filtering • Sampling • Analytic Thomas Auzinger et al.

  13. Analytic Filtering • Visible edges not enough  boundary completion • Triangle integration order irrelevant • Edge integration order irrelevant Thomas Auzinger et al.

  14. Visibility Stage Input • List of triangles • Consistently oriented • Non-intersecting Output • Unordered set of all boundariesof the visible regions of all triangles Input Vertex Geometry Tessellation Visibility Visibility Shading Anti-aliasing Discretization (Integrator) Output Thomas Auzinger et al.

  15. Pipeline - Visibility • IntersectionEdge intersections betweentriangles • Hidden line eliminationVisible edge segments • Boundary completionMissing boundary segments Input Vertex Visibility Visibility Intersection Shading Anti-Aliasing Hidden line elimination Discretization (Integrator) Boundary completion Output Thomas Auzinger et al.

  16. Intersection • Per edge computations (one SIMD per edge) • Add endpoints • Add intersections with other triangles(one triangle per thread) Thomas Auzinger et al.

  17. Intersection • Add edge index • Add parameter along edge 0 0 0 0 -0.3 0.0 0.4 1.0 Thomas Auzinger et al.

  18. Intersection • In parallel for all edges • Unordered output  global sort performed Thomas Auzinger et al.

  19. Hidden Line Elimination • Take endpoints and occluding intersections ✘ ✘ Thomas Auzinger et al.

  20. Hidden Line Elimination • Take endpoints and occluding intersections Thomas Auzinger et al.

  21. Hidden Line Elimination • Take endpoints and occluding intersections • Assign occlusion flag Thomas Auzinger et al.

  22. Hidden Line Elimination • Take endpoints and occluding intersections • Assign occlusion flag • Perform scan along edge Thomas Auzinger et al.

  23. Hidden Line Elimination • Report visible edge segments Thomas Auzinger et al.

  24. Hidden Line Elimination • Report visible edge segments Thomas Auzinger et al.

  25. Hidden Line Elimination • Perform over all edges in parallel • All hidden edges eliminated • Boundaries not complete Thomas Auzinger et al.

  26. Boundary Completion • Take endpoints and occluded intersections • Report upper-most occluded line segments Thomas Auzinger et al.

  27. Boundary Completion • Take endpoints and occluded intersections • Report upper-most occluded line segments • Boundaries complete Thomas Auzinger et al.

  28. Visibility Stage Input • List of triangles • Consistently oriented • Non-intersecting Output • Unordered set of all boundariesof the visible regions of all triangles Input Vertex Geometry Tessellation Visibility Visibility Shading Anti-aliasing Discretization (Integrator) Output Thomas Auzinger et al.

  29. Integration • In parallel for all sample locations and for all reported line segments: • Analytic convolution of triangle data with filter Thomas Auzinger et al.

  30. Result - Spikes See video Thomas Auzinger et al.

  31. Timings Bunny model at different LoDs • Implementation in CUDA • Output resolution: 1024² • GPU: Nvidia GTX 680 • Timings in milliseconds Thomas Auzinger et al.

  32. Result - Zoneplates See video Thomas Auzinger et al.

  33. Future work Analytic visibility: • Adaptive binning / queuing • Exact geometric computations • General input (quads, curved surfaces) General applications: • Ground truth solution • Analytic shadow maps • Render to vector graphics • Analytic depth peeling Polygonal approximation Exact circles Manson & Schaefer, EG 2013 Thomas Auzinger et al.

  34. Fin Thank you for your attention Thomas Auzinger et al.

More Related