Large Mesh Deformation Using the Volumetric Graph Laplacian
Kun Zhou1 Jin Huang2∗ John Snyder3 Xinguo Liu1 Hujun Bao2 Baining Guo1 Heung-Yeung Shum1
1 Microsoft Research Asia 2 Zhejiang University 3 Microsoft Research
Large Mesh Deformation Using the Volumetric Graph Laplacian Kun Zhou - - PowerPoint PPT Presentation
Large Mesh Deformation Using the Volumetric Graph Laplacian Kun Zhou 1 Jin Huang 2 John Snyder 3 Xinguo Liu 1 Hujun Bao 2 Baining Guo 1 Heung-Yeung Shum 1 1 Microsoft Research Asia 2 Zhejiang University 3 Microsoft Research Presented by
1 Microsoft Research Asia 2 Zhejiang University 3 Microsoft Research
11/21/2007 Bhaskar Kishore 2
11/21/2007 Bhaskar Kishore 3
11/21/2007 Bhaskar Kishore 4
– Unnatural volume
– Local Self Intersection
11/21/2007 Bhaskar Kishore 5
– Represent volumetric details as difference between
– Produces visually pleasing deformation results – Preserves surface details
11/21/2007 Bhaskar Kishore 6
– Represent volumetric details as difference between
– Produces visually pleasing deformation results – Preserves surface details
11/21/2007 Bhaskar Kishore 7
– Construct a volumetric graph which includes
– Points are connected by graph edges which are a
11/21/2007 Bhaskar Kishore 8
– Minimum maps the points to their specified
– While preserving surface detail and roughly volume
11/21/2007 Bhaskar Kishore 9
– Demonstrate that problem of large deformation can
– That a volumetric operator can be applied to the
11/21/2007 Bhaskar Kishore 10
11/21/2007 Bhaskar Kishore 11
11/21/2007 Bhaskar Kishore 12
11/21/2007 Bhaskar Kishore 13
– V = {pi ϵ R3 | 1≤ i ≤ n}, is a set of n point position – K is a abstract simplicial complex containing three
11/21/2007 Bhaskar Kishore 14
– P {pi ϵ R3 | 1≤ i ≤ N}, is a set of N point positions – E = {(i,j) | pi is connected to pj}
where N (i) = { j |{i, j} ∈ E}
11/21/2007 Bhaskar Kishore 15
– User inputs deformed positions qi, i ∈ { 1, ..., m} for
– Compute a new (deformed) laplacian coordinate δ'i
– Deformed positions of the mesh vertices p'i is
11/21/2007 Bhaskar Kishore 16
11/21/2007 Bhaskar Kishore 17
11/21/2007 Bhaskar Kishore 18
– Difficult to implement – Computationally expensive – Produces poorly shaped tetrahedra for complex
11/21/2007 Bhaskar Kishore 19
– Difficult to implement – Computationally expensive – Produces poorly shaped tetrahedra for complex
11/21/2007 Bhaskar Kishore 20
– Construct inner shell Min for mesh M by offsetting
– Embed Min and M in a body-centered cubic lattice.
– Build edge connections among M, Min, and lattice
– Simplify the graph using edge collapse and smooth
11/21/2007 Bhaskar Kishore 21
11/21/2007 Bhaskar Kishore 22
11/21/2007 Bhaskar Kishore 23
11/21/2007 Bhaskar Kishore 24
11/21/2007 Bhaskar Kishore 25
11/21/2007 Bhaskar Kishore 26
– Use iterative method based on simplification
11/21/2007 Bhaskar Kishore 27
– At each iteration
11/21/2007 Bhaskar Kishore 28
– At each iteration
11/21/2007 Bhaskar Kishore 29
– Consists of nodes at every point of a Cartesian grid – Additionally there are nodes at cell centers – Node locations may be viewed as belong to two
– This lattice provides desirable rigidity properties as
– Grid interval set to average edge length
11/21/2007 Bhaskar Kishore 30
– Each vertex in M is connected to its corresponding
– Each inner node of the BCC lattice is connected with its
– Connections are made between Min and nodes of the
11/21/2007 Bhaskar Kishore 31
– Each vertex in M is connected to its corresponding
– Each inner node of the BCC lattice is connected with its
– Connections are made between Min and nodes of the
11/21/2007 Bhaskar Kishore 32
– Visit graph in increasing order of length – If length of an edge is less than a threshold,
– Apply iterative smoothing
– No smoothing or simplification are applied to the
11/21/2007 Bhaskar Kishore 33
– They claim it does not cause any difficulty in our
11/21/2007 Bhaskar Kishore 34
Where the first n points in graph G belong the mesh M
– G' is a sub-graph of G formed by removing those edges belonging
– δ ′i (1 ≤ i ≤ N) in G' are the graph laplcians coordinates in the
– For points in the original mesh M, ε' (1 ≤ i ≤ n) are the mesh
11/21/2007 Bhaskar Kishore 35
– The n/N factor normalizes the weight so that it is
– β' = 1 works well – α is not normalized – We want constraint strength to
11/21/2007 Bhaskar Kishore 36
11/21/2007 Bhaskar Kishore 37
11/21/2007 Bhaskar Kishore 38
11/21/2007 Bhaskar Kishore 39
– Computed at each curve vertex as the ratio of the
– It is then defined continuously over u by liner
11/21/2007 Bhaskar Kishore 40
– Constant – Linear – Gaussian – Based on shortest edge path from p to the curve
11/21/2007 Bhaskar Kishore 41
– Computing a normal and tangent vector as the
– Normal is computed as a linear combination
– Rotation is represented as a quaternion
11/21/2007 Bhaskar Kishore 42
11/21/2007 Bhaskar Kishore 43
11/21/2007 Bhaskar Kishore 44
11/21/2007 Bhaskar Kishore 45
11/21/2007 Bhaskar Kishore 46
– The first term generates Laplacian coordinates of smallest magnitude – Second term is based on scale dependent umbrella operator which
prefers weight in proportion to inverse of edge length
– Lamba balances the two objects (set to 0.01) – Zeta prevents small weights (set to 0.01)
11/21/2007 Bhaskar Kishore 47
11/21/2007 Bhaskar Kishore 48
– Above equations represent a sparse linear system Ax = b – Matrix A is only dependent on the original graph and A- can be
precomputed using LU decomposition
– B depends on current Laplacian coordinates and changes during
interactive deformation
11/21/2007 Bhaskar Kishore 49
11/21/2007 Bhaskar Kishore 50
11/21/2007 Bhaskar Kishore 51
– User defines control curve by selecting sequence
– This 3D curve is projected onto one or more planes – Editing is done in these planes – The deformed curve is projected back into 3D,
11/21/2007 Bhaskar Kishore 52
– Given a curve, the system automatically selects projection
– Principal vectors are computed as the two eigen vectors
– In most cases, cross product of the average normal and the
– If length of average normal vector is small, then use only two
11/21/2007 Bhaskar Kishore 53
– Projected 2D curves inherit geometric detail from original
– They use an editing method for discrete curves base on
– Laplacian coordinate of a curve vertex is the difference
– Denote the 2D curve to be edited as C – A cubic B-Spline curve Cb is first computed as a least
11/21/2007 Bhaskar Kishore 54
– A discrete version of Cb , Cd is computed by mapping each
– We can not edit the discrete version conveniently – After editing we obtain C'b and C'd . These curves lack the
– To restore detail, at each vertex of C we find a the unique
– Applying these transformations to the Laplacian coordinates
11/21/2007 Bhaskar Kishore 55
– An application of 2D sketch based deformation – Users specify one or more 3D control curves on the mesh along
– It is not necessary to generate a deformation from scratch at
– Automatic interpolation technique based on differential
11/21/2007 Bhaskar Kishore 56
– Say we have two meshes M and M' at two different key frames – Compute the Laplacian coordinates for each vertex in the two
– A rotation and scale in the local neighborhood of each vertex p is
– Denote the transform as Tp. Interpolate Tp over time to transition
– 2D cartoon curves are deformed in a single plane, this allows for
11/21/2007 Bhaskar Kishore 57
11/21/2007 Bhaskar Kishore 58
11/21/2007 Bhaskar Kishore 59
11/21/2007 Bhaskar Kishore 60
11/21/2007 Bhaskar Kishore 61
11/21/2007 Bhaskar Kishore 62
11/21/2007 Bhaskar Kishore 63
11/21/2007 Bhaskar Kishore 64