Blend shapes / morph targets / shape interpolation


I’m currently adding support for Collada in our 3D engine, developed specifically for photorealistic facial animated characters. For facial animation we use the standard shape interpolation algorithm (blend shapes as they are called in Maya).

As everyone knows Collada doesn’t yet support animations, so I’m currently contemplating the best (and ideally forward-looking) way to encode in Collada the blend shape data.

I can see two main options: Option A would be to encode in the geometry additional position and precomputed tangent sets. Option B is to create a new library type (eg: BLEND_SHAPE) and store all of the geometry and parameter informations there. I’m inclined to go with the second option, since it’s the easiest to add to the Maya exporter source code, and I can re-use a blend shape node onto multiple faces without replicating the position deltas.

Has anyone else considered how to best add that functionality?

The main reason I’m posting this message is that I’d like to support more general animation schemes (e.g. skeletal subspace) when they get released in the next version of Collada, so ideally I’d like my current design to fit well with the short term plans. Also, I’d like Alias to export blend shape data so I don’t have to maintain a modified version forever.

Finally, what is happening with animation support in Collada? Is there some discussion going on, on the actual design? How can I participate?

As you know for the past few weeks Christian, that level of work is going on in the partner forums. Welcome!