Hacker News new | past | comments | ask | show | jobs | submit login
Pixar's use of Harmonic Functions (ams.org)
103 points by paulgerhardt on April 15, 2010 | hide | past | favorite | 7 comments



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... ) 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?


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."


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)?


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!


Yes they are the same, but the harmonic function formulation seems a bit more more appealing because it focuses on the end result as opposed to the process.


Thank you!

Informative comments like this are what keep me coming back to HN.


agreed. makes a change from the screeds of anti-Apple vitriol that seem to make up the bulk of posts lately.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: