10.07.2015 Views

A Powell Optimization Approach for Example-Based ... - JP Lewis

A Powell Optimization Approach for Example-Based ... - JP Lewis

A Powell Optimization Approach for Example-Based ... - JP Lewis

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

ω 1y = φ11 −1 d 1y + φ12 −1 d 2y = φ12 −1 d 2yω 2y = φ21 −1 d 1y + φ22 −1 d 2y = φ22 −1 d 2y = d 2ywhere φij−1 is the (i, j)th element of Φ −1 , andif i = j, φij−1 = 1. Then in an intermediate posex <strong>for</strong> α p , we have tanα p = d yd x. d y and d x aredelta values in x,y coordinates computed fromequation 3. With the above weight values, wehave:tanα p = d y= ω 1yφ(x − x 1 )+ω 2y φ(x − x 2 )d x ω 1x φ(x − x 1 )+ω 2x φ(x − x 2 )= φ 12 −1 d 2yφ(x − x 1 )+d 2y φ(x − x 2 )φ12 −1 d 2xφ(x − x 1 )+d 2x φ(x − x 2 )= d 2yd 2xWe can see this angle α p is a constant anddepends only on the value of delta in the secondpose d 2 =[d 2x ,d 2y ]. Then we take a lookat α Ip in the inverse case. We trans<strong>for</strong>m twoexamples to rest pose to obtain delta values:d r 1 =[d′ 1x ,d′ 1y ]=[0,0] and dr 2 =[d′ 2x ,d′ 2y ]. Sinceonly the second joint is rotating, we simplifySSD as a rotation trans<strong>for</strong>mation ignoring otherissues such as accumulating effects from the firstjoint:⎛SSD θ = ⎝cosθ sinθ 0−sinθ cosθ 00 0 1⎞⎠.where θ is the rotation angle of the second joint.Then <strong>for</strong> the vertex v r =[v 0x ,v 0y ], SSD θ (v r )trans<strong>for</strong>ms v from rest pose to [v SSDx ,v SSDy ]=[v 0x cosθ − v 0y sinθ,v 0x sinθ + v 0y cosθ]. In anintermediate pose x, we have its correspondingrest position as v r x =[v 0x + d x,v ′ 0y + d y], ′ andhere the [d x,d ′ y] ′ are interpolated result computingfrom equation 3. We just apply the simplifiedSSD to v r x to obtain v x Ip : v Inp x=(v 0x +d ′ x)cosθ − (v 0y + d ′ y)sinθ and v Inpy =(v 0x +d ′ x)sinθ +(v 0y + d y)cosθ. ′ Similarly, we computethe tangent of α Ip :tanα Ip = − v Inp y− v SSDyv Inpx − v SSDxwhere tanβ = d′ yd ′ x= − d′ x sinθ + d ′ y cosθ= −tan(β + θ)d x ′ cosθ − d y ′ sinθ= d′ 2y. Then we can see αd ′ Ip =2x−(θ + β), which is linearly proportional to thepose rotation θ.And now we take a look at a real cylindermodel with one vertex sculpted in the secondpose, shown in the Figure 4. Forward PSDand the corresponding inverse PSD in the sameposes (30, 45 and 60 degree of one rotated joint) are illustrated respectively in Figure 5. Wecan see that in <strong>for</strong>ward case, the direction of de<strong>for</strong>medvertex always keeps the same with theexample cylinder (figure 4). For inverse PSDhowever, that direction is changed along withthe rotation of the joint. The case describedabove is quite common in practice when animatingshoulder, elbow, knee, hip-bone, neck,etc. All these parts would rotate from the restpose with some angle to other poses. On theother hand, as a matter of experience, PSD issupposed to be a method as “local” correction,which means pose space should not be extendedto a whole space that has to incorporate all influencedobjects. Otherwise, large amount of unnecessaryworks of building examples will be required,and the distance between different posesis also meaningless. For example how to measurethe distance between differing poses suchas “lying down” and “pitching”?Figure 4: A simple test case: two example poses with onevertex sculpted5 A Unified Framework <strong>for</strong>Inverse Skinning ModelThe above discussions assume that the basicskinning algorithm is SSD, but in many circumstances,other de<strong>for</strong>mation schemes will beadopted [9], [10], most of which have been implementedin most animation packages. There<strong>for</strong>ewe propose a unified framework in whichno explicit inverse operation is necessitated.Given a basic skinning method supported byanimation packages we can de<strong>for</strong>m the originalcharacter model from rest pose to another specificpose. In the more general case, we needto replace SSD with SKINNING in the inverseskinning algorithm as such <strong>for</strong> equation 4:v t i = v i + d i = SKINNING i (v r )+d iBut this time we don’t implement the inverseof SKINNING as in equation 5. To find delta d ′ i6

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!