Mesh Morphs

This is the project page for my project involving mesh morphs.

Overview

A mesh morph is a transformation between a given mesh and a variant mesh with the same number of vertices. The programmer specifies a seed mesh and may express multiple morphs in terms of its variants. It looks like this:

seedMesh = soy.models.Mesh(randomBodyObject)
variantMesh = soy.models.Mesh(randomBodyObject)
morph = soy.models.Morph(seedMesh,variantMesh)
while True:
  sleep(10)

This creates a morph object and binds it via pointer to the seed mesh. Whenever render() is called on the original mesh, the morph object's vertex interpolation data will be applied.

It is possible to apply multiple morphs to the same seed mesh. If the seed mesh contains two or more morphs which act on the same subset of vertices, render() will apply these transformations recursively.

morph = soy.models.Morph(seedMesh,variantMesh)
anotherMorph = soy.models.Morph(seedMesh,anotherVariantMesh)
while True:
  sleep(10)

Adding or removing vertices

Our mesh implementation currently does not support adding and removing vertices per se. Instead, one sets an entirely new array of vertices. My instinct is that trying to support a user adding or removing vertices with an active mesh morph will open up a whole lot of difficult edge cases and should not be undertaken without first having a working base case.

Animation

Animation should be performed using keyframes. For each keyframe, one specifies the weight of the morph transformation (between 0 and 1.0). If the transformation is 0, the seed mesh is rendered without interpolation; if the transformation is 1.0, the variant mesh is rendered. Between these values, vertex interpolations must be computed between the seed mesh and the variant mesh. For each frame, we compute interpolation based on the distance between the current frame and the keyframe:

No idea how the keyframe syntax will work because if something similar has been implemented elsewhere, we want it to be consistent. I'm not yet familiar enough with libsoy to be sure.

About Me

Anthus Williams <anthuswilliams at gmail dot com> (anthuswilliams on irc)  Ohloh
I'm a first year math major at Dixie State College (USA, -600 UTC). I've learned a lot about web programming since lying about my resume in early 2009 in order to get a job doing ColdFusion and PHP. But I know next to nothing about either 3D graphics or game/systems programming. So naturally, that's what I want to work on :)

Attachments

  • trac.png Download (6.1 KB) - added by debrasantorini 13 months ago. When it comes to updating the bedroom decor to a more loving and homey feel, sunflowers can do just that. I recently went looking through many floral duvet covers, and couldn't come to find the right sunflower duvet. My mom was coming to visit and I needed the right  black and white floral bedding to make her feel at home. Unfortunately,  pink damask bedding isn't the same anymore. No longer can you find duvet covers with my favorite yellow sunflower. They can be found in just about any color and design except for that one lovely color. My bed is not complete without a duvet cover.