我尝试使用平滑蒙皮在我的游戏中为网格设置动画时出现问题。我正在导出一个网格,它的关节,以及来自Maya的所有动画数据,并且它在游戏中正确导入。我也把我的关节显示在游戏中作为球体,只是为了确保它们正确动画,它们是。我在将顶点转换为骨骼空间时遇到了麻烦,我对此无能为力。这是我目前正在做的基本工作。
预先计算每个骨骼在其绑定姿势中的倒数。骨头 层次结构也在这里设置,我只设置它们的局部矩阵 因为他们的世界矩阵是根据要求计算的。
在关键帧之间插补矩阵,这似乎有效 因为球体正确动画。
将绑定姿势中的网格顶点复制到单独的缓冲区中 待修改
转换每个顶点:
对于每个顶点
For each influencing bone in vertex
Vertex tempvert;
tempvert = vertex.position * local bone inverse matrix;
tempvert = tempvert * world interpolated bone transform;
tempvert *= influence weight;
vertex += tempvert;
使用转换后的顶点
我也试过切换骨骼的局部和世界变换,但无济于事。我很确定我做的事情很愚蠢,我只是想确保在我撕开数学库之前的情况。
感谢您的帮助。