What is (vertex/character) "skinning"?

I've never grasped this term, what exactly does it mean?

It seems to do with animation and characters. What kind of geometry is skinned and what isn't?

How does the hardware handle these ops, what are the bottlenecks like?

Would tanks and robots need to be 'skinned' the same way as characters?

What does skinning have to do with animation?


Thanks. :)
 
Consider an arm. Ideally, you can think of it as a three points with lines between them. These lines can be represented in the simplest case by two cylinders model (so that the arm can bend) with two separate transform matrixes. However, at the joints, these cylinders leave cracks. In order to cover these cracks, you could do the simplest method of having a third 'elbow' model that bridges the gap. This elbow model would likely need to be created on the fly to match the bend in the arm.

Or, with vertex skinning, you could have a single model of the arm that is controlled by two or more separate transform matrices plus a 'skinning' array which tells the vertex processor how much each matrix affects a particular vertex.

In the case of the arm, the upper arm vertexes would be controlled entirely by the 'upper arm' transform matrix; the lower arm entirely by the 'lower arm' transform matrix; and the vertexes around the bent elbow would be controlled by a blending of the two.

In practical terms, it makes modelling 'easier', and rendering more efficient because it removes some state changes.

The DX7 class vertex skinning was given a bit of bad press because it only supported the blending of two matrices, which was deemed by some as "not enough". I believe DX8 and up support a somewhat arbitrary number (7?) which should make modelling much easier.

Of course, I might be wildly wrong on this, but I'll trust some other know it all to let us know if that's the case.

p.s. tanks probably don't need skinning, since there's no 'deformable' parts in them. Robots would still likely need some sort of something at the joints (assuming hominoid robots prevalent in classical Anime).
 
To my knowledge card support only 4 weights at best.
However using Vertex program you can use more matrices.
 
I've never grasped this term, what exactly does it mean?

It just the influence of the skeletal system on the object its suppose to deform.

The simplest one can be used for Robot, where each vertex is only influence by one bone (matrix).

In human arm, the vertices around the elbow is probably influence by two bones. The influence (for every vertices) can be split to your liking(90%:10% or 50%:50% for example), to give the best result.
 
Back
Top