我看到有一些非常相似的问题,但主要是关于性能的。如果有人能花时间解释我如何将我目前拥有的东西实现到顶点着色器中(对于动画,如标题所述),我将非常感激。
我有一个简单的 .FBX 文件阅读器,它提取以下内容:
顶点坐标(X、Y、Z);
顶点索引;
法线坐标(X、Y、Z);
就骨头而言:
骨骼名称 连接到骨骼的顶点的索引;
每个顶点的权重;
骨骼的 4x4 矩阵阵列。(不知道这是怎么布局的,请解释一下!矩阵不是只有1端的位置吗?)
帮助表示赞赏!
我看到有一些非常相似的问题,但主要是关于性能的。如果有人能花时间解释我如何将我目前拥有的东西实现到顶点着色器中(对于动画,如标题所述),我将非常感激。
我有一个简单的 .FBX 文件阅读器,它提取以下内容:
顶点坐标(X、Y、Z);
顶点索引;
法线坐标(X、Y、Z);
就骨头而言:
骨骼名称 连接到骨骼的顶点的索引;
每个顶点的权重;
骨骼的 4x4 矩阵阵列。(不知道这是怎么布局的,请解释一下!矩阵不是只有1端的位置吗?)
帮助表示赞赏!
看起来你可能遗漏了一些东西。最值得注意的是骨骼层次结构。
它通常的工作方式是你有一个根节点,它的变换传播到下一层“骨骼”,它的变换传播,依此类推,直到你到达“叶”骨骼,或者没有孩子的骨骼。这个转换链是使用矩阵乘法完成的。
有几种方法可以转换顶点。有时通过预先确定的“影响”来完成,通常从 3d 应用程序(例如 3dsmax)加载。
还有另一种简单明了的方法。您只需计算从顶点到骨骼节点的距离。骨骼变换的影响与这个距离直接相关。
您所说的 4x4 矩阵不仅仅是位置。它也保存旋转数据。它也有可能保存缩放数据,但这通常不用于蒙皮/骨骼应用程序。
让管弦乐队很好地一起演奏需要对矩阵数学/坐标系统有透彻的了解。我会拿一本关于游戏编程的 3D 数学主题的书。任何有价值的书都会有一整节专门讨论这个主题。