The problem with mean value coordinates is that they're negative with concave cages, and harmonic coordinates more complex and slower to generate. I already implemented this paper in ICE: http://www.wisdom.weizmann.ac.il/~ylipman/pmvc/pmvc.htm The result is pretty closed to harmonic coordinates, and you dont need a static cage as reference. This mean that you can tweak the enveloped cage in pose and see the result on the deformed object. I was thinking to release it for free at some point, so this might be the occasion, and could eventually save you a few days. I'll try to put it somewhere on the web it this weekend.
Cheers. ----------------------------------------------- Ahmidou Lyazidi Director | TD | CG artist http://vimeo.com/ahmidou/videos http://www.cappuccino-films.com 2013/12/13 Ben Houston <b...@exocortex.com> > Turns out mean value coordinates on closed polygon meshes to do > deformation was already done: > > http://www.cs.rice.edu/~jwarren/papers/meanvalue.pdf > > -ben > > > > On Thu, Dec 12, 2013 at 9:45 AM, Ben Houston <b...@exocortex.com> wrote: > >> I guess you are referring to this... >> >> http://graphics.pixar.com/library/HarmonicCoordinates/paper.pdf >> >> The scan conversion bit with the laplacian solver seems like a lot of >> work. >> >> There is the idea of mean value coordinate systems which may allow for a >> smooth interpolant across the arbitrary convex polygons without the >> laplacian solve (I am suggesting you can combine this with some of the >> principles of the above paper): >> >> >> http://morphoxx.googlecode.com/svn/trunk/Biblio/Mean%20Value%20Coordinates%20for%20Arbitrary%20Planar%20Polygons.pdf >> >> Not sure if there is quality issues with it that I don't know about. You >> probably don't want to be doing novel research on a tight deadline. >> >> >> >> On Thu, Dec 12, 2013 at 8:55 AM, Alok Gandhi >> <alok.gandhi2...@gmail.com>wrote: >> >>> Thanks Ben. That is some good info. I was thinking more along >>> implementing the Harmonic Coordinates approach. I think Pixar had some >>> papers on it. >>> >>> Sent from my iPhone >>> >>> On Dec 11, 2013, at 10:50 PM, Ben Houston <b...@exocortex.com> wrote: >>> >>> My knowledge is out of date, but off the top of my head.... >>> >>> Cage deformers are often written using a cubic interpolant rather than >>> affine ones. If you use a grid cage you can use Bezier Volumes, which are >>> just a generalization of >>> https://en.wikipedia.org/wiki/B%C3%A9zier_surface. If you are using a >>> regular grid, you can just take 3D coordinates relative to each grid. If >>> you use a tetrahedral mesh, you can use generalization of the Cubic >>> Triangle for deformation: >>> https://en.wikipedia.org/wiki/B%C3%A9zier_triangle and then you need to >>> use barycentric coordinates to get a relative spatial relationship. >>> >>> So I think yes, barycentric coordinates within a space filling >>> discretization of space, either a grid or a tetrahedralization with a cubic >>> interpolate as you start to deform them. >>> >>> I implemented the grid-based deformation with cubic volumes and got this >>> result: >>> >>> http://www.exocortex.org/ben_software/hd-ffd.zip >>> >>> I have also implemented the tetrahedral-based discretization with >>> Christopher Batty to deform a high resolution object to follow the path of >>> a low resolution object to really good success. The only issue is that >>> tetrahedral meshes suck to create and maintain efficiently. It is the >>> bunny getting crushed in the gears at the end of this video -- the actual >>> simulation bunny was super low res, but we uprezed it for rendering: >>> http://vimeo.com/874168 >>> >>> Best regards, >>> -ben >>> >>> >>> >>> On Wed, Dec 11, 2013 at 5:09 PM, Alok Gandhi >>> <alok.gandhi2...@gmail.com>wrote: >>> >>>> Hi All, >>>> >>>> Very soon, I am starting on my own generic custom cage deformer. A mix >>>> of C++/Cython/Python. >>>> >>>> I am thinking of implementing fast calculations on barycentric >>>> coordinates with affine transformations. I have some good papers (in my >>>> treasure trove but haven't checked it yet). >>>> >>>> Anyone suggest a different approach other than barycentring coordinates. >>>> >>>> The reason I will be writing this is for (proof of concept / prototype >>>> for now) is to be able to get point cache data from a low res geometry and >>>> then use this outside of an DCC to convert to high res deformations. >>>> >>>> This ways existing animation pipelines which have to rely on switching >>>> to higher resolutions before caching out do not have to do so. Simply >>>> export out point caches (alembic, pc2, mdd, bgeo, icecache etc.) and then >>>> apply this to a high res point data outside of any DCC as post process, >>>> even on farms from command line for example. >>>> >>>> -- >>>> >>> >>> >>> >>> -- >>> Best regards, >>> Ben Houston >>> Voice: 613-762-4113 Skype: ben.exocortex Twitter: @exocortexcom >>> http://Clara.io - Professional-Grade WebGL-based 3D Content Creation >>> >>> >> >> >> -- >> Best regards, >> Ben Houston >> Voice: 613-762-4113 Skype: ben.exocortex Twitter: @exocortexcom >> http://Clara.io - Professional-Grade WebGL-based 3D Content Creation >> > > > > -- > Best regards, > Ben Houston > Voice: 613-762-4113 Skype: ben.exocortex Twitter: @exocortexcom > http://Clara.io - Professional-Grade WebGL-based 3D Content Creation >