Deformation Transfer for Triangle Meshes

Report 9 Downloads 138 Views
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