[原创] 骨骼运动变换的数学计算过程详解
1. 骨骼静止状态(参考姿势)下的节点坐标转换 以上图为例子,图中有三个彼此嵌套的坐标系:子骨骼坐标系、父骨骼坐标系和世界坐标系。首先,我们不考虑骨骼的运动,设 V c 为顶点 V 在子骨骼本地坐标系中的位置 ,那么在各骨骼静止的情况下: 从子骨骼坐标转换到父骨骼坐标: V p = V c * M L->P 从父骨骼坐标转换到世界坐标: V w =V p *M P->W 因此,从子骨骼坐标直接转换到世界坐标的过程为: V w =V c *M C->P *M P->W 其中, V c 可以表示为一个行向量: V c =(x c , y c , z c , 1 ) ;而 M C->P 、 M P->W 是两个平移阵,其中( dx p , dy p , dz p )、( dx c , dy c , dz c )分别为父、子骨骼各自的坐标系原点在世界坐标系中的位置: 注意!在上图的示例中, M C->P 、 M P->W 只是两个平移矩阵而已,这是最常见的一种简单情况。但在实际情况下,各骨骼的本地坐标轴完全没有必要跟世界坐标轴一致,因此, M C->P 、 M P->W 也可能包含了旋转、缩放等复杂变换,但其基本原理是相通的。 2. 骨骼运动积累变换的计算 接下来我们进一步来考虑骨骼运动的情况。描述一根骨骼运动的最典型的方法,是将其运动分解成为 相对于其自身本地坐标系的 旋转和平移