Mesh Processing Course : Differential Calculus

Post on 26-May-2015

559 views 2 download

Tags:

description

Slides for a course on mesh processing.

Transcript of Mesh Processing Course : Differential Calculus

Differential Mesh Processing

Gabriel PeyréCEREMADE, Université Paris-Dauphine

www.numerical-tours.com

Processing: Local vs. Global

2

DifferentialProcessing

GeodesicProcessing

Surface filtering

Fourier on Meshes

Front Propagation on Meshes

Surface Remeshing

Overview

•Triangulated Meshes

•Operators on Meshes

•From Discrete to Continuous

•Denoising by Diffusion and Regularization

•Fourier on Meshes

•Spectral Mesh Compression3

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.

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:

Mesh Acquisitionacquisition

[Digital Michelangelo Project]

Low-poly modeling5

Implicit surface

Local Connectivity

6

Vertex 1-ring: Videf.= {j ⇥ V \ (i, j) ⇥ E} � V .

Face 1-ring: Fidef.= {(i, j, k) ⇥ F \ i, j ⇥ V } � F .

i

j k

f = (i, j, k) Vi

�⇥ni

�⇥nf

Local Connectivity

6

Vertex 1-ring: Videf.= {j ⇥ V \ (i, j) ⇥ E} � V .

Face 1-ring: Fidef.= {(i, j, k) ⇥ F \ i, j ⇥ V } � F .

Normal Computation:

⌅ f = (i, j, k) ⇤ F, �⇥nfdef.=

(xj � xi) ⇧ (xk � xi)||(xj � xi) ⇧ (xk � xi)||

.

⌅ i ⇤ V, �⇥nidef.=

�f�Fi

�⇥nf

||�

f�Fi

�⇥nf ||

i

j k

f = (i, j, k) Vi

�⇥ni

�⇥nf

Mesh Displaying

7

Overview

•Triangulated Meshes

•Operators on Meshes

•From Discrete to Continuous

•Denoising by Diffusion and Regularization

•Fourier on Meshes

•Spectral Mesh Compression8

Functions on a Mesh

9

Function on a mesh: f ⇥ �2(V) � �2(V ) � Rn.

f :

�V �⇥ Rxi ⌃�⇥ f(xi)

⇤⌅ f :

�V �⇥ Ri ⌃�⇥ fi

⇤⌅ f = (fi)i�V ⇧ Rn.

Functions on a Mesh

9

Function on a mesh: f ⇥ �2(V) � �2(V ) � Rn.

f :

�V �⇥ Rxi ⌃�⇥ f(xi)

⇤⌅ f :

�V �⇥ Ri ⌃�⇥ fi

⇤⌅ f = (fi)i�V ⇧ Rn.

Inner product & norm:

�f, g⇥ def.=�

i�V

figi and ||f ||2 = �f, f⇥

Functions on a Mesh

9

Function on a mesh: f ⇥ �2(V) � �2(V ) � Rn.

f :

�V �⇥ Rxi ⌃�⇥ f(xi)

⇤⌅ f :

�V �⇥ Ri ⌃�⇥ 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 .

Functions on a Mesh

9

Function on a mesh: f ⇥ �2(V) � �2(V ) � Rn.

f :

�V �⇥ Rxi ⌃�⇥ f(xi)

⇤⌅ f :

�V �⇥ Ri ⌃�⇥ 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 meshM 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

Functions on Meshes

10

Examples:Coordinates: xi = (x1

i , x2i , x

3i ) ⌅ R3.

X-coordinate: f : i ⌅ V ⇧� x1i ⌅ R.

Geometric meshM ⇥⇤ 3 functions defined on M .

f(xi) = x1i f(xi) = cos(2�x1

i )

Local Averaging

11

Local operator: W = (wij)i,j�V where wij =

�> 0 if j � Vi,

0 otherwise.(Wf)i =

(i,j)�E

wijfj .

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 = 1combinatorial

wij = 1||xj�xi||2

distancewij = cot(�ij) + cot(⇥ij)

conformal(explanations later)

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 = 1combinatorial

wij = 1||xj�xi||2

