我实现了带有软件外观的MD5加载程序。 md5中的绑定(bind)姿势是最终的,绝对的位置和旋转,您只需要对与关节有关的权重进行计算即可。

我尝试实现GPU外观,但遇到了困难。由于这些坐标是最终的,为什么我不能将我的3D向量和四元数转换为矩阵并将其上传到着色器?正如我在这里阅读的:http://3dgep.com/?p=1356一样,我需要将骨骼与绑定(bind)姿势的逆数相乘。但是我不理解这部分,因为我一直认为我唯一需要做的就是将最终矩阵上载到GPU并在那里计算剩余的矩阵(权重之和,等等)。

你能解释一下反向约束姿势的行为吗?

最佳答案

作为该文章的原始作者,我将尝试解释乘逆绑定(bind)姿势的作用:

“反向绑定(bind)姿势”基本上是“撤消”已经以绑定(bind)姿势应用于模型的任何变换。

像这样考虑:
如果将恒等矩阵应用于模型中的每个关节,则将得到绑定(bind)姿势中的模型(您可以通过发送填充有恒等矩阵的骨架来尝试此操作。如果得到的结果是绑定(bind)姿势,则您是正确地做)。

如果将绑定(bind)姿势矩阵(未求逆)应用于模型中的每个关节,则将得到意大利面条,因为您将两次应用绑定(bind)姿势!

因此,要修复意大利面条模型,只需将结果的联合变换乘以反向绑定(bind)姿势即可“撤消”已应用于模型的变换。

我希望这可以清除它...

关于OpenGL : Bone Animation,为什么在使用GPU时需要绑定(bind)姿势的逆函数?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/17127994/

10-11 02:18