Gabriel Peyré
January 01, 2011
1.3k

# Mesh Processing Course: Differential Mesh Processing

January 01, 2011

## Transcript

1. Differential Mesh Processing
Gabriel Peyré
www.numerical-tours.com

2. Processing: Local vs. Global
2
Differential
Processing
Geodesic
Processing
Surface ﬁltering
Fourier on Meshes
Front Propagation on Meshes
Surface Remeshing

3. Overview
•Triangulated Meshes
•Operators on Meshes
•From Discrete to Continuous
•Denoising by Diffusion and
Regularization
•Fourier on Meshes
•Spectral Mesh Compression
3

4. Triangular Meshes
4
Triangulated mesh: topology M = (V, E, F) and geometry M = (V, E, F).
i
j k
Topology M:
(0D) Vertices: V ⌅ {1, . . . , n}.
(1D) Edges: E ⇤ V V .
Symmetric: (i, j) ⌥ E ⌃ i ⇥ j ⌃ (j, i) ⌥ E.
(2D) Faces: F ⇤ V V V .
Compatibility: (i, j, k) ⌥ F ⇧ (i, j), (j, k), (k, i) ⌥ E.
⇥ (i, j) E, ⇤(i, j, k) F.

5. Triangular Meshes
4
Triangulated mesh: topology M = (V, E, F) and geometry M = (V, E, F).
i
j k
Topology M:
(0D) Vertices: V ⌅ {1, . . . , n}.
(1D) Edges: E ⇤ V V .
Symmetric: (i, j) ⌥ E ⌃ i ⇥ j ⌃ (j, i) ⌥ E.
(2D) Faces: F ⇤ V V V .
Compatibility: (i, j, k) ⌥ F ⇧ (i, j), (j, k), (k, i) ⌥ E.
⇥ (i, j) E, ⇤(i, j, k) F.
Geometric realization M: ⇥ i V, xi
R3, V def.
= {xi
\ i V } .
E def.
=
(i,j) E
Conv(xi, xj
) R3.
F def.
=
(i,j,k) F
Conv(xi, xj, xk
) R3.
Piecewise linear mesh:

6. Mesh Acquisition
acquisition
[Digital Michelangelo Project]
Low-poly modeling
5
Implicit surface

7. Local Connectivity
6
Vertex 1-ring: Vi
def.
= {j ⇥ V \ (i, j) ⇥ E} V .
Face 1-ring: Fi
def.
= {(i, j, k) ⇥ F \ i, j ⇥ V } F.
i
j k
f = (i, j, k) Vi

ni

nf

8. Local Connectivity
6
Vertex 1-ring: Vi
def.
= {j ⇥ V \ (i, j) ⇥ E} V .
Face 1-ring: Fi
def.
= {(i, j, k) ⇥ F \ i, j ⇥ V } F.
Normal Computation:
⌅ f = (i, j, k) ⇤ F, ⇥
nf
def.
=
(xj xi
) ⇧ (xk xi
)
||(xj xi
) ⇧ (xk xi
)||
.
⌅ i ⇤ V, ⇥
ni
def.
= f Fi

nf
||
f Fi

nf
||
i
j k
f = (i, j, k) Vi

ni

nf

9. Mesh Displaying
7

10. Overview
•Triangulated Meshes
•Operators on Meshes
•From Discrete to Continuous
•Denoising by Diffusion and
Regularization
•Fourier on Meshes
•Spectral Mesh Compression
8

11. Functions on a Mesh
9
Function on a mesh: f ⇥ 2(V) 2(V ) Rn.
f :
V ⇥ R
xi
⌃ ⇥ f(xi
)
⇤⌅ f : V ⇥ R
i ⌃ ⇥ fi
⇤⌅ f = (fi
)
i V
⇧ Rn.

12. Functions on a Mesh
9
Function on a mesh: f ⇥ 2(V) 2(V ) Rn.
f :
V ⇥ R
xi
⌃ ⇥ f(xi
)
⇤⌅ f : V ⇥ R
i ⌃ ⇥ fi
⇤⌅ f = (fi
)
i V
⇧ Rn.
Inner product & norm:
f, g⇥ def.
=
i V
figi
and ||f||2 = f, f⇥

