Lecture 19
Lecture 19
point cloud
more structure
triangle soup
manifold mesh
watertight mesh
Point Clouds
Point Clouds
List of points
• may or may not include normals
Point Clouds
List of points
• may or may not include normals
• normals estimated by plane-fitting
Point Clouds
List of points
• may or may not include normals
• normals estimated by plane-fitting
not manifold
Manifold Mesh
Must satisfy three properties:
1. Every edge shared by one/two faces
2. Faces around verts are triangle fans
not
consistent consistent
Watertight Mesh
Manifold mesh that
• is single piece
• has no boundary
Watertight Mesh
Manifold mesh that
• is single piece
• has no boundary
point cloud
Graphics Grand Challenge
more structure
real-word data often
triangle soup unstructured
watertight mesh
Representing Surface Data
point cloud
triangle soup
“mesh repair”
algorithms
manifold mesh
watertight mesh
Representing Surface Data
point cloud
triangle soup
“mesh repair”
algorithms
manifold mesh (rarely works)
watertight mesh
Representing Surface Data
point cloud
triangle soup
Poisson surface
reconstruction
manifold mesh
watertight mesh
Poisson Surface Reconstruction
Interpolates point cloud and normals
Triangle Mesh Data Structures
List of points & triangle indices
Triangle Mesh Data Structures
List of points & triangle indices
Pros:
• lightweight, compact
• native GPU data structure
• very common file data structure
Cons:
Triangle Mesh Data Structures
List of points & triangle indices
Pros:
• lightweight, compact
• native GPU data structure
• very common file data structure
Cons:
• neighbor queries slow
• finding boundaries slow
Half-edge Data Structure
Store mesh as set of half-edges
Half-edge Data Structure
Half-edge Data Structure
Store mesh as set of half-edges
Pros:
• easy to “walk around” faces, vertices
• all kinds of neighbor queries easy
Half-edge Data Structure
Store mesh as set of half-edges
Pros:
• easy to “walk around” faces, vertices
• all kinds of neighbor queries easy
Cons:
• large memory footprint
• tricky to implement (tons of pointers!)
Half-edge Data Structure
Store mesh as set of half-edges
Pros:
• easy to “walk around” faces, vertices
• all kinds of neighbor queries easy
Cons:
• large memory footprint
• tricky to implement (tons of pointers!)
• use existing libraries (e.g. OpenMesh)
Types of Manifold Meshes
triangle
quad
Triangles simpler
Quads more natural for flat & cylindrical
geometry
Arbitrary Quads Are Not Planar!
Insert verts at
edge midpts
Adds faces,
but doesn’t
change shape
Nonlinear Subdivision
Everybody has pet subdivision method
Most popular:
• triangle meshes: Loop subdivision
Nonlinear Subdivision
Everybody has pet subdivision code
Most popular:
• triangle meshes: Loop subdivision
• quad meshes: Catmull-Clark
Catmull-Clark Subdivision
Rules for adding new points and replacing
old points
Remeshing
Smoothing
Other Mesh Operations
Graphics subfield: geometry processing
• uses sophisticated theory from linear
algebra, differential geometry, etc.
No general hexahedralization
algorithm exists (!)
Constructive Solid Geometry
Start with simple buildings blocks
• sphere, cubes, cylinders, …
Build complicated
objects using tree
of operations
CSG Operations
union
CSG Operations
union intersection
CSG Operations