加载Collada网格姿势

时间:2013-03-20 08:06:49

标签: animation loading collada

我在从文件加载collada网格动画时遇到问题。骨架的startpose定义如下

<translate sid="translate">-0.01199548 0.1422831 -0.009544329</translate>
<rotate sid="jointOrientZ">0 0 1 0</rotate>
<rotate sid="jointOrientY">0 1 0 0</rotate>
<rotate sid="jointOrientX">1 0 0 0</rotate>
<rotate sid="rotateZ">0 0 1 -6.883375</rotate>
<rotate sid="rotateY">0 1 0 -10.62618</rotate>
<rotate sid="rotateX">1 0 0 8.255196</rotate>

我认为轮换应该按照它们在这里订购的顺序进行,还是我错过了什么?我发现了旋转是如何工作的,前三个值定义了旋转的轴,最后一个值是多少度。 但出于某种原因,我得到了一个非常奇怪的结果。我有一个系统用于collada网格,它有一个矩阵代表同一类型的值。

1 个答案:

答案 0 :(得分:0)

就像你说的那样,伪命令的顺序:

translateObject()
orientZObject()
orientYObject()
orientXObject()
rotateZObject()
rotateYObject()
rotateXObject() 

没有其他组合可能。矩阵乘法不是可交换的。

在将collada解析为webgl渲染器时,这对我有用。对于矩阵运算,我使用gl-matrix javascript库。