Skeleton-Based Shape Deformation using Simplex ... - Semantic Scholar

Report 7 Downloads 92 Views
Computer Graphics International 2006

Skeleton-Based Shape Deformation using Simplex Transformations Han-Bing Yan, Shi-Min Hu and Ralph Martin

2006-6-29

Outline ƒ Motivation ƒ Introduction ƒ Mesh segmentation using skeleton ƒ Skeleton-based shape deformation ƒ Results ƒ Conclusions and future work

2006-6-29

Motivation ƒ Applications of Meshes Deformation : ¾ Animation & modelling

ƒ Traditional methods [Sederberg et al. 1986] ¾ FFD & other space warping methods

2006-6-29

Motivation ƒ Differential methods ¾ Laplacian coordinates [Alexa2003, Lipmann2004] ¾ Possion-based gradient field method [Yu2004]

2006-6-29

Motivation ƒ Skeleton-based Method (Skinning, Envelopes) ¾ Each vertex is controlled by several bones n

P ' = ∑ wk P M k k =1

¾ The final position of each vertex is a

weighted sum of the vertex position in coordinate frames fixed to moving bones ¾ Widely used in commercial software 2006-6-29

Motivation ƒ Pros and Cons of Skeleton-based Method ¾

+ Gives natural control of shape feature deformation. ƒ Animals have skeletons…

¾

- Weights must be carefully selected ƒ to retain original mesh features ƒ to avoid flipping and self-intersection

¾

- No weight selection method works well in all cases

¾

- Weight selection is a tedious manual process

2006-6-29

Motivation ƒ Traditional Skeleton-based method ¾ Does not used vertex connectivity information

directly, though mesh has provided this information.

ƒ Target of our method ¾ We want to develop a new skeleton-based

deformation method which uses vertex connectivity information directly. 2006-6-29

Our Method ƒ Key idea in our method ¾ We use skeleton to drive simplex, not vertex: ƒ Simplices contain shape connectivity information

ƒ Input ¾ Original image or shape (2D or 3D triangle

mesh), Original skeleton , Deformed skeleton

ƒ Output ¾ Deformed mesh 2006-6-29

Simplex Transformation ƒ Simplex Transformation ¾ There exists a unique transformation

between two (triangles, tetrahedra) in (2D, 3D) vi = Rui + T R = VU −1 V = [v1 − v3

v2 − v3 ]

V = [v1 − v4

v2 − v4

v3 − v4 ]

U = [u1 − u3

u 2 − u3 ]

U = [u1 − u4

u2 − u4

u3 − u 4 ]

2D 2006-6-29

3D

Main Steps ƒ Steps ¾ Segment mesh using skeleton ƒ i.e. allocate each simplex to a controlling bone

¾ Calculate transformation matrix for each bone ¾ Ensure connectivity between final simplices

while keeping the transformation for each simplex as close as possible to that of its controlling bone 2006-6-29

Mesh Segmentation ƒ Aim ¾ Decide which bone controls each triangle ƒ Each triangle is controlled by one bone

¾ This is a segmentation problem

ƒ Two possible approaches ¾ Using Euclidean distance between bone and

triangle ¾ Using the shortest path distance on mesh

between bone and triangle 2006-6-29

Mesh Segmentation ƒ We show some results first

2D

2006-6-29

3D

Mesh Segmentation ƒ Define the control domain of each bone using Range lines(2D), Range planes(3D)

2D 2006-6-29

3D

Mesh Segmentation ƒ Each vertex is in the control domain of at least one bone ƒ One vertex maybe in the control domain of several bones ƒ Effective Distance: d eff ƒ Effective Distance with Penalty: d effpen = d eff + nδ 2006-6-29

Mesh Segmentation ƒ If min d effpen < δ , the bone with minimal Effective Distance with Penalty is the control bone of this triangle ƒ Otherwise, calculate the shortest path distance from the triangle center to the two joints of this bone. The bone with the minimal shortest path distance is the control bone of this triangle. 2006-6-29

Transformation Matrix of Bones ƒ Without scaling:

2D

⎡cos θ R' = ⎢ ⎣ sin θ

(

3D

2006-6-29

)

⎡ a 2 + b 2 + c 2 cos θ ⎢ R ' = ⎢ab(1 − cos θ ) − c sin θ ⎢ac(1 − cos θ ) + b sin θ ⎣

− sin θ ⎤ cos θ ⎥⎦

ab(1 − cos θ ) + c sin θ

(

)

b + a + c cos θ 2

2

2

bc(1 − cos θ ) − a sin θ

ac(1 − cos θ ) − b sin θ ⎤ ⎥ bc(1 − cos θ ) + a sin θ ⎥ c 2 + a 2 + b 2 cos θ ⎥⎦

(

)

Transformation Matrix of Bones ƒ Also allowing scaling of bones ¾ Rotate the bone to the x axis, scale it along

the x axis, then rotate it back. S ' = RS 2 SRS 1 ¾ The transformation matrix of a bone is the

product of a rotation matrix and a scaling matrix. M ' = S ' R'

ƒ Translation vector of bones 2006-6-29

Simplices in 3D ƒ 2D Triangle Mesh ¾ Simplices used are triangles themselves

ƒ 3D Triangle Mesh ¾ One vertex needs to be added to each

triangle to create a simplex

( v1 + v2 + v3 ) (v2 − v1 )× (v3 − v2 ) v4 = + 3 (v2 − v1 )× (v3 − v2 ) 2006-6-29

Optimization ƒ We want to use the bone’s transformation matrix for the simplices it controls ¾ Problem: if every simplex uses the same

transform as its controlling bone, there will be gaps between adjacent simplices which belong to different bones

ƒ Solution ¾ Let the simplices transform as much as

possible like its controlling bone while enforcing vertex connectivity requirements 2006-6-29

Optimization ƒ We optimise an error energy function n

E = ∑ Ai M i − M i =1

' 2 i F

¾ The variables are the vertex coordinates

of the deformed mesh

ƒ By minimizing the error energy function, we get a result which ¾ Keep vertex connectivity requirements ¾ follows the bones as much as possible 2006-6-29

Optimization ƒ Linear Equation Solver ¾ This quadratic optimization problem can be

easily transformed to a linear system KV = d ¾ V is the unknown vector of vertex

coordinates ¾ The x, y (and z in 3D) coordinates form

separate linear subsytems KY = d y KX = d x KZ = d z 2006-6-29

Results ƒ 2D

(a)

2006-6-29

(b)

(c)

(d)

Results ƒ 3D

2006-6-29

Results ƒ 3D

2006-6-29

Results ƒ 3D

2006-6-29

Extensions of this paper ƒ Small issue with this method ¾ At least one vertex must be fixed to avoid a

matrix singularity ƒ Different choice of fixed vertex will result in a different position for the deformed mesh ƒ but it has the same shape

ƒ Solution ¾ Include the translation vector in the Error

Energy Function 2006-6-29

Extensions of this paper ƒ New Error Energy Function n

(

E = ∑ Ai R − R' F + β T − T ' 2 i =1

2

2

)

¾ No vertex needs to be fixed, and the

deformed mesh moves with the skeleton.

(a) 2006-6-29

(b)

(c)

Extensions of this paper ƒ Twist ¾ The above method is very easily to extend to

twist the mesh using bones or line segments.

2006-6-29

Extensions of this paper ƒ Vertex constraint ¾ Even we can deform the mesh without using

skeleton, just using control vertices

2006-6-29

Conclusion ƒ Pros and Cons ¾

+ Uses skeleton to drive simplices, not vertices ƒ offering easy control ƒ vertex connectivity information is used directly

¾

+ No weights need to be defined

¾

+ Experimental results are very good

¾

+ No flip or self-intersection happens in most cases

¾

- Need to solve a linear equation ƒ hence this method is slower than traditional methods

2006-6-29

Future Work ƒ Other extensions ¾ In the above method, the skeleton can be

seen as a tool to modify the simplex transformation matrix ¾ The skeleton can also be used to modify

other local intrinsic attributes ƒ Thus, other skeleton-based deformation methods can be developed: e.g. Laplacian coordinates, gradient fields, and so on. 2006-6-29

Q&A

2006-6-29