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

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

simple illustration of SSD with only two jointframes. Rectangles represent animated sectionsin each of two frames and the curve shows theblended result of both frames. Since vertextrans<strong>for</strong>mations can be easily implemented inthe graphic card, SSD is very popular in circumstancesthat require animating a number of charactersin real time. Some opportunities <strong>for</strong> controlare provided to the animators. When a charactergoes wrong in some pose, animators canadjust joint influence weights. But the domainof adjusting one vertex in this way is strictly limitedto the linear subspace <strong>for</strong>med by the vertexas trans<strong>for</strong>med by joints influencing this vertex.3.1 Pose Space De<strong>for</strong>mationThe famous SSD problem of “collapsed elbow”is recognized in [1] as being due to the fact thatde<strong>for</strong>ming is limited to a linear subspace. Becauseof this limitation SSD cannot synthesizemany parts of a character skin involving complicatedjoint structures. Built on the SSD scheme,the Pose Space De<strong>for</strong>mation (PSD) is proposedby [1] as a combination of SSD and shape blendingproviding nice solution to above mentionedproblems.PSD can be per<strong>for</strong>med in the following steps:• example pose setup: move the character toproblematic poses, sculpt and store pose in<strong>for</strong>mation(joint configuration x) includingthe amount of movement of each sculptedvertex (delta values d).• In the inverse PSD approach in this paper,we trans<strong>for</strong>m example models (d) totherest pose (d r ): This step is trivial if the basicskinning, say SSD, is explicit. In ourproposed framework, this step will be replacedby an optimization routine.• solving a linear system: we setup an interpolationscheme <strong>for</strong> delta Φ(x)ω = d andsolve it to obtain weights ω <strong>for</strong> all exampleposes.• realtime synthesis: <strong>for</strong> an intermediatepose, we obtain the delta in the rest poseby interpolating example poses at runtime.We add this delta to the original charactersurface and then let SSD or any other skinningscheme finish the final trans<strong>for</strong>mation.For a vertex v, if sculpted in N example poses,then there are N delta d i ,i = 0,...,N − 1 correspondingto each pose x i ,i = 0,...,N −1. Theseare converted to rest pose displacements usingdi r = SSD −1 (d i ). We adopt Gaussian Radial Basisfunctions to interpolate di r.First a N ∗ Nmatrix Φ is built with the (i, j)th element asφ(‖ x i − x j ‖), where ‖ x i − x j ‖ means the Euclideandistance between pose x i and pose x j ,then we have a linear system:W = Φ −1 D r (2)Here W and D r are column vectors with ithelement ω i and d r i respectively. In the synthesisphase, <strong>for</strong> an intermediate pose x, we can obtainthe delta d <strong>for</strong> this vertex by:N−1d =∑i=0ω i φ(‖ x i − x ‖) (3)For the Gaussian function φ(x) =e − x2σ 2 , σ isused to control the “fall-off”. In Figure 1 (b).,we use Gaussian Radial Basis functions to interpolate3 points. The blue and green curve representσ = 1.0 and σ = 2.0 respectively. Otherbasis functions also can be candidates.Although PSD and improved example-basedschemes have been discussed in many publications[2], [3], [4], the reason why the inverseshould be per<strong>for</strong>med is still ambiguous. Inthe next section we will analyze this issue anddemonstrate why inverting the SSD (and otherde<strong>for</strong>mations) in order to interpolate the examplesin the rest pose is a the right choice.4 Inverse OperationThis section will describe the implementation ofour inverse algorithm and why it is an improvement.We still study SSD as the underlying skinning,since an explicit <strong>for</strong>m of basic skinningcan help to simplify our task of explanation. Wecall the PSD scheme without the inverse operationas “<strong>for</strong>ward PSD”, and comparison to it willbe used to demonstrate the superiority of the inversemethod.4.1 ImplementationIn this sub-section, we will explain how inversePSD works. For N examples, a vertex v isfirst trans<strong>for</strong>med from rest pose by SSD to positionsv i ,i = 0,...,N − 1, then animators move4

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

Saved successfully!

Ooh no, something went wrong!