distancewij = 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 = diagi(di) where di =�

(i,j)⇥E

wij .

Averaging: W1 = 1.

(explanations later)

Iterative Smoothing

12

Iterative smoothing: Wf, W 2, . . . , W kf smoothed version of f .

f Wf W 4f W 8f

On a Regular Grid

13

Regular grid: Wf = w � f .

Example in 2D: (Wf)i = 14

�4k=1 fjk .

Vi = {j1, j2, j3, j4}

On a Regular Grid

13

Regular grid: Wf = w � f .

Discrete Fourier transform:

�(W kf) = �(w � . . . � w � f) =⇥ �(W kf)(�) = �w(�)k f(�).

Convolution and Fourier: �(f � g) = f · g

�(f)(�) = f(�) def.=�

k

fke2i�n k�.

Example in 2D: (Wf)i = 14

�4k=1 fjk .

Vi = {j1, j2, j3, j4}

On a Regular Grid

13

Regular grid: Wf = w � f .

Discrete Fourier transform:

Convergence:

�(W kf) = �(w � . . . � w � f) =⇥ �(W kf)(�) = �w(�)k f(�).

Convolution and Fourier: �(f � g) = f · g

�(f)(�) = f(�) def.=�

k

fke2i�n k�.

Example in 2D: (Wf)i = 14

�4k=1 fjk .

Vi = {j1, j2, j3, j4}

If n is odd, W kfk�+⇥�⇥ 1

|V |�

i⇤V

fi

Gradient

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.

Gradient operator: oriented edges E0def.= {(i, j) � E \ i < j},

Gradient

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 .

Gradient operator: oriented edges E0def.= {(i, j) � E \ i < j},

Laplacian

15

Ldef.= D �W, where D = diagi(di), with di =

j

wij .

Remarks:symmetric operators L, L � Rn�n.L1 = 0: acts like a (second order) derivative.L1 ⇥= 0.

Normalized Laplacian:

Ldef.= D�1/2LD�1/2 = Idn �D�1/2WD1/2 = Idn �D1/2WD�1/2.

Laplacian Positivity

16

Theorem: L = GTG and L = (GD�1/2)T(GD�1/2).

=� L and L are symmetric positive definite.

⇥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).

Proof

17

||Gf ||2 =�

(i,j)�E0

wi,j |fi � fj |2

=�

i>j

wi,jf2i

=�

i<j

wi,jf2i +

i<j

wi,jf2j � 2

i<j

wi,jfifj

=�

j

f2i

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

Overview

•Triangulated Meshes

•Operators on Meshes

•From Discrete to Continuous

•Denoising by Diffusion and Regularization

•Fourier on Meshes

•Spectral Mesh Compression18

Examples of Laplacians

19

Example in 1D: (Lf)i =1h2

(2fi � fi+1 � fi�1) =1h2

f ⇥ (�1, 2,�1)

Lh�0�⇥ �d2f

dx2(xi)

Examples of Laplacians

19

(Lf)i =1h2

(4fi � fj1 � fj2 � fj3 � fj4) =1h2

f ⇥

⇧⇤0 -1 0-1 4 -10 -1 0

⌃⌅

Example in 2D:

L = GTGf discretize �f = div(�f).

Example in 1D: (Lf)i =1h2

(2fi � fi+1 � fi�1) =1h2

f ⇥ (�1, 2,�1)

Lh�0�⇥ �d2f

dx2(xi)

Lh�0�⇥ ��2f

�x2(xi)�

�2f

�y2(xi) = �f(xi).

Parameterized Surface

First fundamental form: I� =�� ⇥�

⇥ui,

⇥�

⇥uj⇥⇥

i,j=1,2

.

Parameterized surfaceM:

�D ⇥ R2 �⇤ M

u ⌅�⇤ �(x)

u1

u2 �⇥�

⇥u1

⇥�

⇥u2

Curve �(t) � D, length: L(�) =� 10

⇥��(t)I�(t)��(t)dt

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 surfaceM:

�D ⇥ R2 �⇤ M

u ⌅�⇤ �(x)

u1

u2 �⇥�

⇥u1

⇥�

⇥u2