13. Functions on a Mesh
9
Function on a mesh: f ⇥ 2(V) 2(V ) Rn.
f :
V ⇥ R
xi
⌃ ⇥ f(xi
)
⇤⌅ f : V ⇥ R
i ⌃ ⇥ fi
⇤⌅ f = (fi
)
i V
⇧ Rn.
Inner product & norm:
f, g⇥ def.
=
i V
figi
and ||f||2 = f, f⇥
Linear operator A:
A : 2(V ) 2(V ) ⇥⇤ A = (aij
)
i,j⇥V
⌅ Rn n (matrix).
(Af)(xi
) =
j V
aijf(xj
) ⇥ (Af)
i
=
j V
aijfj.

14. Functions on a Mesh
9
Function on a mesh: f ⇥ 2(V) 2(V ) Rn.
f :
V ⇥ R
xi
⌃ ⇥ f(xi
)
⇤⌅ f : V ⇥ R
i ⌃ ⇥ fi
⇤⌅ f = (fi
)
i V
⇧ Rn.
Inner product & norm:
f, g⇥ def.
=
i V
figi
and ||f||2 = f, f⇥
Linear operator A:
A : 2(V ) 2(V ) ⇥⇤ A = (aij
)
i,j⇥V
⌅ Rn n (matrix).
(Af)(xi
) =
j V
aijf(xj
) ⇥ (Af)
i
=
j V
aijfj.
Mesh processing:
Modify functions f ⇥ 2(V ).
Example: denoise a mesh M as 3 functions on M.
Strategy: apply a linear operator f ⇤ Af.
Remark: A can computed from M only or from (M, M).
f Af

15. Functions on Meshes
10
Examples:
Coordinates: xi
= (x1
i
, x2
i
, x3
i
) ⌅ R3.
X-coordinate: f : i ⌅ V ⇧ x1
i
⌅ R.
Geometric mesh M ⇥⇤ 3 functions deﬁned on M.
f(xi
) = x1
i f(xi
) = cos(2 x1
i
)

16. Local Averaging
11
Local operator: W = (wij
)
i,j V
where wij
= > 0 if j Vi,
0 otherwise.
(Wf)
i
=
(i,j) E
wijfj.

17. Local Averaging
11
Local operator: W = (wij
)
i,j V
where wij
= > 0 if j Vi,
0 otherwise.
(Wf)
i
=
(i,j) E
wijfj.
Examples: for i j,
wij
= 1
combinatorial
wij
= 1
||xj xi
||2
distance
wij
= cot(
ij
) + cot(⇥ij
)
conformal
(explanations later)

18. Local Averaging
11
Local operator: W = (wij
)
i,j V
where wij
= > 0 if j Vi,
0 otherwise.
(Wf)
i
=
(i,j) E
wijfj.
Examples: for i j,
wij
= 1
combinatorial
wij
= 1
||xj xi
||2
distance
wij
= cot(
ij
) + cot(⇥ij
)
conformal
Local averaging operator ˜
W = ( ˜
wij
)
i,j V
: ⇥ (i, j) E, ˜
wij
= wij
(i,j) E
wij
.
˜
W = D 1W with D = diag
i
(di
) where di
=
(i,j)⇥E
wij.
Averaging: ˜
W1 = 1.
(explanations later)

19. Iterative Smoothing
12
Iterative smoothing: ˜
Wf, ˜
W2, . . . , ˜
Wkf smoothed version of f.
f ˜
Wf ˜
W4f ˜
W8f

20. On a Regular Grid
13
Regular grid: ˜
Wf = ˜
w f.
Example in 2D: ( ˜
Wf)
i
= 1
4
4
k=1
fjk
.
Vi
= {j1, j2, j3, j4
}

21. On a Regular Grid
13
Regular grid: ˜
Wf = ˜
w f.
Discrete Fourier transform:
( ˜
Wkf) = ( ˜
w . . . ˜
w f) =⇥ ( ˜
Wkf)( ) = ˜
w( )k ˆ
f( ).
Convolution and Fourier: (f g) = ˆ
f · ˆ
g
(f)( ) = ˆ
f( ) def.
=
k
fke2i
n
k .
Example in 2D: ( ˜
Wf)
i
= 1
4
4
k=1
fjk
.
Vi
= {j1, j2, j3, j4
}

22. On a Regular Grid
13
Regular grid: ˜
Wf = ˜
w f.
Discrete Fourier transform:
Convergence:
( ˜
Wkf) = ( ˜
w . . . ˜
w f) =⇥ ( ˜
Wkf)( ) = ˜
w( )k ˆ
f( ).
Convolution and Fourier: (f g) = ˆ
f · ˆ
g
(f)( ) = ˆ
f( ) def.
=
k
fke2i
n
k .
Example in 2D: ( ˜
Wf)
i
= 1
4
4
k=1
fjk
.
Vi
= {j1, j2, j3, j4
}
If n is odd, ˜
Wkf k +⇥

