Blend Shape – The problem Problem: From (two or more) input images, generate interpolated images input: A, B => “(1-t)A + tB”: output Input Output t=0.5
Michael Jackson “Black or White” Movie: Terminator 2 、 Forest Gump… Creating new industrial design Video compression, High framerate TV Adobe Photoshop/After effects Puppet Warp Where is it used ? Igarashi et al. 2005 Beier and Neely 1992
Construct a series of homeos indexed by t ∈ R f t : R 2 → R 2 t ∈ R Blend Shape – basic idea input: A, B => “(1-t)A + tB”: output It usually requires additional input which should be given manually. (ex. the arrows in the picture) It usually requires additional input which should be given manually. (ex. the arrows in the picture)
Simplicial complex In CG, the most basic representation of geometric object is (triangulated) polyhedron, i.e., simplicial complex 2D 3D3D 3D3D
Simplicial complex More precisely, ・ Abstract simplicial complex (= set of tetrahedra) ・ Piecewise Linear (PL) embedding (= vertex positions in R n )
Instead of considering objects themselves, ・ Consider embeddings from a (reference) simplicial complex ・ And find a “suitable” path in the space of embeddings Paraphrase of blend shape fAfA fAfA fBfB fBfB f A/2+B/2
Our algorithm Based on Joint works with K. Anjyo, S. Hirose, H. Ochiai and K. Anjyo, S. Hirose, Y. Mizoguchi, S.Sakata
Our strategy is divided into three steps 1.Express input shapes by PL-maps from a reference simplicial complex For each t ∈ R; 2.Construct interpolated affine maps independently for each simplex 3.Assemble those maps into a global PL-immersion Workflow Problem From given input shapes, generate interpolated shapes input: A, B => “(1-t)A + tB”: output
1. Isomorphic subdivision Fact: Homeo PL-isomorphic (dimension ≦ 3) There are algorithms to give an explicit isomorphism. But none of them is perfect. This is still an open problem in computational geometry. Sub problem Given homeomorphic simplicial complexes, subdivided them to make combinatorially isomorphic We simply rely on existing methods here 1-to-1
fAfA fAfA fBfB fBfB H 1/2 HtHt HtHt Assume we have PL-embeddings f A, f B of a reference simplicial complex to the shapes to be blended. We want to find a homotopy H t connecting f A and f B. Assume we have PL-embeddings f A, f B of a reference simplicial complex to the shapes to be blended. We want to find a homotopy H t connecting f A and f B.
Sub problem For each simplex, construct a time varying series of interpolated affine maps, which preserve geometry locally. First, we consider simplex-wisely 2. Local construction
More precisely, 2. Local construction Sub problem Given two affine maps X and Y, generate a blended affine map A t := “(1-t)X + tY” The first guess for the answer would be simply the linear combination of X and Y, but it produces bad results. undesirable desirable
The second guess would be using Lie correspondence 2. Local construction The above map is almost bijective and its continuous inverse ψ can be computed. Lie algebra Lie group But the problem is the group of affine transformations is not compact. Based on the Cartan decomposition, we have the following surjection, which meets our need.
Now we can blend affine maps linearly in the parameter space Key points: ・ is not surjective ・ There is an explicit and fast computation algorithm for φ, ψ ・ The blended map has geometric meaning: for example, the interpolated map stays as close as Euclidean motion (In the sense of Frobenius norm) 2. Local construction Nice both geometrically and computationally !
Sub problem Assemble the locally constructed affine maps into a global PL-map 3. Patching local maps Local to Global It is done by finding the minimum of a certain energy functional on the space of PL-immersions.
The energy functional Key points: * It measures the difference between the PL-map and the locally constructed maps up to PL-conformal equivalence * The minimizer is unique (modulo linear conformal equivalence) and varies smoothly with regard to t Invariant under conformal transformation Users can easily direct the result by adding some terms to it : the simplex-wisely blended affine map
Visual consequence Left and center: user defined constraints Right: effect of PL-conformal invariance Left and center: user defined constraints Right: effect of PL-conformal invariance Energy w/o invariance Energy w/ invariance Trajectory of a point Is specified by user
Applications input: A, B, C, D… => “sA + tB + uC + vD + …”: output Our algorithm directly generalizes to more than two inputs Furthermore, nice properties of our linear parametrization of the affine transformation group allow various applications ・ shape deformer (addition/scalar product) ・ Inverse kinematics (calculus/differential equation) ・ Motion analysis/compression using PCA/ICA (linear algebra)
Demo Three shapes are blended according to weights. Weights are specified by user through the “ball controller”
Target shape (dino) is deformed according to user’s operation on the yellow cage. Demo
Shapes are deformed according to user manipulated handles (invisible) Demo
There will be a conference on “Math for CG” in October Google “MEIS2013” for detail Advertisement