Mesh-Based Inverse Kinematics
- R. W. Sumner, M. Zwicker, C. Gotsman, J. Popovi´
c
CS468, Wed Nov 9th 2005
SIGGRAPH 2005
Mesh-Based Inverse Kinematics R. W. Sumner, M. Zwicker, C. Gotsman, - - PowerPoint PPT Presentation
CS468, Wed Nov 9th 2005 Mesh-Based Inverse Kinematics R. W. Sumner, M. Zwicker, C. Gotsman, J. Popovi c SIGGRAPH 2005 The problem 1 Mesh-Based Inverse Kinematics R. W. Sumner, M. Zwicker, C. Gotsman, J. Popovi c General approach
c
CS468, Wed Nov 9th 2005
SIGGRAPH 2005
Mesh-Based Inverse Kinematics — R. W. Sumner, M. Zwicker, C. Gotsman, J. Popovi´ c
1
Mesh-Based Inverse Kinematics — R. W. Sumner, M. Zwicker, C. Gotsman, J. Popovi´ c
2 Learn from experience...
3
[ACL00]
4
Mesh-Based Inverse Kinematics — R. W. Sumner, M. Zwicker, C. Gotsman, J. Popovi´ c
Mesh-Based Inverse Kinematics — R. W. Sumner, M. Zwicker, C. Gotsman, J. Popovi´ c
5
Subdivision
[ZSS97, KCVS98, KBS00, GSS99]
Mesh-Based Inverse Kinematics — R. W. Sumner, M. Zwicker, C. Gotsman, J. Popovi´ c
6
Skeleton-based kinematics
[JT05, ASKTR05]
7
Mesh-Based Inverse Kinematics — R. W. Sumner, M. Zwicker, C. Gotsman, J. Popovi´ c
Inverse kinematics coating transfer mesh transplanting
8
Intrinsic mesh editing methods
Mesh-Based Inverse Kinematics — R. W. Sumner, M. Zwicker, C. Gotsman, J. Popovi´ c
Laplacian (or differential) coordinates
[SLCARS04]
Mesh-Based Inverse Kinematics — R. W. Sumner, M. Zwicker, C. Gotsman, J. Popovi´ c
Let M0, · · · , Mk be the input meshes (M0 is the reference mesh).
where m is the number of triangles of the base mesh
the {fi}i≥1
vector f close to Σ that maps each constrained vertex ¯ vj to a point close to its specified position vj
9
Given i ≥ 1, fi encodes the deformation gradients of the piecewise affine map from M0 to Mi
10
Mesh-Based Inverse Kinematics — R. W. Sumner, M. Zwicker, C. Gotsman, J. Popovi´ c
For the jth triangle of M0, let φj be the affine transformation that maps the triangle onto its image in Mi: ∀p ∈ R3, φj := Tj p + tj
linear (3x3 matrix) translation vector
the normal direction
¯ v1 ¯ v2 ¯ v3 ¯ v4 v1 v2 v3 v4
φj
from [SP04]
Given i ≥ 1, fi encodes the deformation gradients of the piecewise affine map from M0 to Mi
10
Mesh-Based Inverse Kinematics — R. W. Sumner, M. Zwicker, C. Gotsman, J. Popovi´ c
For the jth triangle of M0, let φj be the affine transformation that maps the triangle onto its image in Mi: ∀p ∈ R3, φj := Tj p + tj
linear (3x3 matrix) translation vector
the normal direction Tj = [v1 − v4, v2 − v4, v3 − v4] · [¯ v1 − ¯ v4, ¯ v2 − ¯ v4, ¯ v3 − ¯ v4]−1 tj = v4 − Tj ¯ v4
Given i ≥ 1, fi encodes the deformation gradients of the piecewise affine map from M0 to Mi
10
Mesh-Based Inverse Kinematics — R. W. Sumner, M. Zwicker, C. Gotsman, J. Popovi´ c
For the jth triangle of M0, let φj be the affine transformation that maps the triangle onto its image in Mi: ∀p ∈ R3, φj := Tj p + tj
linear (3x3 matrix) translation vector
the normal direction Tj = [v1 − v4, v2 − v4, v3 − v4] · [¯ v1 − ¯ v4, ¯ v2 − ¯ v4, ¯ v3 − ¯ v4]−1 tj = v4 − Tj ¯ v4
Given i ≥ 1, fi encodes the deformation gradients of the piecewise affine map from M0 to Mi
11
Mesh-Based Inverse Kinematics — R. W. Sumner, M. Zwicker, C. Gotsman, J. Popovi´ c
linear in v1, v2, v3, v4 (3 × 3)
Given i ≥ 1, fi encodes the deformation gradients of the piecewise affine map from M0 to Mi
11
Mesh-Based Inverse Kinematics — R. W. Sumner, M. Zwicker, C. Gotsman, J. Popovi´ c
linear in v1, v2, v3, v4 (3 × 3) fi
j :=
Tjx
T
Tjy
T
Tjz
T
= Gj v1x . . . v4x v1y . . . v4y v1z . . . v4z Tj := Tjx Tjy Tjz Gj := Gjx Gjy Gjz ∈ R9 ∈ R12 (9 × 12)
Given i ≥ 1, fi encodes the deformation gradients of the piecewise affine map from M0 to Mi
11
Mesh-Based Inverse Kinematics — R. W. Sumner, M. Zwicker, C. Gotsman, J. Popovi´ c
linear in v1, v2, v3, v4 (3 × 3) fi
j :=
Tjx
T
Tjy
T
Tjz
T
= Gj v1x . . . v4x v1y . . . v4y v1z . . . v4z ∈ R9 ∈ R12 (9 × 12) fi := f i
1
. . . f i
m
= G v G := Gx Gy Gz
Given i ≥ 1, fi encodes the deformation gradients of the piecewise affine map from M0 to Mi
11
Mesh-Based Inverse Kinematics — R. W. Sumner, M. Zwicker, C. Gotsman, J. Popovi´ c
linear in v1, v2, v3, v4 (3 × 3) fi
j :=
Tjx
T
Tjy
T
Tjz
T
= Gj v1x . . . v4x v1y . . . v4y v1z . . . v4z ∈ R9 ∈ R12 (9 × 12) fi := f i
1
. . . f i
m
= G v ∈ R9m (9m × 3(n + m)) ∈ R3(n+m) G := Gx Gy Gz (3m × (n + m))
12
∈ R9m ∈ R3(n+m)
Mesh-Based Inverse Kinematics — R. W. Sumner, M. Zwicker, C. Gotsman, J. Popovi´ c
(9m × 3(n + m))
12
∈ R9m ∈ R3(n+m)
Mesh-Based Inverse Kinematics — R. W. Sumner, M. Zwicker, C. Gotsman, J. Popovi´ c
(9m × 3(n + m))
9m > 3(n + m) ⇒ G is not a square matrix
By fixing one vertex, one reduces the dim. to zero
To a feature vector f ∈ R9m corresponds ≤ 1 tranformed mesh (up to translation)
12
∈ R9m ∈ R3(n+m)
Mesh-Based Inverse Kinematics — R. W. Sumner, M. Zwicker, C. Gotsman, J. Popovi´ c
(9m × 3(n + m))
9m > 3(n + m) ⇒ G is not a square matrix
By fixing one vertex, one reduces the dim. to zero
least squares problem: v∗ = arg min
v
G v − f
most ”plausible” positions
To a feature vector f ∈ R9m corresponds ≤ 1 tranformed mesh (up to translation) If too many constraints (or imprecisions), the set of solutions can be empty
Σ := Span(f 1, · · · , f k) To every vector w of coordinates in the basis
corresponds a feature vector fw =
i wi fi ∈ R9m
Once one or more vertex positions are set, compute v∗, w∗ = arg min
v,w
Mesh-Based Inverse Kinematics — R. W. Sumner, M. Zwicker, C. Gotsman, J. Popovi´ c
Σ := Span(f 1, · · · , f k) To every vector w of coordinates in the basis
corresponds a feature vector fw =
i wi fi ∈ R9m
Once one or more vertex positions are set, compute v∗, w∗ = arg min
v,w
f of the fi as the origin: fw = ¯ f + k
i=1 wi ¯
f
i
and compute: v∗, w∗ = arg min
v,w
f − (¯ f
1, · · · ,¯
f
k) w
13
Mesh-Based Inverse Kinematics — R. W. Sumner, M. Zwicker, C. Gotsman, J. Popovi´ c
14
Mesh-Based Inverse Kinematics — R. W. Sumner, M. Zwicker, C. Gotsman, J. Popovi´ c
14
Mesh-Based Inverse Kinematics — R. W. Sumner, M. Zwicker, C. Gotsman, J. Popovi´ c
f1 f2 f( 1
3 , 2 3 )
15
Mesh-Based Inverse Kinematics — R. W. Sumner, M. Zwicker, C. Gotsman, J. Popovi´ c
For each triangle j of M0, separate the rotational component from the scale and shear components of Tj by polar decomposition: Tj := Rj Sj Interpolate the Si
j linearly, but the T i j by composition:
”T i
j(w) := k
Ri
j wi · k
wi Si
j ”
R2
θ = R2θ
15
Mesh-Based Inverse Kinematics — R. W. Sumner, M. Zwicker, C. Gotsman, J. Popovi´ c
For each triangle j of M0, separate the rotational component from the scale and shear components of Tj by polar decomposition: Tj := Rj Sj Interpolate the Si
j linearly, but the T i j by composition:
”T i
j(w) := k
Ri
j wi · k
wi Si
j ”
R2
θ = R2θ
For non-integer wi, use the exponential map: T i
j(w) := exp
k
wi log Ri
j
k
wi Si
j
15
Mesh-Based Inverse Kinematics — R. W. Sumner, M. Zwicker, C. Gotsman, J. Popovi´ c
For each triangle j of M0, separate the rotational component from the scale and shear components of Tj by polar decomposition: Tj := Rj Sj Interpolate the Si
j linearly, but the T i j by composition:
”T i
j(w) := k
Ri
j wi · k
wi Si
j ”
R2
θ = R2θ
(∗)
non-linear
To retrieve v∗, w∗, solve the following least squares problem: v∗, w∗ = arg min
v,w G v − fw
For non-integer wi, use the exponential map: T i
j(w) := exp
k
wi log Ri
j
k
wi Si
j
16
Mesh-Based Inverse Kinematics — R. W. Sumner, M. Zwicker, C. Gotsman, J. Popovi´ c
linear interpolation exponential map scale/shear rotational
17
Mesh-Based Inverse Kinematics — R. W. Sumner, M. Zwicker, C. Gotsman, J. Popovi´ c
Cholesky decomposition see details in the paper reduces (∗) to solving a linear least squares problem at each iteration of the algorithm (∼ 6 iterations in practice)
18
Mesh-Based Inverse Kinematics — R. W. Sumner, M. Zwicker, C. Gotsman, J. Popovi´ c
Pentium IV @ 3.4 GHz 2GB RAM Cholesky
19
Mesh-Based Inverse Kinematics — R. W. Sumner, M. Zwicker, C. Gotsman, J. Popovi´ c
tuitive interface