Paper: Skinning by Example

Alex Mohr and Michael Gleicher (from UWisconsin) wrote a paper about another technique for automatically computing weights for use in a skinning system given a set of example meshes. Like the Multi-Weight Enveloping technique from last year's Symposium on Computer Animation, this system takes a set of example poses for a skin, which can either be sculpted or simply created using a skinning technique that's not suitable for real-time (such as Maya's influence objects, a complex muscle-and-skin dynamics model, etc.), a set of skeleton poses that correspond to those skins, and then calculates a set of rigid bones and skin weights which express that as well as possible.

However, the particular trick this paper uses to get higher-quality results is that the authors automatically add extra joints to every joint in the input skeleton. In particular, they add up to seven extra joints per input joint -- one which splits the rotations on the input joint and six which represent scale transforms in various places around the input joint in order to express muscle bulges. Because it wouldn't be acceptable to have seven times the joints in the output skeleton, the authors manually specify which input joints to add these extra joints to.

The advantage of this paper over the Multi-Weight Enveloping technique from last year is that although they do add joints, their added joints are implemented in exactly the same fashion as any other real-time skinning system, and so can be hardware-accelerated much more easily. Unfortunately, because their system results in a skeleton with a lot of joints, it's not clear that it would actually be hardware-acceleratable on current-generation hardware.

I was initially very excited about this paper, since I think that skinning by example is fundamentally a more efficient technique. However, what this paper really does is allow approximation of other skinning techniques (twists, bends, morphs, influence objects) by extra joints. Therefore, it's only the change of tool that this technique saves you -- you would have to skin your muscle bulge via some other means (e.g., a morph), and this technique would then approximate that morph with 3-5 extra bones. While that could certainly be useful (for instance, in converting a face rigged with morphs to one rigged with bones), I'm not sure the savings in a typical Sims-style body-rigging case would be worth the extra step.

The full title of this paper was "Building Efficient, Accurate Character Skins from Examples", by Alex Mohr and Michael Gleicher from the University of Wisconsin.