Search code examples
3dmorphing

3D Modeling - Morphing


The overall goal I'm trying to accomplish is to implement a customizable avatar system where one can change height, weight, body type, etc. How is this done? As a simple example, when you change the height of an avatar you don't want the head/eyes/fingers/etc to get stretched out, you only want the torso and legs to change size and have everything else remain as they were (perhaps repositioned). Another example would be adding a "beer belly". What are existing techniques for that sort of morphing?

Is each morphed piece a separate mesh?

If so, how are the two manipulated pieces "stuck" back together in a believable way (they changed size).

If not, how do you confine your manipulations to one section of the mesh and not the others?

I'm looking for general techniques as well as specific solutions. This is a generic 3D graphics problem but I'm working with Kit3D/Silverlight/C#. This is similar to another question I posted but this is much more general.


Solution

  • Take a look at the MakeHuman project. (Warning, some potentially not-safe-for-work screenshots may be on the main page. Most are blurred, but fair warning.)

    The human body mesh that MakeHuman uses is a simple base mesh with a series of targets that can be adjusted on 4 or 5 axes. The majority of the program is written in Python, so it should be relatively easy to dig through. There are also some whitepapers and other documents on the document site.