Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Mesh Processing Course: Multiresolution Mesh Pr...

Mesh Processing Course: Multiresolution Mesh Processing

Gabriel Peyré

January 01, 2011
Tweet

More Decks by Gabriel Peyré

Other Decks in Research

Transcript

  1. Overview, course #3 52 CHAPTER 3. MULTIRESOLUTION MESH PROCESSING Figure

    3.6: Surface after 0, 1 and 3 step of ↵ 3 subdivision. 3.2.3 Invariant Neighborhoods In order to study the convergence of subdivision schemes, one needs to consider independently each vertex x ⌅ Vj0(x) , where j0 (x) is the coarser scale at which x appears j0 (x) = max {j \ x ⌅ Vj } . Original vertices satisfy j0 (x) = 0 and are the only one (except boundary vertices) that have a non-regular connectivity. The vertex x belongs to the mesh Mj0(x) which is going to be refined through scales j < j0 (x). In order to analyze this refinement, one needs to define an invariant neighborhood V x j ⇥ Vj of x for each scale j j0 (x). These neighborhood are the set of points that are required to compute the operators Pj and ˜ Pj . More precisely, given a vector f ⌅ 2(Vj 1 ), the neighborhoods are required to satisfy ⇧ ⇧ ⌅ V x j 1 ⌃ Vj, ( ˜ Pjf)[ ] depends only on V x j ⇧ k ⌅ V x j 1 ⌃ Hj, (Pjf)[k] depends only on V x j . wavelets bases. All these predictors have one vanishing moment since they satisfy Pj 1 = 1 . In order to ensure that the dual wavelets have one vanishing moment, the update operator depends on the direct neighbors in Hj of each point in Vj ⌅ ✏ ⇤ Vj, V = { (✏, ✏⇥) \ (✏, ✏⇥) ⇤ Ej } . One wants looks for a valid update operator in the following form ⌅ h ⇤ ✏2(Hj ), ⌅ ✏ ⇤ Vj, (Ujh)[✏] = ⇥ k⇤V⇥ h[k], (3.12) where each ⇥ should be fixed in order for condition (3.11) to be satisfied. In an semi-regular triangulation, |V | = 6 except maybe for some points in the coarse grid ⇤ V0 . In this setting, the values of ⇥ can be computed by a recursion through the scales. In an ideal triangulation where |V | = 6 for all ✏, one can use a constant weight ⇥ = ⇥. For the pecial case of the butterfly wavelets, Pj T1Hj = 3 ⇥ 1Vj and Uj T1Vj = 6⇥1Hj , so setting ⇥ = 1/24 olves equation (3.11). Figure 3.8 shows examples of butterfly wavelets on a planar semi-regular riangulation. Wavelets on Meshes Subdivision Surfaces 2
  2. Overview • Semi Regular Meshes: 1:4 subdivision, geometry images. •

    Subdivision Surfaces: Local interpolators, subdivision schemes, convergence. • Biorthogonal Wavelets on Meshes: Lifting Scheme, vanishing moments, compression. 3
  3. Regular 1:4 Subdivision 4 48 CHAPTER 3. MULTIRESOLUTION MESH PROCESSING

    j = 0 j = 1 j = 2 j = 3 Vj ⇥ Vj 1 = Vj ⌅ { (e) \ e ⇤ Ej } . Ej ⇥ Ej 1 = { i (e) \ i = 1, 2 and e ⇤ Ej } . Fj ⇥ Fj 1 = {µi (f) \ i = 1, 2, 3, 4 and f ⇤ Fj } . e 1 (e) 2 (e) (e) µ1 (f) µ2 (f) µ3 (f) µ4 (f) f subdivision subdivision
  4. Complementary grids: Vj = Vj+1 Hj+1 . Nested indexes: V0

    V 1 . . . VL = V . Semi-regular mesh hierarchy {Mj = (Vj, Ej, Fj ) \ L j 0}. Semi-regular Meshes 5 3.2. SUBDIVISION SURFACES 49 j = 0 j = 1 j = 2 j = 3 Signals f ⇥ Rn 2(VL ) with n = |VL |.
  5. Spherical Geometry Images 6 ! !"#$%&'()*+(%(,$-%&.(-&/0*(01*2$,$3#&04* !"#$%&'()*% +),)-.%+/00-% 1*#2-'.#34%/5%13(6% 7#8'/./53%9-.-('86%

    ! ! ! ! "#$%$&'(!!!!!! )*+,#$-'(!*'#'.,/#$0'/$"&! "-/'+,1#'(!*'#'.,/#$0'/$"&! %,".,/#2!$.'%,!3($/4! #,.,)+,1!%,".,/#2!!! 5$%6#,!78!9,."&)/#'/$"&!":!)*+,#$-'(!*'#'.,/#$0'/$"&!'&1!)6;),<6,&/!#,)'.*($&%!$&/"!'!%,".,/#2!$.'%,=! "#$%&'(%! >,-,&/(2?!@6!,/!'(=!ABCCBD!$&/#"16-,1!)*+,*%&-!.,')*$?!$&!E+$-+! %,".,/#2! $)! #,)'.*(,1! $&/"! '! -".*(,/,(2! #,%6('#!B9!%#$1=!F+,!*#"-,))!$&G"(G,)!-6//$&%! /+,!)6#:'-,!$&/"!'!1$)H!6)$&%!'!&,/E"#H!":!-6/! *'/+)?!'&1!/+,&!.'**$&%!/+,!;"6&1'#2!":!/+$)! 1$)H! /"! '! )<6'#,=! ! I"/+! %,".,/#2! '&1! "/+,#! F+,! /#'1$/$"&'(! '**#"'-+! :"#! *'#'.,/#$0$&%! '! )6#:'-,! $&G"(G,)! -6//$&%!$/!$&/"!-+'#/)!'&1!.'**$&%!/+,),!*$,-,E$),!"&/"!'!*('&'#! 1".'$&=!!M,!$&/#"16-,!'!#";6)/!/,-+&$<6,!:"#!1$#,-/(2!*'#'.,/#$0K $&%! '! %,&6)K0,#"! )6#:'-,! "&/"! '! )*+,#$-'(! 1".'$&=! ! J! H,2! $&%#,1$,&/! :"#! .'H$&%! )6-+! '! *'#'.,/#$0'/$"&! *#'-/$-'(! $)! /+,! .$&$.$0'/$"&! ":! '! )/#,/-+K;'),1! .,')6#,?! /"! #,16-,! )-'(,K x U T S Surface S R3. Spherical parameterization: S : S2 ⇤ S. Spherical-tetraedron flattening: T : Tetrahedron ⇤ S2. Tetraedron unfolding: U : [0, 1]2 ⇤ Tetrahedron. Regular sampling: x = S ⇥ T ⇥ U (⇥/n) for ⇥i = 0, . . . , n 1. [Praun & Hoppe 2003] Spherical Geometry Images: = S T U : [0, 1]2 ⇥ S. Geometry Image ⇥ 3-channels image, special boundary conditions.
  6. Overview • Semi Regular Meshes: 1:4 subdivision, geometry images. •

    Subdivision Surfaces: Local interpolators, subdivision schemes, convergence. • Biorthogonal Wavelets on Meshes: Lifting Scheme, vanishing moments, compression. 7
  7. 1D Function Refinement 8 h0 h1 ˜ h 1 ˜

    h1 ˜ h0 Vj Hj Vj 1 [1, 1]/2 [1, 1]/2 [1, 6, 1]/8 [1, 4, 6, 4, 1]/8 1 [1, 2, 1]/4 g h ˜ h Linear Cubic fj ⇤ 2(Vj ) ⇥ ⌅ k ⇤ Hj, fj 1 (k) = ⇥ t fj ((k 1)/2 + t)h(t), ⌅ ⇤ Vj, fj 1 ( ) = ⇥ t fj ( + t)˜ h(t). f 1 f 2 f 5 f0
  8. Spline Interpolation 9 g = [. . . , ˜

    h( 1), h(0), ˜ h(0), h(1), ˜ h(1), . . .] Cubic: [1, 4, 6, 4, 1]/8. fj 1 = (fj ⇤ 2) ⇥ g where a ⇤ 2 = [. . . , a( 1), 0, a(0), 0, a(1), . . .]. f0 = 0 f ⇥ = Rescaled ˜ fj (x = 2j⇥) = f(⇥) j⇥ ⇤ ⇥ f(x) = ⌅V0 (x ⇥)f0(⇥). ˆ fj ( ) = ˆ fj+1 ( /2)ˆ g( ) = ˆ f0 (2j ) j 1 k=0 ˆ h( /2k) ˆ ⇥( ) = 0 j= ⇥ ˆ g(2j ).
  9. Curve Subdivision 10 Signal (X0, Y0 ) : V0 R2

    (control polygon). Subdivision curve (Xj, Yj ) converges to (X(t), Y (t))1 t=0 R2. (X 2, Y 2 ) (X 5, Y 5 ) (X0, Y0 ) (X 1, Y 1 )
  10. Subdivision Refinement 11 define ˜ Pj . For a vertex

    k ⇤ Hj ⇥ Vj 1 , the butterfly neighborhood is a set of vertices in Vj close to k. This neighborhood is used to define Pj . The two immediate neighbors are (v1 k , v2 k ) def. = {v ⇤ Vj \ (v, k) ⇤ Ej 1 } . Two other vertices (w1 k , w2 k ) are defined using the two faces adjacent to edge (v2 k , v2 k ) ⇤ Ej f1 k = (v1 k , v2 k , w1 k ) ⇤ Fj and f2 k = (v1 k , v2 k , w2 k ) ⇤ Fj. For edges Ej on the boundary of Mj , one one face is available, in which case we implicitly assume that f1 = f2 (reflecting boundary conditions). The four last vertices are defined using faces adjacent to f1 and f2 : ⇧ i, j = 1, 2, fi,j k def. = (zi,j k , vj k , wj k ) ⇤ Fj with fi,j k ⌅= fj. Once again, reflecting boundary condition are applied for faces on the boundary of the mesh. The butterfly neighborhood is depicted on figure 3.3. k v1 k v2 k f2 k f1 k w1 k w2 k z1,1 k f1,1 k f1,2 k f2,2 k f2,1 k z1,2 k z2,2 k z2,1 k Interpolators : Pj : 2(Vj ) ⇥ 2(Hj ), ˜ Pj : 2(Vj ) ⇥ 2(Vj ). Signal refinement: fj ⇥ R|Vj | ⇤ fj 1 ⇥ R|Vj 1|: ⇥ Vj 1, fj 1 [ ] = (Pjfj )[ ] if Vj, ( ˜ Pjfj )[ ] if Hj.
  11. Triangular Subdivision Schemes 12 1 2 (f[v1 k ] +

    f[v2 k ]) fj [ ] ⇥ Vj, ( ˜ Pjfj )[ ] = ⇥ k Hj, (Pjfj )[k] = 1 2 2 i=1 f[vi k ] + 1 8 2 i=1 f[wi k ] 1 16 2 i,j=1 f[zi,j k ] m def. = 1 m ⇤ 5 8 3 8 + 1 4 cos(2⇥/m) ⇥2 ⌅ . 3 8 2 i=1 f[vi k ] + 1 8 2 i=1 f[wi k ] (1 |V | |V | )fj [⇥] + |V | ⇥V fj [⇥ ] fj [ ] Figure 3.4: Examples of iterative subdivision using Loop scheme. The points (X0, Y0, Z0 ) of the nitial coarse mesh M0 are shown in red. Original Linear Butterfly Loop Linear Butterfly Loop
  12. Examples of Loop Subdivision 13 3.2. SUBDIVISION SURFACES 51 Figure

    3.4: Examples of iterative subdivision using Loop scheme. The points (X0, Y0, Z0 ) of the initial coarse mesh M0 are shown in red. j = 0 j = 1 j = 2 j = 3
  13. Invariant Neighborhoods 14 3.2. SUBDIVISION SURFACES 1 2 3 4

    5 6 7 8 9 0 1 0 2 3 7 4 8 5 9 6 Figure 3.7: Invariant neighborhood V x j and V x j 1 (indexing with red circles) o Coarser scale: j0 (x) = max {j \ x Vj } . Invariant neighborhoods (V x j ) j of x: ⇥ V x j 1 ⇤ Vj, ( ˜ Pjf)[ ] depends only on V x j ⇥ k V x j 1 ⇤ Hj, (Pjf)[k] depends only on V x j . Restrictions: Px j : V x j ⇥ V x j 1 ⇤ Vj, ˜ Px j : V x j ⇥ V x j 1 ⇤ Hj. Same size j j0 (x), #V x j = mx . Subdivision matrix Sx j Rmx mx ( ˜ Px j , Px j ) : V j x ⇥ V j 1 x . ⇧ ⇧ ⇧ ⇧ ⇧ ⇧ ⇧ ⇧ ⇧ ⇧ ⇧ ⇧ ⇧ ⇧ ⇤ 7 3 3 3 1 1 1 1 10 1 1 1 1 1 1 1 10 1 1 1 1 1 1 1 10 1 1 3 3 1 1 3 3 1 1 3 3 1 3 1 1 1 1 3 1 1 2 1 3 ⇥ ⌃ ⌃ ⌃ ⌃ ⌃ ⌃ ⌃ ⌃ ⌃ ⌃ ⌃ ⌃ ⌃ ⌃ ⌅ Sx j =
  14. Convergence of Subdivisions 15 fx j Rmx restriction of fj

    to V x j . fj [x] = Sxfx j+1 ⇥ [x] = ⇤ (Sx)j0(x) jfx j0(x) ⌅ [x], Hypothesis : 1 = 1 < def. = 2 = 3 < 4. = ( i )m i=1 , = ( i )m i=1 1 k (f ⇥f, ⇥1 ⇤1) = ⇥f, ⇥2 ⇤ ˜ ⇥2 + ⇥f, ⇥3 ⇤ ˜ ⇥3 + o(1). Sx = ˜ ⇥V ⇥T where ⇥T = ˜ ⇥ 1, = diag( i ), 1 2 . . . mx . Eigen-decomposition: Theorem : fj(x) j⇥ ⇤ ⇥ ⇤fx j0(x) , 1 ⌅. Asymptotics with k +⇥:
  15. Convergence 16 p(x) = (X(x), Y (x), Z(x)) = (

    Xx j0 , 1 ⇥, Y x j0 , 1 ⇥, Zx j0 , 1 ⇥). Coarse control mesh: p0 = (X0, Y0, Z0 ) 2(V0 )3. Subdivision surface: pj = (Xj, Yj, Zj ) converges to p(x) p(x ) + o(1) ⇥ Span( x 2 , x 3 ) where i(x) def. = ( Xx j0 , ⇥i ⇥, Y x j0 , ⇥i ⇥, Zx j0 , ⇥i ⇥). Tangent plane: 3.2. SUBDIVISION SURFACES 1 2 3 4 5 6 7 8 9 0 1 0 2 3 7 4 8 5 9 6 x x 1 = 1 and 2 = 3 = 1/3 > 4 . ⇧ ⇧ ⇧ ⇧ ⇧ ⇧ ⇧ ⇧ ⇧ ⇧ ⇧ ⇧ ⇧ ⇧ ⇤ 7 3 3 3 1 1 1 1 10 1 1 1 1 1 1 1 10 1 1 1 1 1 1 1 10 1 1 3 3 1 1 3 3 1 1 3 3 1 3 1 1 1 1 3 1 1 2 1 3 ⇥ ⌃ ⌃ ⌃ ⌃ ⌃ ⌃ ⌃ ⌃ ⌃ ⌃ ⌃ ⌃ ⌃ ⌃ ⌅ Sx j = Loop matrix k = 3
  16. Overview • Semi Regular Meshes: 1:4 subdivision, geometry images. •

    Subdivision Surfaces: Local interpolators, subdivision schemes, convergence. • Biorthogonal Wavelets on Meshes: Lifting Scheme, vanishing moments, compression. 17
  17. Biorthogonal Wavelets on Meshes 18 .. . f0 2(V0 )

    f 1 2(V 1 ) f 2 2(V 2 ) d0 2(H0 ) d 1 2(H 1 ) Initial signal (dj 2(Hj ))J 1 j=0 f0 2(G0 ) (wavelets coefs.) (coarse approx.) fwd. trans. bwd. trans. Forward : ⇥ k Hj, dj [k] = ⇤f, j,k ⌅, ⇥ ⇤ Vj, fj [⇤] = ⇤f, ⇥j, ⌅. Backward : f = L<j J,k Hj dj [k] ˜ j,k + VJ fJ [⇤] ˜ ⇥J, . f = fJ 2(VJ )
  18. Lifting Scheme 19 split Pj Uj fj 1 Vj Vj

    1 Hj + fj dj .. . fj dj Vj Hj Uj Pj + merge fj 1 Vj 1 .. . .. . .. . Predict : Pj : 2(Vj ) ⇥ 2(Hj ) Update : Uj : 2(Hj ) ⇥ 2(Vj )
  19. Lifting Recursion 20 Forward Predict/Update steps: ⇤ k ⇥ Hj,

    dj [k] = fj 1 [k] ⇥ ⇥Vj pj [k, ]fj 1 [ ], followed by ⇤ ⇥ Vj, fj [ ] = fj 1 [ ] + ⇥ k⇥Hj uj [ , k]dj [k]. Backward Update/Predict steps: ⇤ ⇥ Vj, fj 1 [ ] = fj [ ] ⇥ k⇥Hj uj [ , k]dj [k], followed by ⇤ k ⇥ Hj, fj 1 [k] = dj [k] + ⇥ ⇥Vj pj [k, ]fj 1 [ ]. ⇤ k ⇥ Hj, j,k = ⇥j 1,k ⇥ ⇥Vj pj [k, ⇤]⇥j 1, , ⇤ ⇤ ⇥ Vj, ⇥j, = ⇥j 1, + ⇥ k⇥Hj uj [⇤, k] j,k, E ect on basis functions:
  20. Imposing Vanishing Moments 21 ⇤ k ⇥ Hj, j,k =

    ⇥j 1,k ⇥ ⇥Vj pj [k, ⇤]⇥j 1, , ⇤ ⇤ ⇥ Vj, ⇥j, = ⇥j 1, + ⇥ k⇥Hj uj [⇤, k] j,k, Sampling locations: ⇤ ⇥ VL, x = (X , Y , Z ) ⇥ S R3. Polynomials: s (x ) = xs = (X )s1 (Y )s2 (Z )s3 . Imposing vanishing moments: ⇥ ⇤ Vj, ⇤ s, ⇥j, ⌅ = s [⇤], ⇥ k Hj, ⇤ s, j, ⌅ = 0, (⇥j, , j, ) k, have VM ⇥ ⇤ ⌅ s ⇤ S, Pj Vj s = Hj s , Uj T Vj s + Pj T Hj s ⇥ = Hj s . If (⇥j 1, , j 1, ) k, have vanishing moments: where A s 2(A) is the restriction of s to A.
  21. wavelets bases. All these predictors have one vanishing moment since

    they satisfy Pj 1Hj = 1Vj . In order to ensure that the dual wavelets have one vanishing moment, the update operator depends on the direct neighbors in Hj of each point in Vj ⌅ ✏ ⇤ Vj, V = { (✏, ✏⇥) \ (✏, ✏⇥) ⇤ Ej } . One wants looks for a valid update operator in the following form ⌅ h ⇤ ✏2(Hj ), ⌅ ✏ ⇤ Vj, (Ujh)[✏] = ⇥ k⇤V⇥ h[k], (3.12) where each ⇥ should be fixed in order for condition (3.11) to be satisfied. In an semi-regular triangulation, |V | = 6 except maybe for some points in the coarse grid ⇤ V0 . In this setting, the values of ⇥ can be computed by a recursion through the scales. In an ideal triangulation where |V | = 6 for all ✏, one can use a constant weight ⇥ = ⇥. For the pecial case of the butterfly wavelets, Pj T1Hj = 3 ⇥ 1Vj and Uj T1Vj = 6⇥1Hj , so setting ⇥ = 1/24 olves equation (3.11). Figure 3.8 shows examples of butterfly wavelets on a planar semi-regular riangulation. Examples of Update Operators 22 ⇥ h ⇥2(Hj ), ⇥ ⇥ Vj, (Ujh)[⇥] = (h[v1 k ] + h[v2 k ]), Update operators: On a regular triangulation: |V | = 6, = . Pj T1Hj = 3 1Vj , Uj T1Vj = 6 1Hj =⇥ = 1/24. Pj 1 = 1. 1/2 1/2 1/2 1/2 1/16 1/16 1/16 1/16 3/8 3/8 1/8 1/8 Linear Loop Butterfly ˜ 1,k ˜ 2,k ˜ 3,k
  22. Function on Meshes Approximation 23 100% 10% 5% 2% Figure

    3.9: Non-linear wavelet mesh compression with a decreasing number of coe cients. 100% 10% 5% 2% Function f ⇥ 2(VJ ) Rn. Decomposition : f = L<j 0 k Hj f, j,k ⇥ ˜ j,k where IT = (j, k) \ k Hj and |⇥f, j,k ⇤| > T| supp( j,k )| 1/2 ⇥ . Approximation : fM = (j,k) IT f, j,k ⇥ ˜ j,k, M = #IT
  23. 3D Mesh Compression 24 wavelet in order to approximately normalize

    the wavelets in ⇤2(VL ) norm. Figure 3.9 shows an example of compression of the position of a vertex in 3D spaces as 3 functions defined on a semi-regular mesh. Figure 3.10 shows an example of compression of a spherical texture map which is a single function defined at each vertex of a semi-regular mesh obtained by subdividing an icosaedron. 100% 10% 5% 2% Sampling locations: ⇤ ⇥ VL, x = (X , Y , Z ) ⇥ S R3.