

Pixar's use of Harmonic Functions - paulgerhardt
http://www1.ams.org/samplings/feature-column/fcarc-harmonic

======
sparky
The article is about a vertex weighting system Pixar came up with to deform
complex polygonal meshes to track simple skeleton meshes, like you need for
character animation. The main problem they wanted to solve was limiting the
sphere of influence of skeleton vertices in the presence of concavities in the
skeleton. An alternate approach was presented here (
[http://blog.wolfire.com/2009/11/volumetric-heat-diffusion-
sk...](http://blog.wolfire.com/2009/11/volumetric-heat-diffusion-skinning/) )
and discussed on HN some months back. I'm not sure which method produces a
better result (heat diffusion certainly is more computationally intensive),
but heat diffusion seems like a very natural way to solve the problem.
Essentially, to determine a skeleton vertex's influence on a model vertex, you
don't want the distance between the two "as the crow flies," but rather the
shortest path _within the skeleton_ between the two points. Perhaps a
pathfinding algorithm could do the job more efficiently than heat diffusion?

~~~
tfg
Actually these two methods are basically the same. As the AMS article states
"the steady-state temperature distribution of some region in space is
described by a harmonic function." If you look at the method of relaxation
described in the ams article, "move across the grid and replace the value of
the function at a point by the average of adjacent points," it's the same as
the method described in the Wolfire article, "set each voxel's heat to a
weighted average of its neighbors' heat."

~~~
sparky
You're right, though I think the implementations differ in that Wolfire uses
skeletons made of bones (line segments) and Pixar uses a polygonal cage mesh
as the skeleton. It is quite possible that if you view the cage mesh as the 3D
extrusion of a Wolfire-style skeleton, the results are exactly equivalent, but
I'd have to think about it more.

OT: what are the pros/cons of the two character modeling approaches (cage vs.
skeleton)?

~~~
JabavuAdams
Perhaps its easier for animators to see the influence of a cage on a vertex,
rather than a bone? I was wondering about this.

The cage is a nice wire-frame around the object of interest, and you can
easily see how close the skin is to the cage, for some kind of intuition about
influence.

With bones and vertex to bone weighting, you'd need some other visualization
(like false-colour on the vertices) to show how much each vert is influenced.
Also, the cage seems to remove the conceptual problem of a vertex being driven
by multiple bones.

Hmmm. This is timely. Thanks!

