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.