CS468, Wed Nov 9 th 2005 Mesh-Based Inverse Kinematics R. W. Sumner, M. Zwicker, C. Gotsman, J. Popović SIGGRAPH 2005
The problem 1
General approach Learn from experience... 2
As-rigid-as-possible shape interpolation [ACL00] 3
Outline Related work Overview of the method The method step by step Numerics Experiments 4
Related work Subdivision [ZSS97, KCVS98, KBS00, GSS99] 5
Related work Skeleton-based kinematics [JT05, ASKTR05] 6
Relation to mesh editing Inverse kinematics coating transfer mesh transplanting 7
Related work Intrinsic mesh editing methods Laplacian (or differential) coordinates [SLCARS04] 8
Overview of the method Let M 0,, M k be the input meshes (M 0 is the reference mesh). 1. map each transformation T i (i 1) to a feature vector f i R 9m, where m is the number of triangles of the base mesh 2. define the space Σ of admissible transformations as the span of the {f i } i 1 3. given a set of specified vertex positions v 1,, v l, find a feature vector f close to Σ that maps each constrained vertex v j to a point close to its specified position v j 9
Feature vectors from [SP04] Given i 1, f i encodes the deformation gradients of the piecewise affine map from M 0 to M i For the j th triangle of M 0, let φ j be the affine transformation that maps linear (3x3 matrix) the triangle onto its image in M i : p R 3, φ j := T j p + t j translation vector only the gradient of φ j is encoded: Dφ j (p) = T j to make T j unique, a 4 th vertex is added to the j th triangle, along the normal direction v 1 v 3 v 4 v 2 v 3 v 4 φ j v 1 v 2 10
Feature vectors Given i 1, f i encodes the deformation gradients of the piecewise affine map from M 0 to M i For the j th triangle of M 0, let φ j be the affine transformation that maps linear (3x3 matrix) the triangle onto its image in M i : p R 3, φ j := T j p + t j translation vector only the gradient of φ j is encoded: Dφ j (p) = T j to make T j unique, a 4 th vertex is added to the j th triangle, along the normal direction T j = [v 1 v 4, v 2 v 4, v 3 v 4 ] [ v 1 v 4, v 2 v 4, v 3 v 4 ] 1 t j = v 4 T j v 4 10
Feature vectors Given i 1, f i encodes the deformation gradients of the piecewise affine map from M 0 to M i For the j th triangle of M 0, let φ j be the affine transformation that maps linear (3x3 matrix) the triangle onto its image in M i : p R 3, φ j := T j p + t j translation vector only the gradient of φ j is encoded: Dφ j (p) = T j to make T j unique, a 4 th vertex is added to the j th triangle, along the normal direction T j = [v 1 v 4, v 2 v 4, v 3 v 4 ] [ v 1 v 4, v 2 v 4, v 3 v 4 ] 1 t j = v 4 T j v 4 10
Feature vectors Given i 1, f i encodes the deformation gradients of the piecewise affine map from M 0 to M i (3 3) T j = [v 1 v 4, v 2 v 4, v 3 v 4 ] [ v 1 v 4, v 2 v 4, v 3 v 4 ] 1 linear in v 1, v 2, v 3, v 4 11
Feature vectors Given i 1, f i encodes the deformation gradients of the piecewise affine map from M 0 to M i (3 3) T j = [v 1 v 4, v 2 v 4, v 3 v 4 ] [ v 1 v 4, v 2 v 4, v 3 v 4 ] 1 G j := T j := G j x T j x T j y T j z G j y G j z linear in v 1, v 2, v 3, v 4 f i j := T j x T T j y T T j z T R 9 (9 12) = G j v 1 x. v 4 x v 1 y. v 4 y v 1 z. v 4 z R 12 11
Feature vectors Given i 1, f i encodes the deformation gradients of the piecewise affine map from M 0 to M i (3 3) T j = [v 1 v 4, v 2 v 4, v 3 v 4 ] [ v 1 v 4, v 2 v 4, v 3 v 4 ] 1 f i := G := f i 1. f i m G x G y = G v G z linear in v 1, v 2, v 3, v 4 f i j := T j x T T j y T T j z T R 9 (9 12) = G j v 1 x. v 4 x v 1 y. v 4 y v 1 z. v 4 z R 12 11
Feature vectors Given i 1, f i encodes the deformation gradients of the piecewise affine map from M 0 to M i (3 3) T j = [v 1 v 4, v 2 v 4, v 3 v 4 ] [ v 1 v 4, v 2 v 4, v 3 v 4 ] 1 f i := R 9m G := f i 1. f i m G x linear in v 1, v 2, v 3, v 4 R 3(n+m) = G v (9m 3(n + m)) G y G z (3m (n + m)) f i j := T j x T T j y T T j z T R 9 (9 12) = G j v 1 x. v 4 x v 1 y. v 4 y v 1 z. v 4 z R 12 11
Feature vectors Inverse transformation f = G v R 3(n+m) R 9m (9m 3(n + m)) v = G 1 f 12
Feature vectors Inverse transformation f = G v R 3(n+m) R 9m (9m 3(n + m)) v = G 1 f 9m > 3(n + m) G is not a square matrix To a feature vector f R 9m corresponds 1 tranformed mesh (up to translation) By fixing one vertex, one reduces the dim. to zero 12
Feature vectors Inverse transformation f = G v R 3(n+m) R 9m (9m 3(n + m)) v = G 1 f 9m > 3(n + m) G is not a square matrix To a feature vector f R 9m corresponds 1 tranformed mesh (up to translation) By fixing one vertex, one reduces the dim. to zero If too many constraints (or imprecisions), the set of solutions can be empty least squares problem: v = arg min v G v f most plausible positions 12
Linear feature space Σ := Span(f 1,, f k ) To every vector w of coordinates in the basis a feature vector f w = i w i f i R 9m ( f 1,, f k) corresponds Once one or more vertex positions are set, compute v, w = arg min G v (f 1,, f k ) w v,w 13
Linear feature space Σ := Span(f 1,, f k ) To every vector w of coordinates in the basis a feature vector f w = i w i f i R 9m ( f 1,, f k) corresponds Once one or more vertex positions are set, compute v, w = arg min G v (f 1,, f k ) w v,w To penalize solutions that are far from the f i, take the mean f of the f i as the origin: f w = f + k i=1 w i f i and compute: v, w = arg min v,w G v f ( f 1,, f k ) w + α w 13
Linear feature space 14
Linear feature space f ( 1 3, 2 3 ) f 1 f 2 14
Nonlinear feature space For each triangle j of M 0, separate the rotational component from the scale and shear components of T j by polar decomposition: T j := R j S j Interpolate the S i j linearly, but the T i j by composition: T i j (w) := k R i j w i k w i S i j R 2 θ = R 2θ i=1 i=1 15
Nonlinear feature space For each triangle j of M 0, separate the rotational component from the scale and shear components of T j by polar decomposition: T j := R j S j Interpolate the S i j linearly, but the T i j by composition: T i j (w) := k R i j w i k w i S i j R 2 θ = R 2θ i=1 i=1 For non-integer w i, use the exponential map: ( k ) Tj i (w) := exp w i log Rj i i=1 k w i Sj i i=1 15
Nonlinear feature space For each triangle j of M 0, separate the rotational component from the scale and shear components of T j by polar decomposition: T j := R j S j Interpolate the S i j linearly, but the T i j by composition: T i j (w) := k R i j w i k w i S i j R 2 θ = R 2θ i=1 i=1 For non-integer w i, use the exponential map: ( k ) Tj i (w) := exp w i log Rj i i=1 k w i Sj i i=1 To retrieve v, w, solve the following least squares problem: v, w = arg min v,w G v f w non-linear ( ) 15
scale/shear Nonlinear feature space linear interpolation exponential map rotational 16
Numerics To solve ( ), use Gauss-Newton algorithm reduces ( ) to solving a linear least squares problem at each iteration of the algorithm ( 6 iterations in practice) To accelerate the resolution of the linear least squares problem, use Cholesky decomposition see details in the paper 17
Experimental results one iteration Cholesky Pentium IV @ 3.4 GHz 2GB RAM 18
Conclusion MeshIK is an easy-to-use mesh manipulation tool, based on an intuitive interface the algorithm adapts to each model by learning from example meshes the method is effective in practice and provides interactive timings What about meshes of genus > 0? Try other feature spaces, to enhance the feature interpolation Try other numerical techniques, to enhance speed 19