1
|V |
i⇤V
fi

14
⇤ (i, j) ⇥ E, i < j, (Gf)
(i,j)
def.
= ⌅
wij
(fj fi
) ⇥ R.
⇥ Derivative along direction ⇥
xixj
.
G : 2(V ) ⇥ 2(E0
), ⇤⌅ G : Rn ⇥ Rp where p = |E0
|,
⇤⌅ G ⇧ Rn p matrix.
def.
= {(i, j) E \ i < j},

14
⇤ (i, j) ⇥ E, i < j, (Gf)
(i,j)
def.
= ⌅
wij
(fj fi
) ⇥ R.
⇥ Derivative along direction ⇥
xixj
.
Example: wij
= ||xi xj
|| 2, (Gf)
(i,j)
= f(xj ) f(xi)
||xi xj
||
.
G : 2(V ) ⇥ 2(E0
), ⇤⌅ G : Rn ⇥ Rp where p = |E0
|,
⇤⌅ G ⇧ Rn p matrix.
Regular grid:
Gf discretize f = f
x
, f
y

.
GTv discretize div(v) = v1
x
+ v2
y
.
def.
= {(i, j) E \ i < j},

25. Laplacian
15
L def.
= D W, where D = diag
i
(di
), with di
=
j
wij.
Remarks:
symmetric operators L, ˜
L Rn n.
L1 = 0: acts like a (second order) derivative.
˜
L1 ⇥= 0.
Normalized Laplacian:
˜
L def.
= D 1/2LD 1/2 = Id
n D 1/2WD1/2 = Id
n D1/2 ˜
WD 1/2.

26. Laplacian Positivity
16
Theorem: L = GTG and ˜
L = (GD 1/2)T(GD 1/2).
= L and ˜
L are symmetric positive deﬁnite.
⇥Lf, f⇤ = ||Gf||2 =
(i,j) E0
wij
||fi fj
||2
⇥˜
Lf, f⇤ = ||GD 1/2f||2 =

(i,j)⇥E0
wij
fi

di
fj

dj
2
Theorem: if M is connected, then
ker(L) = span(1) and ker(˜
L) = span(D1/2).

27. Proof
17
||Gf||2 =
(i,j) E0
wi,j
|fi fj
|2
=
i>j
wi,jf2
i
=
iwi,jf2
i
+
iwi,jf2
j
2
iwi,jfifj
=
j
f2
i
i j
wi,j
i j
wi,jfj
= Df, f Wf, f = Lf, f
= f Rn, (L G G)f, f = 0 = L = G G
=
i j
wi,jfifj

28. Overview
•Triangulated Meshes
•Operators on Meshes
•From Discrete to Continuous
•Denoising by Diffusion and
Regularization
•Fourier on Meshes
•Spectral Mesh Compression
18

29. Examples of Laplacians
19
Example in 1D: (Lf)
i
=
1
h2
(2fi fi+1 fi 1
) =
1
h2
f ⇥ ( 1, 2, 1)
L h 0

d2f
dx2
(xi
)

30. Examples of Laplacians
19
(Lf)
i
=
1
h2
(4fi fj1
fj2
fj3
fj4
) =
1
h2
f ⇥

0 -1 0
-1 4 -1
0 -1 0

Example in 2D:
L = GTGf discretize f = div( f).
Example in 1D: (Lf)
i
=
1
h2
(2fi fi+1 fi 1
) =
1
h2
f ⇥ ( 1, 2, 1)
L h 0

d2f
dx2
(xi
)
L h 0

2f
x2
(xi
)
2f
y2
(xi
) = f(xi
).

31. Parameterized Surface
First fundamental form: I = ⇥
⇥ui
,

⇥uj

i,j=1,2
.
Parameterized surface M: D ⇥ R2 ⇤ M
u ⌅ ⇤ (x)
u1
u2

⇥u1

⇥u2
Curve (t) D, length: L( ) = 1
0

(t)I (t)
(t)dt

32. Parameterized Surface
First fundamental form: I = ⇥
⇥ui
,

⇥uj

i,j=1,2
.
M is locally isometric to plane: I = Id.
Exemple: M =cylinder.
⇥ is conformal: I (u) = (u)Id.
Exemple: stereographic mapping plane sphere.
Parameterized surface M: D ⇥ R2 ⇤ M
u ⌅ ⇤ (x)
u1
u2

