Polygonal Representations
Motivation
- Meshes nicely represent shapes
- in medicine, CAD, GIS, entertainment
- and engineering & simulation
- Old concept:
- planar triangulation & tessellation (Voronoi, Delaunay, etc...)
- mixes topology & geometry (connectivity vs. embedding in space)
Also, this is a very special type of graph...
Mesh: nomenclature
Definition:
A set of vertices, straight edges and faces (triangle, or even polygons) defining a piecewise-flat surface embedded in 3D:
Simplicial complex:
- Topological realization: identify with unit vector in :
The term on RHS is convexhull of vertex images
Closure, Star and Link:
Topological Structure
- Every point has an open, (half-)disk-like subset surrounding it
- the mesh is 2-manifold iff (homeomorphic to plane)
- boundary: half-plane this time
Discrete Differential Geometry
Discrete notion of curvature(s) quite obvious
- mean curvature at edges: dihedral angle
- Gaussian curvature at vertices:
Still, we need to be careful (like sometimes we should "normalize" it by dividing by something). The "something" that is being ubiquitous today is the Voronoi area
Topological Invariant of Surfaces
Euler Characteristic:
- : number of vertices
- : number of edges
- : number of faces between edges
Euler formula:
- : number of connected components
- : number of genus (holes) in surfaces
- : number of boundary edges
The later is true for arbitrary complexes (this can be proved by induction)
Recall about turning number theorem: Gauss-Bonnet
For a boundary-less surface, we get:
And with boundary:
Mesh Denoising
How to remove noise from surfaces???
By using the non-linear diffusion:
This brings us to Laplace-Beltrami operator;
- gradient of triangle area w.r.t. top vertex
- explicit formula in a convenient form
Not so surprising: LBO is an intrinsic Laplacian:
- extends the usual stencil to arbitrary sampling for flat domains…
- second order derivative (trace of Hessian) of functions
- and treats piecewise-linear non-flat domains seamlessly
- proper treatment requires finite-element analysis...
- but this only changes the “mass” matrix
- the particular form we used is called mass lumping
I know this part is just a bunch of text, I will comback here later to edit this (or I may never come back :v)
Mesh Simplification
- Large mesh is expensive
- Too simple mesh cause information loss
should think of a mesh that “best bang for your buck”.
Problem formulation
- geometric & combinatorical optimization
- full problem too hard in practice
- a few existing slow solutions
- alternate:
- vertex optimization
- combinatorical optimization
- or both, interleaved!
History:
- Functional approximation
- PWL curve approximation
- Height field (terrain) triagulation
Existing Approaches:
- Manual simplification: too complex, require users with expertise
- Automatic methods:
- vertex clustering
- vertex decimation
- iterative contraction
Vertex Clustering:

- Partition space into cells
- Merge all vertices within the same cell
- Triangles can degenerate
Vertex Decimation:

- Starting with original model, iteratively
- rank vertices according to importance
- remove unimportant vertex, retriangulate
- Used to be a fairly common technique
Iterative Contraction:
- Contraction operates on set of vertices (faces, edges are also used)
- Starting with original model, iteratively
- rank all edges with some cost metric
- contract minimum cost edge
- update edge costs
Cost metrics
To evaluate vertices, or edges based on importance, or cost, we must have something to measure those value.
- Some heuristics ok (e.g. edge length, dihedral angle...)
- Sample distances to original surface better (projection to closest point)
- Alternative characterizations of error
- quadratic error metrics
- local volume preservation
- much faster