Overview
Deformation Transfer for Triangle Meshes
Robert W. Sumner
Jovan Popović Popović
Mesh deformation plays a central role in computer modeling and animation Constructing complex deformations is a timetimeconsuming process Very few techniques to help with reuse – Special purpose methods do exist – Techniques usually fail when multiple deformation techniques used simultaneously
Presented by Ryan Braud
Deformation Transfer
Similar to…
“Image Analogies” Analogies” by A. Hertzmann, Hertzmann, et al.
Given source mesh and deformation, apply the deformation to a target mesh
Deformation Transfer
Compute a set of transformations induced by deformation on source mesh Map transformations from source polygons to target polygons Solve an optimization problem to consistently apply the transformations to the target mesh
Toy Example
Given source mesh, deformed source mesh, and target mesh, compute deformed target mesh Source Mesh
Deformed Source Mesh
Target Mesh
Deformed Target Mesh
?
1
Details
Transformation Details
Represent source deformation as series of affine transformations Q d, one per triangle – Q is a 3 x 3 matrix, d is translation Source Mesh
Deformed Source Mesh
Triangle vertices alone do not fully determine affine transformation In two dimensions, need two linearly independent vectors to form a new basis y
p1
Q
y’
p1’ ? p1’ ?
x
x’
In three dimensions, need three vectors
Q d
Computing Q
Need a 4th vertex per triangle to uniquely determine Q Compute 4th undeformed vertex as
v4 v1 v2 v1
v 3 v1 v4
v1
Computing Q
v2 v1
v3 v 1
v3
Given the undeformed (v i ) and deformed (v ) vertices for each triangle, what is Q? i For i 1 4 we know:
Subtract the first equation from the others:
Let V
Therefore QV V, or Q V V
Qvi d v i
Q vi v1
v2
Note: v4 is not coco-planar with v1, v2, and v3
Polygon Correspondence
Once we can compute the source deformation, then what?
Need to relate the polygons in the target mesh with those in the source mesh
v i v 1 for i 2 4 v 2 v1 v3 v1 v4 v1 V v 2 v1 v3 v1 v4 v1
Polygon Correspondence
Source Mesh
Define a mapping from source triangles to target triangles:
M M Target Mesh
1
s1, t 1 , s 2, t 2 ,
, sM ,tM
A pair s i , t i indicates target triangle ti should deform like source triangle si M can be an arbitrary mapping, but must contain every source and target polygon
2
Polygon Correspondence
ManyMany-toto-one and oneone-toto-many correspondences are possible
First Approach
Source Mesh
Transfer the source transformations via the correspondence map to the target Apply nonnon-translational portion Q of each source affine transformation using M
Target Mesh
Second Approach
Use source displacement vectors as well as
Q
Final Approach
Adding Constraints
Shared vertices must be transformed to the same place:
T j vi d j T k vi dk ,
i,
j ,k p vi
Enforce vertex consistency requirements by solving optimization problem
Adding Constraints
Define unknown target transformations in terms of the triangles’ triangles’ vertices Let T be a target transformation
1 – Recall T V V 1 V – - depends on known undeformed target vertices – V - coordinates of unknown deformed vertices Note: elements of T are linear
combinations of coordinates of unknown deformed vertices
3
Finding Transformed Vertices
Want to minimize the difference between nonnontranslational components of the source and target deformations
Finding Transformed Vertices
Rewrite minimization equation: min v1 v n
sj – index of source transformation for correspondence entry j tj – index of target transformation for correspondence entry j
M
Ss
j
Vt V t1 j
j
2 F
j 1
Minimization is over deformed vertices themselves Continuity constraints implicitly satisfied by solving for deformed vertex positions directly
Ss – source transformation for correspondence entry j j
Tt – target transformation for correspondence entry j j
Matrix Formulation
Solution to optimization problem is a solution to a system of linear equations: min c A x v1 v n
2
x - vector of unknown deformed vertices
c - entries from source transformations A - matrix relating x to c
T
Correspondence Revisited
Solve in the least squares sense (pseudoinverse): pseudoinverse): T
A Ax A c T 1 T x A A A c
2
Matrix Formulation
Correspondence Revisited
So, how do we compute M anyways? Could define it by hand, one polygon at a time – This is too tedious
Instead, let user select a few control points and “learn” learn” the rest Solve a minimization problem that attempts to deform the source mesh into the target mesh Iterate the deformation, refining the process
A – target mesh B – source mesh C – source mesh after first phase of deformation D – final deformed mesh
4
Results
Results
Questions?
5