关于顶点着色器中骨骼动画的混淆

时间:2013-07-16 20:16:16

标签: java vertex-shader

我看到有一些相似的问题,但这些问题主要与性能有关。如果有人能花时间解释如何实现我目前在顶点着色器中所拥有的内容(对于动画,如标题所述),我将非常感激。

我有一个简单的.FBX文件阅读器,它提取以下内容:

顶点坐标(X,Y,Z);

顶点索引;

法线坐标(X,Y,Z);

至于骨头:

骨名 附着在骨骼上的顶点索引;

每个顶点的权重;

骨骼的4x4矩阵阵列。 (不确定这是如何布局的,请解释一下!矩阵不会只保持1端的位置吗?)


帮助表示赞赏!

1 个答案:

答案 0 :(得分:1)

看起来你可能会遗漏一些东西。最值得注意的是,骨骼层次结构。

它通常的工作方式是,你有一个根节点,其转换传播到下一级“骨骼”,其转换传播,依此类推,直到你到达“叶子”骨头,或没有孩子的骨头。这个转换链是使用矩阵乘法完成的。

然后有几种方法可以转换顶点。它有时是通过事先决定的“影响”完成的,通常是从3dsmax等3d应用程序加载。

另一种方法是做到这一点,简单明了。您只需计算从顶点到骨骼节点的距离。骨骼转变的影响与这个距离直接相关。

你说的4x4矩阵不仅仅是位置。它也包含旋转数据。它也有可能保存缩放数据,但这通常不用于蒙皮/骨骼应用程序。

让管弦乐队很好地合作,需要彻底了解矩阵数学/坐标系。我会为游戏编程抓一本关于3D数学主题的书。任何值得称重的书都会有一整节用于这个主题。