⇥u1

⇥u2
Curve (t) D, length: L( ) = 1
0

(t)I (t)
(t)dt

33. Laplace-Beltrami
21
Laplace operator on the plane: =
2
x2
+
2
y2
.
Laplace Beltrami operator on a surface M:

g M
def.
=
u1
g22

g u1
g12

g u2

+
u2
g11

g u2
g12

g u1

where g = det(I ) and I = (gij
)
i,j=1,2
.

34. Laplace-Beltrami
21
Laplace operator on the plane: =
2
x2
+
2
y2
.
Laplace Beltrami operator on a surface M:

g M
def.
=
u1
g22

g u1
g12

g u2

+
u2
g11

g u2
g12

g u1

where g = det(I ) and I = (gij
)
i,j=1,2
.
Remark:
where dM
is the geodesic distance on M.
where Bh
(x) = {y \ dM
(x, y) h}
Mf(x) = lim
h 0
1
h2
(Lhf)(x)
(Lhf)(x) = f(x)
1
|Bh
(x)| y Bh(x)
f(y)dy

35. Voronoi and Dual Mesh
22
Deﬁnition for a planar triangulation M of a mesh M R2.
Voronoi for vertices: ⇧ i ⇤ V, Ei
= {x ⇤ M \ ⇧ j ⌅= i, ||x xi
|| ⇥ ||x xj
||}
i
j
Ai
cf
Dual mesh

36. Voronoi and Dual Mesh
22
Deﬁnition for a planar triangulation M of a mesh M R2.
Voronoi for vertices: ⇧ i ⇤ V, Ei
= {x ⇤ M \ ⇧ j ⌅= i, ||x xi
|| ⇥ ||x xj
||}
Voronoi for edges: ⌅ e = (i, j) ⇥ E, Ee
= {x ⇥ M \ ⌅ e ⇤= e, d(x, e) d(x, e )}
Partition of the mesh: M =
i V
Ei
=
e E
Ee.
i
j
Ai
cf
i
j
A(ij)
cf
Dual mesh 1:3 subdivided mesh

37. Approximating Integrals on Meshes
Approximation of integrals on vertices and edges:

M
f(x)dx
i V
Ai f(xi
)
e=(i,j) E
Ae f([xi, xj
]).
Theorem : ⇥ e = (i, j) E,
Ae
= Area(Ee
) =
1
2
||xi xj
||2 (cot(
ij
) + cot(⇥ij
))
i
j
A(ij)
cf

38. Approximating Integrals on Meshes
Approximation of integrals on vertices and edges:

M
f(x)dx
i V
Ai f(xi
)
e=(i,j) E
Ae f([xi, xj
]).
Theorem : ⇥ e = (i, j) E,
Ae
= Area(Ee
) =
1
2
||xi xj
||2 (cot(
ij
) + cot(⇥ij
))
i
j
A(ij)
cf
A
B
C
O
h
+ + =
2
A(ABO) = ||AB|| h = ||AB||
||AB||
2
tan( )
A(ABO) =
||AB||2
2
tan ⇤
2
( + ⇥)
Proof:

39. Cotangent Weights
Sobolev norm (Dirichlet energy): J(f) =
M
|| f(x)||dx