Curve �(t) � D, length: L(�) =� 10

⇥��(t)I�(t)��(t)dt

Laplace-Beltrami

21

Laplace operator on the plane: � =�2

�x2+

�2

�y2.

Laplace Beltrami operator on a surfaceM:⇥

g�Mdef.=

�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.

Laplace-Beltrami

21

Laplace operator on the plane: � =�2

�x2+

�2

�y2.

Laplace Beltrami operator on a surfaceM:⇥

g�Mdef.=

�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 onM.

where Bh(x) = {y \ dM(x, y) � h}

�Mf(x) = limh�0

1h2

(Lhf)(x)

(Lhf)(x) = f(x)� 1|Bh(x)|

y�Bh(x)f(y)dy

Voronoi and Dual Mesh

22

Definition for a planar triangulation M of a meshM � R2.

Voronoi for vertices: ⇧ i ⇤ V, Ei = {x ⇤M \ ⇧ j ⌅= i, ||x� xi|| ⇥ ||x� xj ||}

i

j

Ai

cf

Dual mesh

Voronoi and Dual Mesh

22

Definition for a planar triangulation M of a meshM � 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

Approximating Integrals on MeshesApproximation of integrals on vertices and edges:

Mf(x)dx �

i�V

Ai f(xi) ��

e=(i,j)�E

Ae f([xi, xj ]).

Theorem : ⇥ e = (i, j) � E,

Ae = Area(Ee) =12

||xi � xj ||2 (cot(�ij) + cot(⇥ij))

i

j

A(ij)cf

Approximating Integrals on MeshesApproximation of integrals on vertices and edges:

Mf(x)dx �

i�V

Ai f(xi) ��

e=(i,j)�E

Ae f([xi, xj ]).

Theorem : ⇥ e = (i, j) � E,

Ae = Area(Ee) =12

||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

2tan

�⇤

2� (� + ⇥)

Proof:

Cotangent WeightsSobolev norm (Dirichlet energy): J(f) =

M||�f(x)||dx

1.2 Linear Mesh Processing

The smoothing property corresponds to W1 = 1 which means that the unit vector is an eigen-vector of W with eigenvalue 1.Example 3. In practice, we use three popular kinds of averaging operators.

Combinatorial weights: they depends only on the topology (V,E) of the vertex graph

⇧ (i, j) ⇤ E, wij = 1.

Distance weights: they depends both on the geometry and the topology of the mesh, but do notrequire faces information,

⇧ (i, j) ⇤ E, wij =1

||xj � xi||2.

Conformal weights: they depends on the full geometrical realization of the 3D mesh since theyrequire the face information

⇧ (i, j) ⇤ E, wij = cot(�ij) + cot(⇥ij). (1.3)

Figure 1.2 shows the geometrical meaning of the angles �ij and ⇥ij

�ij = ⇥(xi, xj , xk1) and ⇥ij = ⇥(xi, xj , xk2),

where (i, j, k1) ⇤ F and (i, j, k2) ⇤ F are the two faces adjacent to edge (i, j) ⇤ E. We will seein the next section the explanation of these celebrated cotangent weights.

xi

xj

xk1

xk2

�ij

�ij

Figure 1.2: One ring around a vertex i, together with the geometrical angles �ij and ⇥ij used tocompute the conformal weights.

One can use iteratively a smoothing in order to further filter a function on a mesh. The resultingvectors Wf, W 2, . . . , W kf are increasingly smoothed version of f . Figure 1.3 shows an example ofsuch iterations applied to the three coordinates of mesh. The sharp features of the mesh tend todisappear during iterations. We will make this statement more precise in the following, by studyingthe convergence of these iterations.

1.2.3 Approximating Integrals on a Mesh

Before investigating algebraically the properties of smoothing operators, one should be carefulabout what are these discrete operators really approximating. In order for the derivation to besimple, we make computation for a planar triangulation M of a mesh M ⇥ R2.

In the continuous domain, filtering is defined through integration of functions over the mesh. Inorder to descretize integrals, one needs to define a partition of the plane into small cells centeredaround a vertex or an edge.

Definition 10 (Vertices Voronoi). The Voronoi diagram associated to the vertices is

⇧ i ⇤ V, Ei = {x ⇤M \ ⇧ j ⌅= i, ||x� xi|| � ||x� xj ||}

5

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

1.2 Linear Mesh Processing

The smoothing property corresponds to W1 = 1 which means that the unit vector is an eigen-vector of W with eigenvalue 1.Example 3. In practice, we use three popular kinds of averaging operators.

Combinatorial weights: they depends only on the topology (V,E) of the vertex graph

⇧ (i, j) ⇤ E, wij = 1.

Distance weights: they depends both on the geometry and the topology of the mesh, but do notrequire faces information,

⇧ (i, j) ⇤ E, wij =1

||xj � xi||2.

Conformal weights: they depends on the full geometrical realization of the 3D mesh since theyrequire the face information

⇧ (i, j) ⇤ E, wij = cot(�ij) + cot(⇥ij). (1.3)

Figure 1.2 shows the geometrical meaning of the angles �ij and ⇥ij

�ij = ⇥(xi, xj , xk1) and ⇥ij = ⇥(xi, xj , xk2),

where (i, j, k1) ⇤ F and (i, j, k2) ⇤ F are the two faces adjacent to edge (i, j) ⇤ E. We will seein the next section the explanation of these celebrated cotangent weights.

xi

xj

xk1

xk2

�ij

�ij

Figure 1.2: One ring around a vertex i, together with the geometrical angles �ij and ⇥ij used tocompute the conformal weights.

One can use iteratively a smoothing in order to further filter a function on a mesh. The resultingvectors Wf, W 2, . . . , W kf are increasingly smoothed version of f . Figure 1.3 shows an example ofsuch iterations applied to the three coordinates of mesh. The sharp features of the mesh tend todisappear during iterations. We will make this statement more precise in the following, by studyingthe convergence of these iterations.

1.2.3 Approximating Integrals on a Mesh

Before investigating algebraically the properties of smoothing operators, one should be carefulabout what are these discrete operators really approximating. In order for the derivation to besimple, we make computation for a planar triangulation M of a mesh M ⇥ R2.

In the continuous domain, filtering is defined through integration of functions over the mesh. Inorder to descretize integrals, one needs to define a partition of the plane into small cells centeredaround a vertex or an edge.

Definition 10 (Vertices Voronoi). The Voronoi diagram associated to the vertices is

⇧ i ⇤ V, Ei = {x ⇤M \ ⇧ j ⌅= i, ||x� xi|| � ||x� xj ||}

5

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

Overview

•Triangulated Meshes

•Operators on Meshes

•From Discrete to Continuous

•Denoising by Diffusion and Regularization

•Fourier on Meshes

•Spectral Mesh Compression25

Mesh DenoisingNormal displacement: xi = x0

i + (�W )�⇥ni , W white noise.

Noisy input: scanning error, imperfect material, etc.

Mesh DenoisingNormal 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}ismoothing

Noisy input: scanning error, imperfect material, etc.

Mesh Denoising

26

Normal displacement: xi = x0i + (�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}ismoothing

Noisy input: scanning error, imperfect material, etc.

{x0i }i {xi}i {xi}i

smoothingaddingnoise

SNR(x0, x) = �20 log10

i

||xi � x0i ||/

i

||x0i ||

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 )

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: maxs

SNR(x0, x(s)).

Heat Diffusion

28

Heat di�usion: ⇥ t > 0, F (t) : V � R solving

�F (t)

�t= �D�1LF (t) = (Idn � W )F (t) and ⇤ i ⇥ V, F (0)(i) = f(i)

Heat Diffusion

28

Discretization: time step �, #iterations Kdef.= t/�.

Heat di�usion: ⇥ t > 0, F (t) : V � R solving

�F (t)

�t= �D�1LF (t) = (Idn � 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).

Heat Diffusion

28

�⇥ see later for a proof.

Discretization: time step �, #iterations Kdef.= 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) = (Idn � 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)

Heat Diffusion

28

�⇥ see later for a proof.

�⇥ still stable in most cases (see later).

