1.首先得多谢一吧主提供了这个资源(http://forum.unity3d.com/threads/some-explanations-on-bindposes.86185/),省去了我大麻烦
2.该资源的代码最开始的注释部分:
-
//The Bind Pose Matrices allow a raw vertex of the mesh (in local coordinates) to be transformed into world-space
-
// and then to each bone's local coordinate space, after which each bone's animation can be applied to the vertex in question
-
// (under the influence of the weighting value). The mesh's bind pose takes the vertex from local space to world-space,
-
// and then each bone's inverse bind pose takes the mesh vertex from world-space to the local space of that bone.
-
// Once in the bone's local space, the bone's current animated transformation matrix is used to transform (deform)
-
// the vertex's location. After all the bone influences have been taken into account, the vertex ends up in world-space
-
// in its final deformed location. In other words, these bind pose matrices relate the location of a vertex in its local mesh space
-
// to the same location of the vertex relative to each bones' local coordinate systems.
-
-
// The mesh's Bind Pose Matrix takes its vertices into world-space, to the location at the time of binding,
-
// and each bones' Bind Pose Matrix takes the bones from local space to world-space at the time of binding.
2.资源中的代码最开始的注释部分解释的很清楚:
(1)mesh的bindPose是将mesh的Vertex转换到worldSpace,也就是模型空间转到世界空间(2)bone的bindPose是将bone的Vertex转换到worldSpace,也就是bone空间转到世界空间
不过我们通常用的是bone的bindPose的逆矩阵