40. ⇧ (i, j) ⇤ E, wij
= 1.
Distance weights: they depends both on the geometry and the to
require faces information,
⇧ (i, j) ⇤ E, wij
=
1
||xj xi
||2
.
Conformal weights: they depends on the full geometrical realiza
require the face information
⇧ (i, j) ⇤ E, wij
= cot(
ij
) + cot(⇥
Figure 1.2 shows the geometrical meaning of the angles
ij
and
ij
= ⇥(xi, xj, xk1
) and ⇥ij
= ⇥(xi
where (i, j, k1
) ⇤ F and (i, j, k2
) ⇤ F are the two faces adjacent
in the next section the explanation of these celebrated cotangent
xi
xj
xk1
xk2
ij
ij
Cotangent Weights
24
Approximation of Dirichelet energy:
where wij
= cot(
ij
) + cot(⇥ij
).

M
||⇤xf||2dx ⇥
e E
Ae
|(Gf)
e
|2 =
(i,j) E
Ae
|f(xj
) f(xi
)|2
||xj xi
||2
=
(i,j) E
wij
|f(xj
) f(xi
)|2
Sobolev norm (Dirichlet energy): J(f) =
M
|| f(x)||dx

41. ⇧ (i, j) ⇤ E, wij
= 1.
Distance weights: they depends both on the geometry and the to
require faces information,
⇧ (i, j) ⇤ E, wij
=
1
||xj xi
||2
.
Conformal weights: they depends on the full geometrical realiza
require the face information
⇧ (i, j) ⇤ E, wij
= cot(
ij
) + cot(⇥
Figure 1.2 shows the geometrical meaning of the angles
ij
and
ij
= ⇥(xi, xj, xk1
) and ⇥ij
= ⇥(xi
where (i, j, k1
) ⇤ F and (i, j, k2
) ⇤ F are the two faces adjacent
in the next section the explanation of these celebrated cotangent
xi
xj
xk1
xk2
ij
ij
Cotangent Weights
24
Approximation of Dirichelet energy:
Theorem : wij > 0 ⇥ ij
+ ⇥ij < ⇤
where wij
= cot(
ij
) + cot(⇥ij
).

M
||⇤xf||2dx ⇥
e E
Ae
|(Gf)
e
|2 =
(i,j) E
Ae
|f(xj
) f(xi
)|2
||xj xi
||2
=
(i,j) E
wij
|f(xj
) f(xi
)|2
Sobolev norm (Dirichlet energy): J(f) =
M
|| f(x)||dx

42. Overview
•Triangulated Meshes
•Operators on Meshes
•From Discrete to Continuous
•Denoising by Diffusion and
Regularization
•Fourier on Meshes
•Spectral Mesh Compression
25

43. Mesh Denoising
Normal displacement: xi
= x0
i
+ ( W)⇥
ni
, W white noise.
Noisy input: scanning error, imperfect material, etc.

44. Mesh Denoising
Normal displacement: xi
= x0
i
+ ( W)⇥
ni
, W white noise.
Mesh: 3 functions X/Y/Z: xi
= (f1
(i), f2
(i), f3
(i)) R3.
Denoising: smooth each function fk
(i), k = 1, 2, 3.
{xi
}i
= {(f1
(i), f2
(i), f3
(i))}i
{( ˜
f1
(i), ˜
f2
(i), ˜
f3
(i))}i
= {˜
xi
}i
smoothing
Noisy input: scanning error, imperfect material, etc.

45. Mesh Denoising
26
Normal displacement: xi
= x0
i
+ ( W)⇥
ni
, W white noise.
Mesh: 3 functions X/Y/Z: xi
= (f1
(i), f2
(i), f3
(i)) R3.
Denoising error (oracle):
3
k=1 i V
| ˜
fk
(i) f0
k
(i)|2 =
i V
||˜
xi x0
i
||2
Denoising: smooth each function fk
(i), k = 1, 2, 3.
{xi
}i
= {(f1
(i), f2
(i), f3
(i))}i
{( ˜
f1
(i), ˜
f2
(i), ˜
f3
(i))}i
= {˜
xi
}i
smoothing
Noisy input: scanning error, imperfect material, etc.
{x0
i
}i
{xi
}i {˜
xi
}i
smoothing
noise
SNR(x0, ˜
x) = 20 log
10
i
||˜
xi x0
i
||/
i
||x0
i
||

46. Iterative Smoothing
27
Initialization: k = 1, 2, 3, f(0)
k
= fk
.
Iteration: k = 1, 2, 3, f(s+1)
k
= ˜
Wf(s)
k
, f(s+1)
k
(i) =
1
|Vi
|
(j,i) Vi
f(s)
k
(i)
Denoised: choose s, and ˜
xi
= (f(s)
1
, f(s)
2
, f(s)
3
)

47. Iterative Smoothing
27
Initialization: k = 1, 2, 3, f(0)
k
= fk
.
Iteration: k = 1, 2, 3, f(s+1)
k
= ˜
Wf(s)
k
, f(s+1)
k
(i) =
1
|Vi
|
(j,i) Vi
f(s)
k
(i)
s = 0 s = 1 s = 2 s = 3 s = 4
s
SNR(x0, ˜
x)
Denoised: choose s, and ˜
xi
= (f(s)
1
, f(s)
2
, f(s)
3
)
Problem: optimal choice of s
Oracle: max
s
SNR(x0, x(s)).

48. Heat Diffusion
28
Heat di usion: ⇥ t > 0, F(t) : V R solving
F(t)
t
= D 1LF(t) = (Id
n
˜
W)F(t) and ⇤ i ⇥ V, F(0)(i) = f(i)

49. Heat Diffusion
28
Discretization: time step , #iterations K def.
= t/ .
Heat di usion: ⇥ t > 0, F(t) : V R solving
F(t)
t
= D 1LF(t) = (Id
n
˜
W)F(t) and ⇤ i ⇥ V, F(0)(i) = f(i)
1
f(s+1) f(s)

= D 1Lf(s) =⇥ f(s+1) = f(s) D 1Lf(s) = (1 )f(s)+ ˜
Wf(s).

50. Heat Diffusion
28
⇥ see later for a proof.
Discretization: time step , #iterations K def.
= t/ .
Theorem: stable and convergent scheme if < 1 (CFL condition)
Heat di usion: ⇥ t > 0, F(t) : V R solving
F(t)
t
= D 1LF(t) = (Id
n
˜
W)F(t) and ⇤ i ⇥ V, F(0)(i) = f(i)
1
f(s+1) f(s)

= D 1Lf(s) =⇥ f(s+1) = f(s) D 1Lf(s) = (1 )f(s)+ ˜
Wf(s).
f(t/ ) 0
⇥ F(t)

51. Heat Diffusion
28
⇥ see later for a proof.
⇥ still stable in most cases (see later).
Discretization: time step , #iterations K def.
= t/ .
Theorem: stable and convergent scheme if < 1 (CFL condition)
Heat di usion: ⇥ t > 0, F(t) : V R solving
F(t)
t
= D 1LF(t) = (Id
n
˜
W)F(t) and ⇤ i ⇥ V, F(0)(i) = f(i)
1
f(s+1) f(s)

= D 1Lf(s) =⇥ f(s+1) = f(s) D 1Lf(s) = (1 )f(s)+ ˜
Wf(s).
f(t/ ) 0
⇥ F(t)
Remark: if = 1, f(s) = ˜
Wkf.

52. PDEs on Meshes
t
Heat di usion:
f
t
= f and f(x, 0) = f0
(x)

53. PDEs on Meshes
t
Heat di usion:
f
t
= f and f(x, 0) = f0
(x)
Di usion of X/Y/Z coordinates:

54. PDEs on Meshes
t
Heat di usion:
f
t
= f and f(x, 0) = f0
(x)
% Laplacian matrix
L=D-W;
% initialization
f1 = f;
for i=1:3
f1 = f1 + tau*L*f1;
end
Initialization: Explicit Euler:
Di usion of X/Y/Z coordinates:

55. Mesh Denoising with Heat Diffusion
30
t = 0 t increases

56. Optimal Stopping Time
31
Mesh: 3 functions X/Y/Z: xi
= (f1
(i), f2
(i), f3
(i)) R3.
Problem: optimal choice of t
Denoised: x(t) = (f(s)
1
, f(s)
2
, f(s)
3
) for t = s .
Oracle: t = max
t
SNR(x0, x(t)).
{xi
}i {x(t )
i
}i
SNR(x0, x(t))
t

32
for [i, j] ⇥ E0, (Gf)[i, j] = f(i) f(j)
||Gf||2 =
(i,j) E0
|f(i) f(j)|2
f( ) = argmin
g Rn
||f g||2 + ||Gg||2
⇥ replaces f ⇤ Rn by f( ) ⇤ Rn with small gradient.

32
for [i, j] ⇥ E0, (Gf)[i, j] = f(i) f(j)
||Gf||2 =
(i,j) E0
|f(i) f(j)|2
f( ) = argmin
g Rn
||f g||2 + ||Gg||2
⇥ replaces f ⇤ Rn by f( ) ⇤ Rn with small gradient.
Theorem: f( ) is unique and f = (Id
n
+ tL) 1f
where L = D W = G G

32
for [i, j] ⇥ E0, (Gf)[i, j] = f(i) f(j)
||Gf||2 =
(i,j) E0
|f(i) f(j)|2
f( ) = argmin
g Rn
||f g||2 + ||Gg||2
⇥ replaces f ⇤ Rn by f( ) ⇤ Rn with small gradient.
Theorem: f( ) is unique and f = (Id
n
+ tL) 1f
where L = D W = G G
When +⇥: f( ) = argmin
Gg=0
||f g|| = Proj
span(1)
(f)
Theorem: f( ) +⇥

1
|V |
i
f(i)

60. Choosing Optimal Regularization
33
Mesh: 3 functions X/Y/Z: xi
= (f1
(i), f2
(i), f3
(i)) R3.
{xi
}i
Denoised: x( ) = (f( )
1
, f( )
2
, f( )
3
).
Problem: optimal choice of
Oracle: ⇥ = max SNR(x0, x( )).
{x( )
i
}i
SNR(x0, x(t))

61. Wave Propagation
34
Other di erential equations. One can solve other partial di⇥erential equations involving the
Laplacian over a 3D mesh M = (V, E, F). For instance, one can consider the wave equation, which
deﬁnes, for all t > 0, a vector Ft
⇤ ⇣2(V ) as the solution of
⌥2Ft
⌥t2
= D 1LFt
and

F0
= f ⇤ Rn,
d
dt
F0
= g ⇤ Rn,
(1.8)
In order to compute numerically the solution of this PDE, one can ﬁx a time step > 0 and use
an explicit discretization in time ¯
Fk
as F0
= f, F1
= F0
+ g and for k > 1
1
2
¯
Fk+1
+ ¯
Fk 1
2 ¯
Fk

= D 1L ¯
Fk
=⇥ ¯
Fk+1
= 2 ¯
Fk
¯
Fk 1
2D 1L ¯
Fk.
Figure 1.6 shows examples of the resolution of the wave equation on 3D meshes.
Figure 1.6: Example of evolution of the wave equation on 3D mesh. The initial condition f is a
t = 0 t increases
2Ft
t2
= D 1LFt
and F0
= f ⇥ Rn,
d
dt
F0
= g ⇥ Rn,
Discretization:
1
2
¯
Fk+1
+ ¯
Fk 1
2 ¯
Fk

= D 1L ¯
Fk
=⇥ ¯
Fk+1
= 2 ¯
Fk
¯
Fk 1
2D 1L ¯
Fk.

62. Overview
•Triangulated Meshes
•Operators on Meshes
•From Discrete to Continuous
•Denoising by Diffusion and
Regularization
•Fourier on Meshes
•Spectral Mesh Compression
35

63. Laplacian Eigen-decomposition
36
˜
L = (GD 1/2)T(GD 1/2) = ˜
L is positive semi-deﬁnite.
Eigen-decomposition of the Laplacian: U, UTU = Id
n
,
˜
L = U UT where = diag ( ) and
1 . . . n.
˜
L = D 1/2LD 1/2 = Id
n D 1/2WD 1/2

64. Laplacian Eigen-decomposition
36
˜
L = (GD 1/2)T(GD 1/2) = ˜
L is positive semi-deﬁnite.
Eigen-decomposition of the Laplacian: U, UTU = Id
n
,
Theorem: ⇥ i, i
[0, 2] and
If M is connected then 0 =
1 < 2
.
n
= 2 if and only if M is 2-colorable.
˜
L = U UT where = diag ( ) and
1 . . . n.
˜
L = D 1/2LD 1/2 = Id
n D 1/2WD 1/2

65. Laplacian Eigen-decomposition
36
˜
L = (GD 1/2)T(GD 1/2) = ˜
L is positive semi-deﬁnite.
Eigen-decomposition of the Laplacian: U, UTU = Id
n
,
Theorem: ⇥ i, i
[0, 2] and
If M is connected then 0 =
1 < 2
.
n
= 2 if and only if M is 2-colorable.
˜
L = U UT where = diag ( ) and
1 . . . n.
Orthogonal expansion: u , u ⇥ = ,
⇥ f 2(V ), f = ⇤f, u ⌅u .
Eigen-basis: U = (u ) orthogonal basis of Rn 2(V ).
u : V ⇥ R
i ⇤ ⇥ u (i)
˜
L = D 1/2LD 1/2 = Id
n D 1/2WD 1/2

66. Proof
37
˜
Lu = u =
D 1(D W)¯
u = ¯
u
D 1/2(D W)D 1/2u = u
where ¯
u = D 1/2u
2
using (a b)2 2(a2 + b2)
=
Equality i (i, j) E, u (i) = u (j)
i.e. the graph is 2-colorable.
= L¯
u , ¯
u

u , ¯
u
= iwi,j

u (i) ¯
u (j))2
i
di
¯
u (i)2

67. Eigenvectors of the Laplacian
38

68. Examples of Eigen-decompositions
39
Theorem (in 1D):
Laplacian in 1-D:
u (k) = n 1/2e2i
n
k = sin2

n

Lf = ( 1/2, 1, 1/2) f

69. Examples of Eigen-decompositions
39
Theorem (in 1D):
Theorem (in 2D): n = n1n2, = (
1, 2
)
On a 3D mesh: (u ) is the extension of the Fourier basis.
Laplacian in 1-D:
u (k) = n 1/2e2i
n
k = sin2

n

=
1
2
sin2

n
⇤1
+
1
2
sin2

n
⇤2
u (k) = n 1e2i
n
k,
Lf =
0 1/4 0
1/4 1 1/4
0 1/4 0
f
Laplacian in 2-D:
Lf = ( 1/2, 1, 1/2) f

70. Fourier Transform on Meshes
Manifold-Fourier transform: for f 2(V ),
(f)( ) = ˆ
f( ) def.
= ⇤D1/2f, u ⌅ ⇥
(f) = ˆ
f = UTD1/2f,
1( ˆ
f) = D 1/2U ˆ
f.
Proof: ⇥ ˜
W⇥ 1 = U D1/2WD 1/2U = Id
n
Id
n
˜
L
˜
Wf(⇥) = (1 ) ˆ
f(⇥)
Theorem: ⇥ ˜
W⇥ 1 = Id
n
,
=

71. Fourier Transform on Meshes
Theorem: if
n < 2 (i.e. M is not 2-colorable),
Manifold-Fourier transform: for f 2(V ),
(f)( ) = ˆ
f( ) def.
= ⇤D1/2f, u ⌅ ⇥
(f) = ˆ
f = UTD1/2f,
1( ˆ
f) = D 1/2U ˆ
f.
Proof: ⇥ ˜
W⇥ 1 = U D1/2WD 1/2U = Id
n
Id
n
˜
L
˜
Wf(⇥) = (1 ) ˆ
f(⇥)
Theorem: ⇥ ˜
W⇥ 1 = Id
n
,
=
˜
Wkf k +
f = f, d d 1
˜
Wkf = ⇥ 1(Id
n
)k⇥(f) f
k

72. Spectral Diffusion
Heat di usion: ⇥ t > 0,
Ft
t
= D 1LFt
= (Id
n
˜
W)Ft
Manifold-Fourier expansion: ˆ
Ft
def.
= UTD1/2Ft
.
⇤ ˆ
Ft
(⇥)
⇤t
= ˆ
Ft
(⇥) =⇥ ˆ
Ft
(⇥) = exp( t) ˆ
f(⇥).
Theorem: Ft
t +
f = f, d d 1
t

73. Spectral Diffusion
Heat di usion: ⇥ t > 0,
Ft
t
= D 1LFt
= (Id
n
˜
W)Ft
Manifold-Fourier expansion: ˆ
Ft
def.
= UTD1/2Ft
.
Discretization: ¯
Fk+1
= ¯
Fk D 1L ¯
Fk
= (1 ) ¯
Fk
+ ˜
W ¯
Fk.
¯
Fk
(⇤) = (1 ⇥ )k ˆ
f(⇤)
⇤ ˆ
Ft
(⇥)
⇤t
= ˆ
Ft
(⇥) =⇥ ˆ
Ft
(⇥) = exp( t) ˆ
f(⇥).
Theorem: ¯
Ft/
0
⇥ Ft
, with stability if < 1.
Theorem: Ft
t +
f = f, d d 1
t

74. Mesh Approximation and Compression
42
Orthogonal basis U = (u ) of 2(V ) Rn, where ˜
L = U UT.
f =
n
=1
⇥f, u ⇤u M-term approx.
= fM
def.
=
M
=1
⇥f, u ⇤u .
Error decay: E(M) def.
= ||f fM
||2 =
>M
|⇥f, u ⇤|2.

75. Intuition: | |2.
Mesh Approximation and Compression
42
Orthogonal basis U = (u ) of 2(V ) Rn, where ˜
L = U UT.
f =
n
=1
⇥f, u ⇤u M-term approx.
= fM
def.
=
M
=1
⇥f, u ⇤u .
Good basis ⇥ E(M) decays fast.
Example in 1D: if f is C on R/(2 Z), | ˆ
f( )| ||f( )||⇥
| | .
Example on a mesh: f is smooth if ||˜
Lf|| is small.
| f, u ⇥| =
1
| f, ˜
Lu ⇥|
1
||˜
Lf||
Error decay: E(M) def.
= ||f fM
||2 =
>M
|⇥f, u ⇤|2.

76. Laplace Spectrum
43
ˆ
f( )
ˆ
f( ) ˆ
f( )
ˆ
f( )

77. Mesh Compression
44
M increasing