Discretization: time step �, #iterations Kdef.= 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) = (Idn � 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) = W kf .

PDEs on Meshes

t

Heat di�usion:�f

�t= �f and f(x, 0) = f0(x)

PDEs on Meshes

t

Heat di�usion:�f

�t= �f and f(x, 0) = f0(x)

Di�usion of X/Y/Z coordinates:

PDEs on Meshes

t

Heat di�usion:�f

�t= �f and f(x, 0) = f0(x)

% Laplacian matrixL=D-W;% initializationf1 = f;

for i=1:3 f1 = f1 + tau*L*f1;end

Initialization: Explicit Euler:

Di�usion of X/Y/Z coordinates:

Mesh Denoising with Heat Diffusion

30

t = 0 t increases

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� = maxt

SNR(x0, x(t)).

{xi}i {x(t�)i }i

SNR

(x0,x

(t) )

t

Quadratic Regularization

32

for [i, j] ⇥ E0, (Gf)[i, j] = f(i)� f(j)

||Gf ||2 =�

(i,j)�E0

|f(i)� f(j)|2

f (�) = argming�Rn

||f � g||2 + �||Gg||2

�⇥ replaces f ⇤ Rn by f (�) ⇤ Rn with small gradient.

Quadratic Regularization

32

for [i, j] ⇥ E0, (Gf)[i, j] = f(i)� f(j)

||Gf ||2 =�

(i,j)�E0

|f(i)� f(j)|2

f (�) = argming�Rn

||f � g||2 + �||Gg||2

�⇥ replaces f ⇤ Rn by f (�) ⇤ Rn with small gradient.

Theorem: f (�) is unique and f = (Idn + tL)�1f

where L = D �W = G�G

Quadratic Regularization

32

for [i, j] ⇥ E0, (Gf)[i, j] = f(i)� f(j)

||Gf ||2 =�

(i,j)�E0

|f(i)� f(j)|2

f (�) = argming�Rn

||f � g||2 + �||Gg||2

�⇥ replaces f ⇤ Rn by f (�) ⇤ Rn with small gradient.

Theorem: f (�) is unique and f = (Idn + tL)�1f

where L = D �W = G�G

When �� +⇥: f (�) = argminGg=0

||f � g|| = Projspan(1)(f)

Theorem: f (�) ��+⇥�⇥ 1|V |

i

f(i)

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) )

Wave Propagation

34

1 Linear Mesh Processing

Other di�erential equations. One can solve other partial di⇥erential equations involving theLaplacian over a 3D mesh M = (V,E, F ). For instance, one can consider the wave equation, whichdefines, for all t > 0, a vector Ft ⇤ ⇣2(V ) as the solution of

⌥2Ft

⌥t2= �D�1LFt and

⇤F0 = f ⇤ Rn,ddtF0 = g ⇤ Rn,

(1.8)

In order to compute numerically the solution of this PDE, one can fix a time step � > 0 and usean explicit discretization in time Fk as F0 = f , F1 = F0 + �g and for k > 1

1�2

�Fk+1 + Fk�1 � 2Fk

⇥= �D�1LFk =⇥ Fk+1 = 2Fk � Fk�1 � �2D�1LFk.

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 asuperposition of small positive and negative gaussians.

1.3.2 Spectral Decomposition

In order to better understand the behavior of linear smoothing on meshes, one needs to studythe spectral content of Laplacian operators. This leads to the definition of a Fourier theory formeshes. The decomposition L = (GD�1/2)

T(GD�1/2) of the Laplacian implies that it is a positive

semi-definite operator. One can thus introduce the following orthogonal factorization.

Theorem 6 (Eigen-decomposition of the Laplacian). It exists a matrix U, UTU = Idn such that

L = U�UT where � = diag�(⇥�), ⇥1 � . . . � ⇥n.

The eigenvalues ⇥� correspond to a frequency index that ranks the eigenvectors u� of U = (u�)�.One can first state some bounds on these eigenvalues.

Theorem 7 (Spectral bounds). ⌅ i, ⇥i ⇤ [0, 2] and

If M is connected then 0 = ⇥1 < ⇥2.⇥n = 2 if and only if M is 2-colorable.

