我迷失了骨骼动画。我读过一些关于这个的东西,但它们仍然是我不明白的一件事。这是我的结论。我看到了 3 种使用骨骼为网格设置动画的方法:
我有一个 Mesh 类,其中包含顶点、顶点缓冲区、索引缓冲区和纹理着色器以及变换矩阵。我可以为每个骨骼使用类,增加重量,我可以很容易地为模型制作动画。但这意味着使用过多的内存,因为某些存储的东西有时会被使用,而它们只能使用一次。
使用顶点着色器。在输入顶点参数中添加权重和骨骼索引,并使用矩阵数组作为全局变量,因此在着色器中我只需要使用骨骼的矩阵即可。这个解决方案对我来说似乎更有效,但我记得在 directx 11 教程(来自 Rastertek)他说 HLSL 应该很快,因为它使用了很多时间,我认为这太重了。无论如何,这是我会尝试的解决方案,至少要知道它是否有效。
对每个骨骼使用矩阵和逆矩阵。就阅读而言,这是采取的方式。但这是我不明白的方式。为什么在这里使用矩阵逆,以及矩阵如何“链接”到顶点。我的意思是,如果我移动右手骨骼的矩阵,代码中只使用右手顶点是什么意思?
所以我的问题是:
- 第二种方法可行吗?或者对于带有一些网格和动画的 GPU 来说太多了?
- 有人可以解释矩阵链接到顶点的方式以及为什么使用矩阵逆吗?或者给我链接一些关于这个的东西。
我希望你能理解我,因为我不确定我解释得好不好。请原谅我的英语,我已经尽力了。提前致谢。