Spring 2015 CSCI 599: Digital Geometry Processing
4.1 Discrete Differential Geometry
Hao Li http://cs599.hao-li.com 1 Outline
• Discrete Differential Operators
• Discrete Curvatures
• Mesh Quality Measures
2 Differential Operators on Polygons
Differential Properties!
• Surface is sufficiently differentiable
• Curvatures → 2nd derivatives
3 Differential Operators on Polygons
Differential Properties!
• Surface is sufficiently differentiable
• Curvatures → 2nd derivatives
Polygonal Meshes!
• Piecewise linear approximations of smooth surface
• Focus on Discrete Laplace Beltrami Operator
• Discrete differential properties defined over (x) N
4 Local Averaging
Local Neighborhood ( x ) of a point !x N • often coincides with mesh vertex vi
• n-ring neighborhood ( v ) or local geodesic ball Nn i
5 Local Averaging
Local Neighborhood ( x ) of a point !x N • often coincides with mesh vertex vi
• n-ring neighborhood ( v ) or local geodesic ball Nn i
Neighborhood size!
• Large: smoothing is introduced, stable to noise
• Small: fine scale variation, sensitive to noise
6 Local Averaging: 1-Ring
(x) N
x
Barycentric cell Voronoi cell Mixed Voronoi cell (barycenters/edgemidpoints) (circumcenters) (circumcenters/midpoint) tight error bound better approximation
7 Barycentric Cells
Connect edge midpoints and triangle barycenters!
• Simple to compute
• Area is 1/3 o triangle areas
• Slightly wrong for obtuse triangles
8 Mixed Cells
Connect edge midpoints and!
• Circumcenters for non-obtuse triangles
• Midpoint of opposite edge for obtuse triangles
• Better approximation, more complex to compute…
9 Normal Vectors
Continuous surface
x(u, v) x(u, v)= y(u, v) z(u, v) ⇥ n ⇤ ⌅ Normal vector xu xv p x x n = u v x x ⇥ u v⇥
Assume regular parameterization
x x = 0 normal exists u v ⇥ 10 Discrete Normal Vectors
n(T )
xk xi
xj
11 Discrete Normal Vectors n(v) n(T )
xk xi
xj
12 Discrete Normal Vectors n(v) n(T )
xk xi ✓T
xj
13 Discrete Normal Vectors
tessellated cylinder
14 Simple Curvature Discretization
mean curvature
Laplace-Beltrami ∆S x = divS ∇S x = −2Hn
15 Simple Curvature Discretization
mean curvature
Laplace-Beltrami ∆S x = divS ∇S x = −2Hn
How to discretize?
16 Laplace Operator on Meshes
Extend finite differences to meshes?!
• What weights per vertex/edge?
¼ ? ?
¼ ¼ ? ? ? ½ -1 ½ -1 ? ? ¼
1D grid 2D grid 2D/3D grid
17 Uniform Laplace
Uniform discretization!
• What weights per vertex/edge?
Properties!
• depends only on connectivity
• simple and efficient
18 Uniform Laplace
Uniform discretization! 1 unixi := (xj xi) 2Hn 1(vi) ⇥ v (v ) |N | j N1 i Properties!
• depends only on connectivity
• simple and efficient
• bad approximation for irregular triangulations • can give non-zero H for planar meshes • tangential drift for mesh smoothing
19 Gradients
mean curvature
Laplace-Beltrami ∆S x = divS ∇S x = −2Hn
gradient operator
Discrete Gradient of a Function!
• Defined on piecewise linear triangle
• Important for parameterization and deformation
20 Gradients
xk xi triangle
xj piecewise linear function u =(u, v)
fi = f(xi)
linear basis functions for barycentric interpolation on a triangle 21 Gradients
piecewise linear function u =(u, v)
22 Gradients
piecewise linear function u =(u, v) gradient of linear function
23 Gradients
piecewise linear function u =(u, v) gradient of linear function
partition of unity
gradients of basis
24 Gradients
piecewise linear function u =(u, v) gradient of linear function
partition of unity
gradients of basis
gradient of linear function
25 Gradients gradient of linear function Gradients gradient of linear function
with appropriate normalization:
27 Gradients gradient of linear function
with appropriate normalization:
fi = f(xi)
discrete gradient of a piecewiese linear function within T 28 Discrete Laplace-Beltrami
gradient mean operator curvature
Laplace-Beltrami ∆S x = divS ∇S x = −2Hn Discrete Laplace-Beltrami
gradient mean operator curvature
Laplace-Beltrami ∆S x = divS ∇S x = −2Hn
divergence theorem
30 Discrete Laplace-Beltrami
gradient mean operator curvature
Laplace-Beltrami ∆S x = divS ∇S x = −2Hn
vector-valued function local averaging domain boundary
31 Discrete Laplace-Beltrami
gradient mean operator curvature
Laplace-Beltrami ∆S x = divS ∇S x = −2Hn
divergence theorem
32 Discrete Laplace-Beltrami average Laplace-Beltrami
33 Discrete Laplace-Beltrami average Laplace-Beltrami
gradient is constant and local Voronoi passes through a,b:
over triangle
34 Discrete Laplace-Beltrami average Laplace-Beltrami
gradient is constant and local Voronoi passes through a,b:
over triangle discrete gradient
35 Discrete Laplace-Beltrami
average Laplace-Beltrami within a triangle
36 Discrete Laplace-Beltrami
average Laplace-Beltrami within a triangle
37 Discrete Laplace-Beltrami
average Laplace-Beltrami over averaging region
38 Discrete Laplace-Beltrami
average Laplace-Beltrami over averaging region
discrete Laplace-Beltrami
39 Discrete Laplace-Beltrami
Cotangent discretization!
1 f(vi) := (cot ij + cot ⇥ij)(f(vj) f(vi)) S 2A(vi) v (v ) j N1 i
A(vi)
vi ij ij
for full derivation, check out: http://brickisland.net/cs177/ vj 40 Discrete Laplace-Beltrami
Cotangent discretization
1 f(v) := (cot i + cot ⇥i)(f(vi) f(v)) S 2A(v) v (v) i N1 Problems!
• weights can become negative
• depends on triangulation
Still the most widely used discretization
41 Outline
• Discrete Differential Operators
• Discrete Curvatures
• Mesh Quality Measures
42 Discrete Curvatures
How to discretize curvature on a mesh?!
• Zero curvature within triangles
• Infinite curvature at edges / vertices
• Point-wise definition doesn’t make sense
Approximate differential properties at point x as average over local neighborhood!A(x)
• x is a mesh vertex A(x)
• A ( x ) within one-ring neighborhood x
43 Discrete Curvatures
How to discretize curvature on a mesh?!
• Zero curvature within triangles
• Infinite curvature at edges / vertices
• Point-wise definition doesn’t make sense
Approximate differential properties at point x as average over local neighborhood A(x) A(x) 1 K(v) K(x)dA A(v) A(v) x
44 Discrete Curvatures
Which curvatures to discretize?!
• Discretize Laplace-Beltrami operator
• Laplace-Beltrami gives us mean curvature H
• Discretize Gaussian curvature K
• From H and K we can compute 1 and 2
mean curvature
Laplace-Beltrami ∆S x = divS ∇S x = −2Hn
45 Discrete Gaussian Curvature
Gauss-Bonnet
K =2 ⇥ =2 2g Z
Discrete Gauss Curvature
K = (2⇥ )/A j j Verify via Euler-Poincaré
V E + F = 2(1 g)
46 Discrete Curvatures
Mean curvature (absolute value) 1 H = x 2 S A Gaussian curvature
K = (2⇥ )/A j j j Principal curvatures