We recall the definition of a colorable graph next.

12

t = 0 t increases

�2Ft

�t2= �D�1LFt and

�F0 = f ⇥ Rn,ddtF0 = g ⇥ Rn,

Discretization: 1�2

�Fk+1 + Fk�1 � 2Fk

⇥= �D�1LFk

=⇥ Fk+1 = 2Fk � Fk�1 � �2D�1LFk.

Overview

•Triangulated Meshes

•Operators on Meshes

•From Discrete to Continuous

•Denoising by Diffusion and Regularization

•Fourier on Meshes

•Spectral Mesh Compression35

Laplacian Eigen-decomposition

36

L = (GD�1/2)T(GD�1/2) =� L is positive semi-definite.

Eigen-decomposition of the Laplacian: �U, UTU = Idn,

L = U�UT where � = diag�(��) and �1 � . . . � �n.

L = D�1/2LD�1/2 = Idn �D�1/2WD�1/2

Laplacian Eigen-decomposition

36

L = (GD�1/2)T(GD�1/2) =� L is positive semi-definite.

Eigen-decomposition of the Laplacian: �U, UTU = Idn,

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 = Idn �D�1/2WD�1/2

Laplacian Eigen-decomposition

36

L = (GD�1/2)T(GD�1/2) =� L is positive semi-definite.

Eigen-decomposition of the Laplacian: �U, UTU = Idn,

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 �⇥ Ri ⇤�⇥ u�(i)

L = D�1/2LD�1/2 = Idn �D�1/2WD�1/2

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.

� =�Lu�, u���Du�, u��

=�

i<j wi,j(u�(i)� u�(j))2�

i diu�(i)2

Eigenvectors of the Laplacian

38

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

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⇤�

�� =12

sin2�⇥

n⇤1

�+

12

sin2�⇥

n⇤2

�u�(k) = n�1e

2i�n �k, ��

Lf =

�0 �1/4 0

�1/4 1 �1/40 �1/4 0

� � fLaplacian in 2-D:

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

Fourier Transform on MeshesManifold-Fourier transform: for f � �2(V ),

�(f)(�) = f(�) def.= ⇤D1/2f, u�⌅ �⇥�

�(f) = f = UTD1/2f,

��1(f) = D�1/2Uf.

Proof: ⇥W⇥�1 = U�D1/2WD�1/2U = Idn � �

Idn � L

�Wf(⇥) = (1� ��)f(⇥)

Theorem: ⇥W⇥�1 = Idn � �,

=�

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/2Uf.

Proof: ⇥W⇥�1 = U�D1/2WD�1/2U = Idn � �

Idn � L

�Wf(⇥) = (1� ��)f(⇥)

Theorem: ⇥W⇥�1 = Idn � �,

=�

W kfk�+��� f� = �f, d�d�1

W kf = ⇥�1(Idn � �)k⇥(f) �� f�

k

Spectral DiffusionHeat di�usion: ⇥ t > 0,

�Ft

�t= �D�1LFt = (Idn � W )Ft

Manifold-Fourier expansion: Ftdef.= UTD1/2Ft.

⇤Ft(⇥)⇤t

= ���Ft(⇥) =⇥ Ft(⇥) = exp(���t)f(⇥).

Theorem: Ftt�+��� f� = �f, d�d�1

t

Spectral DiffusionHeat di�usion: ⇥ t > 0,

�Ft

�t= �D�1LFt = (Idn � W )Ft

Manifold-Fourier expansion: Ftdef.= UTD1/2Ft.

Discretization: Fk+1 = Fk � �D�1LFk = (1� �)Fk + �W Fk.

�Fk(⇤) = (1� �⇥�)kf(⇤)

⇤Ft(⇥)⇤t

= ���Ft(⇥) =⇥ Ft(⇥) = exp(���t)f(⇥).

Theorem: Ft/���0�⇥ Ft, with stability if � < 1.

Theorem: Ftt�+��� f� = �f, d�d�1

t

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.

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.

Laplace Spectrum

43

f(�)

f(�) f(�)

f(�)

� �

Mesh Compression

44

M increasing