![Page 1: Parallel View-Dependent Tessellation of Catmull-Clark Subdivision Surfaces](https://reader035.vdocuments.mx/reader035/viewer/2022062315/568163be550346895dd4d952/html5/thumbnails/1.jpg)
Parallel View-Dependent Tessellation of Catmull-Clark
Subdivision SurfacesAnjul Patney1 Mohamed S. Ebeida2 John D.
Owens1
University of California, Davis 1
Carnegie Mellon University 2
![Page 2: Parallel View-Dependent Tessellation of Catmull-Clark Subdivision Surfaces](https://reader035.vdocuments.mx/reader035/viewer/2022062315/568163be550346895dd4d952/html5/thumbnails/2.jpg)
Smooth Surfaces in Interactive GraphicsMotivation
Resolution independent higher-order surfaces in real-time graphics
Challenges• Fast GPU-friendly tessellation• Fine-grained view-adaptivity• Cracks and Pinholes
![Page 3: Parallel View-Dependent Tessellation of Catmull-Clark Subdivision Surfaces](https://reader035.vdocuments.mx/reader035/viewer/2022062315/568163be550346895dd4d952/html5/thumbnails/3.jpg)
Representing Smooth SurfacesPolygonal Meshes
• Lack View-Adaptivity• Inefficient storage/transfer
Parametric Surfaces• Collections of smooth patches• Hard to animate
Subdivision Surfaces• Widely popular, ease of modeling• Flexible Animation
[Boubekeur and Schlick 2007]
![Page 4: Parallel View-Dependent Tessellation of Catmull-Clark Subdivision Surfaces](https://reader035.vdocuments.mx/reader035/viewer/2022062315/568163be550346895dd4d952/html5/thumbnails/4.jpg)
Subdivision Surfaces in real-time graphics• CPU-based tessellation [Bolz and Schröder 2002]
• Frequent CPU-GPU data transfer• Fixed maximum levels of subdivision
• Subdivision using graphics shaders [Shiu et al. 2005], [Bunnell 2005]• Requires patching the input mesh• Limited view-adaptivity
• Ray tracing of subdivision surfaces [Benthin et al. 2007]• Requires patching the input mesh• Coarse view-adaptivity
Existing Work
[Bolz and Schröder 2002]
[Bunnell 2005]
[Benthin et al. 2007]
![Page 5: Parallel View-Dependent Tessellation of Catmull-Clark Subdivision Surfaces](https://reader035.vdocuments.mx/reader035/viewer/2022062315/568163be550346895dd4d952/html5/thumbnails/5.jpg)
Existing WorkProgrammable GPU Tessellation
• Bézier Patches [Patney and Owens 2008], [Eisenacher et al. 2009]• Parametric surfaces• Cracks and T-junctions
• CUDA Tessellation Framework [Schwarz and Stamminger 2009]• Parametric surfaces only
[Eisenacher et al. 2009]
[Schwarz and Stamminger 2009]
![Page 6: Parallel View-Dependent Tessellation of Catmull-Clark Subdivision Surfaces](https://reader035.vdocuments.mx/reader035/viewer/2022062315/568163be550346895dd4d952/html5/thumbnails/6.jpg)
Existing WorkHardware Tessellation
• DirectX 11 Dedicated Tessellation Units• Primarily parametric surfaces
• Approximate Catmull-Clark Surfaces [Loop and Schaefer 2008]• Lost C1 continuity, require separate normals• Inexact surfaces
[Loop and Schaefer 2008]
![Page 7: Parallel View-Dependent Tessellation of Catmull-Clark Subdivision Surfaces](https://reader035.vdocuments.mx/reader035/viewer/2022062315/568163be550346895dd4d952/html5/thumbnails/7.jpg)
This Paper: Contributions
A parallel approach to Catmull-Clark subdivision
• Highly parallel, GPU-friendly• Simple, robust data management• Dynamic view-dependence• No cracks or T-junctions
![Page 8: Parallel View-Dependent Tessellation of Catmull-Clark Subdivision Surfaces](https://reader035.vdocuments.mx/reader035/viewer/2022062315/568163be550346895dd4d952/html5/thumbnails/8.jpg)
Review: Catmull-Clark Subdivision• Given: An arbitrary base mesh M0
• Recursively refine to produce M1
• Fast convergence to a smooth surface
M0 M1 M2 M3
, M2, M3 …
![Page 9: Parallel View-Dependent Tessellation of Catmull-Clark Subdivision Surfaces](https://reader035.vdocuments.mx/reader035/viewer/2022062315/568163be550346895dd4d952/html5/thumbnails/9.jpg)
Face PointsEdge Points
Vertex Points
Subdivided Mesh
Refinement Procedure
Base Mesh
![Page 10: Parallel View-Dependent Tessellation of Catmull-Clark Subdivision Surfaces](https://reader035.vdocuments.mx/reader035/viewer/2022062315/568163be550346895dd4d952/html5/thumbnails/10.jpg)
Basic Approach
Subdivision Test
Adaptive Mesh Refinement
OpenGL
GPU
GenFP
Parallel
GenEP
Parallel
GenVP
Parallel
Intermediate mesh
Input mesh (coarse)
![Page 11: Parallel View-Dependent Tessellation of Catmull-Clark Subdivision Surfaces](https://reader035.vdocuments.mx/reader035/viewer/2022062315/568163be550346895dd4d952/html5/thumbnails/11.jpg)
Challenges• Data structure choice
• Maintaining mesh structure• Efficiency on graphics hardware
• View-Dependence• Spatial (along the surface)• Temporal (dynamic viewpoint)
• Cracks and T-junctions• Avoid visual artifacts• Should not degrade performance
![Page 12: Parallel View-Dependent Tessellation of Catmull-Clark Subdivision Surfaces](https://reader035.vdocuments.mx/reader035/viewer/2022062315/568163be550346895dd4d952/html5/thumbnails/12.jpg)
Data Structure• Mesh Representation Goals
• Easily exposed parallelism• Minimal communication• Low storage overhead• Straightforward rendering
• Problems with common Mesh Representations• Serialized pointer-accesses• Variable-size elements• Often cannot be rendered directly
![Page 13: Parallel View-Dependent Tessellation of Catmull-Clark Subdivision Surfaces](https://reader035.vdocuments.mx/reader035/viewer/2022062315/568163be550346895dd4d952/html5/thumbnails/13.jpg)
• Maintain three arrays• VertexBuffer, with vertex = {x, y, z, valence}• FaceBuffer, with face = {v0, v1, v2, v3}• EdgeBuffer, with edge = {v0, v1, f0, f1}
• Justification• Parallelism expressed at all three levels• Fixed-size elements• Straightforward rendering• Low storage overhead• Complexity of updates?
Face
Vertex
Vertex
Vertex
Vertex
Edge
Edge
Edge
Edge
Our Choice
![Page 14: Parallel View-Dependent Tessellation of Catmull-Clark Subdivision Surfaces](https://reader035.vdocuments.mx/reader035/viewer/2022062315/568163be550346895dd4d952/html5/thumbnails/14.jpg)
Data Structure UpdatesFace
v0, v1, v2, v3
Face-point
Edgev0, v1, f0,
f1
Edge-point
Vertexx, y, z,
val.Vertex-point
• Scattered atomic add (face-point)• Scattered atomic add (edge midpoint)
Facev0, v1, v2,
v3
Face-point
Edgev0, v1, f0,
f1
Edge-point
Vertexx, y, z,
val.Vertex-point
Facev0, v1, v2,
v3
Face-point
Edgev0, v1, f0,
f1
Edge-point
Vertexx, y, z,
val.Vertex-point
+ +
![Page 15: Parallel View-Dependent Tessellation of Catmull-Clark Subdivision Surfaces](https://reader035.vdocuments.mx/reader035/viewer/2022062315/568163be550346895dd4d952/html5/thumbnails/15.jpg)
View Dependence
![Page 16: Parallel View-Dependent Tessellation of Catmull-Clark Subdivision Surfaces](https://reader035.vdocuments.mx/reader035/viewer/2022062315/568163be550346895dd4d952/html5/thumbnails/16.jpg)
Faces
Edges
Vertices
Subdivision Test
Parallel Prefix-Sum[Sengupta et al. 2007]
![Page 17: Parallel View-Dependent Tessellation of Catmull-Clark Subdivision Surfaces](https://reader035.vdocuments.mx/reader035/viewer/2022062315/568163be550346895dd4d952/html5/thumbnails/17.jpg)
Varying Subdivision Criteria
Screen-space extent
![Page 18: Parallel View-Dependent Tessellation of Catmull-Clark Subdivision Surfaces](https://reader035.vdocuments.mx/reader035/viewer/2022062315/568163be550346895dd4d952/html5/thumbnails/18.jpg)
Varying Subdivision Criteria
Surface Orientation
![Page 19: Parallel View-Dependent Tessellation of Catmull-Clark Subdivision Surfaces](https://reader035.vdocuments.mx/reader035/viewer/2022062315/568163be550346895dd4d952/html5/thumbnails/19.jpg)
Varying Subdivision Criteria
Curvature
![Page 20: Parallel View-Dependent Tessellation of Catmull-Clark Subdivision Surfaces](https://reader035.vdocuments.mx/reader035/viewer/2022062315/568163be550346895dd4d952/html5/thumbnails/20.jpg)
Varying Subdivision Criteria
Silhouette-enhancement
![Page 21: Parallel View-Dependent Tessellation of Catmull-Clark Subdivision Surfaces](https://reader035.vdocuments.mx/reader035/viewer/2022062315/568163be550346895dd4d952/html5/thumbnails/21.jpg)
Cracks
Uniform Refinement
Adaptive Refinement
Crack
![Page 22: Parallel View-Dependent Tessellation of Catmull-Clark Subdivision Surfaces](https://reader035.vdocuments.mx/reader035/viewer/2022062315/568163be550346895dd4d952/html5/thumbnails/22.jpg)
T-Junction
![Page 23: Parallel View-Dependent Tessellation of Catmull-Clark Subdivision Surfaces](https://reader035.vdocuments.mx/reader035/viewer/2022062315/568163be550346895dd4d952/html5/thumbnails/23.jpg)
T-Junctions
Multisampling disabled
![Page 24: Parallel View-Dependent Tessellation of Catmull-Clark Subdivision Surfaces](https://reader035.vdocuments.mx/reader035/viewer/2022062315/568163be550346895dd4d952/html5/thumbnails/24.jpg)
Crack-fix as a post-process
![Page 25: Parallel View-Dependent Tessellation of Catmull-Clark Subdivision Surfaces](https://reader035.vdocuments.mx/reader035/viewer/2022062315/568163be550346895dd4d952/html5/thumbnails/25.jpg)
Quad-only Refinement
Incrementally Resolving Cracks
2-Refinement Templates [Schneiders 96]
![Page 26: Parallel View-Dependent Tessellation of Catmull-Clark Subdivision Surfaces](https://reader035.vdocuments.mx/reader035/viewer/2022062315/568163be550346895dd4d952/html5/thumbnails/26.jpg)
Incrementally Resolving Cracks
“Active” Vertices• Placed at alternating
transition vertices• Help choosing a
subdivision template
![Page 27: Parallel View-Dependent Tessellation of Catmull-Clark Subdivision Surfaces](https://reader035.vdocuments.mx/reader035/viewer/2022062315/568163be550346895dd4d952/html5/thumbnails/27.jpg)
Incrementally Resolving Cracks
Tagging Active Vertices
• Initialized potential tags with the base mesh
• Convert to active at transition
• Apply templates• Update potential tags
![Page 28: Parallel View-Dependent Tessellation of Catmull-Clark Subdivision Surfaces](https://reader035.vdocuments.mx/reader035/viewer/2022062315/568163be550346895dd4d952/html5/thumbnails/28.jpg)
Example
![Page 29: Parallel View-Dependent Tessellation of Catmull-Clark Subdivision Surfaces](https://reader035.vdocuments.mx/reader035/viewer/2022062315/568163be550346895dd4d952/html5/thumbnails/29.jpg)
ImplementationHardware Platform• NVIDIA GeForce GTX 280
Computing Architecture• NVIDIA CUDA 2.2
Subdivision criterion used for results• Screen-space extent
![Page 30: Parallel View-Dependent Tessellation of Catmull-Clark Subdivision Surfaces](https://reader035.vdocuments.mx/reader035/viewer/2022062315/568163be550346895dd4d952/html5/thumbnails/30.jpg)
Results
![Page 31: Parallel View-Dependent Tessellation of Catmull-Clark Subdivision Surfaces](https://reader035.vdocuments.mx/reader035/viewer/2022062315/568163be550346895dd4d952/html5/thumbnails/31.jpg)
Results
![Page 32: Parallel View-Dependent Tessellation of Catmull-Clark Subdivision Surfaces](https://reader035.vdocuments.mx/reader035/viewer/2022062315/568163be550346895dd4d952/html5/thumbnails/32.jpg)
Results – Performance BehaviorLinear with
output complexity
Performance approaches 2.5–3M
faces/sec
![Page 33: Parallel View-Dependent Tessellation of Catmull-Clark Subdivision Surfaces](https://reader035.vdocuments.mx/reader035/viewer/2022062315/568163be550346895dd4d952/html5/thumbnails/33.jpg)
• Parallel GPU tessellation of Catmull-Clark surfaces
• Robust data management for subdivision• Dynamically view-dependent• Fixing cracks in parallel
Summary
Support for mesh boundaries and textures
![Page 34: Parallel View-Dependent Tessellation of Catmull-Clark Subdivision Surfaces](https://reader035.vdocuments.mx/reader035/viewer/2022062315/568163be550346895dd4d952/html5/thumbnails/34.jpg)
Limitations• Quad-only meshes
• Bloats off-line storage and transfer
• Crack-fix affects the 1-ring neighborhood• Aggressive subdivision can help• Rarely a problem in practice
• Memory access patterns• Several non-coalesced dependent
lookups• Implementation limited by memory
bandwidth
![Page 35: Parallel View-Dependent Tessellation of Catmull-Clark Subdivision Surfaces](https://reader035.vdocuments.mx/reader035/viewer/2022062315/568163be550346895dd4d952/html5/thumbnails/35.jpg)
Future Work• Extension to alternate refinement schemes
• Loop• Doo-Sabin
• Efficient memory management• Programmable geometry caching
![Page 36: Parallel View-Dependent Tessellation of Catmull-Clark Subdivision Surfaces](https://reader035.vdocuments.mx/reader035/viewer/2022062315/568163be550346895dd4d952/html5/thumbnails/36.jpg)
AcknowledgmentsFeedback and Suggestions• Eric Lengyel• Anonymous paper reviewers
Models• Bay Raitt (Valve Software)• Headus Inc.
Funding and Equipment• NSF Award 0541448• SciDAC Institute for Ultrascale Visualization• NVIDIA
![Page 37: Parallel View-Dependent Tessellation of Catmull-Clark Subdivision Surfaces](https://reader035.vdocuments.mx/reader035/viewer/2022062315/568163be550346895dd4d952/html5/thumbnails/37.jpg)
Thanks!
![Page 38: Parallel View-Dependent Tessellation of Catmull-Clark Subdivision Surfaces](https://reader035.vdocuments.mx/reader035/viewer/2022062315/568163be550346895dd4d952/html5/thumbnails/38.jpg)
EXTRA SLIDES
![Page 39: Parallel View-Dependent Tessellation of Catmull-Clark Subdivision Surfaces](https://reader035.vdocuments.mx/reader035/viewer/2022062315/568163be550346895dd4d952/html5/thumbnails/39.jpg)
Breadth-first Vs Depth-first Subdivision• One thread for one face
• Limited parallelism
Initial number of faces = 6
Initial number of faces = 1450
![Page 40: Parallel View-Dependent Tessellation of Catmull-Clark Subdivision Surfaces](https://reader035.vdocuments.mx/reader035/viewer/2022062315/568163be550346895dd4d952/html5/thumbnails/40.jpg)
Calculating vertex normals• Two methods
1. Averaged normals of adjacent facesa. Regular meanb. Weighted mean
2. Subdivision shading
1A 1B 2
![Page 41: Parallel View-Dependent Tessellation of Catmull-Clark Subdivision Surfaces](https://reader035.vdocuments.mx/reader035/viewer/2022062315/568163be550346895dd4d952/html5/thumbnails/41.jpg)
Calculating vertex normals
1A 1B 2
![Page 42: Parallel View-Dependent Tessellation of Catmull-Clark Subdivision Surfaces](https://reader035.vdocuments.mx/reader035/viewer/2022062315/568163be550346895dd4d952/html5/thumbnails/42.jpg)
Frame time division
![Page 43: Parallel View-Dependent Tessellation of Catmull-Clark Subdivision Surfaces](https://reader035.vdocuments.mx/reader035/viewer/2022062315/568163be550346895dd4d952/html5/thumbnails/43.jpg)
Results – Performance Scaling
![Page 44: Parallel View-Dependent Tessellation of Catmull-Clark Subdivision Surfaces](https://reader035.vdocuments.mx/reader035/viewer/2022062315/568163be550346895dd4d952/html5/thumbnails/44.jpg)
Results – Performance Scaling
![Page 45: Parallel View-Dependent Tessellation of Catmull-Clark Subdivision Surfaces](https://reader035.vdocuments.mx/reader035/viewer/2022062315/568163be550346895dd4d952/html5/thumbnails/45.jpg)
Results – Performance Scaling
![Page 46: Parallel View-Dependent Tessellation of Catmull-Clark Subdivision Surfaces](https://reader035.vdocuments.mx/reader035/viewer/2022062315/568163be550346895dd4d952/html5/thumbnails/46.jpg)
Varying subdivision depth
![Page 47: Parallel View-Dependent Tessellation of Catmull-Clark Subdivision Surfaces](https://reader035.vdocuments.mx/reader035/viewer/2022062315/568163be550346895dd4d952/html5/thumbnails/47.jpg)
Need for silhouette enhancement