【问题标题】:Confusion regarding skeletal animation in the vertex shader关于顶点着色器中的骨骼动画的困惑
【发布时间】:2013-07-16 20:16:16
【问题描述】:

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

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

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

顶点索引;

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

就骨头而言:

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

每个顶点的权重;

骨骼的 4x4 矩阵数组。 (不知道这是怎么布局的,请解释一下!矩阵不是只有1端的位置吗?)


帮助表示赞赏!

【问题讨论】:

    标签: java vertex-shader


    【解决方案1】:

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

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

    有几种方法可以转换顶点。有时通过预先确定的“影响”来完成,通常从 3d 应用程序(例如 3dsmax)加载。

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

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

    要让管弦乐队很好地一起演奏,需要对矩阵数学/坐标系有透彻的了解。我会拿一本关于游戏编程的 3D 数学主题的书。任何有价值的书都会有一整节专门讨论这个主题。

    【讨论】:

    • 谢谢,但我想我没有具体说明我对矩阵的了解。我知道它可以保存旋转和缩放数据,但我的意思是,它不只保存骨骼的一端吗?和关节一样?无论如何,我想这就是我要找的,答案被接受了。
    • @Braindrool:没错,它只固定骨头的一端,通常是骨头的“局部原点”。
    猜你喜欢
    • 2014-09-23
    • 2012-10-15
    • 1970-01-01
    • 2019-12-11
    • 1970-01-01
    • 2012-10-17
    • 1970-01-01
    • 2014-10-16
    • 2013-12-24
    相关资源
    最近更新 更多