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.
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:
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
⇥ 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.
⇥ 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
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)
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)
˜ 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
(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 E0 def. = {(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 E0 def. = {(i, j) E \ i < j},
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.
= (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).
= i>j wi,jf2 i = i<j wi,jf2 i + i<j wi,jf2 j 2 i<j wi,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
+ 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 .
+ 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
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
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
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:
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
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
( 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 adding noise SNR(x0, ˜ x) = 20 log 10 i ||˜ xi x0 i ||/ i ||x0 i ||
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 )
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)).
= 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).
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)
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.
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:
(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
= 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
= 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)
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 defines, 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 fix 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.
˜ L is positive semi-definite. 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
˜ L is positive semi-definite. 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
˜ L is positive semi-definite. 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
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 D¯ u , ¯ u = i<j wi,j (¯ u (i) ¯ u (j))2 i di ¯ u (i)2
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
(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 , =
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
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
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
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.