0

我在尝试使用平滑蒙皮为游戏中的网格设置动画时遇到问题。我正在从 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;
    
  • 使用转换后的顶点更新 GPU

我也尝试过切换骨骼的本地和世界变换,但无济于事。我很确定我在做一些愚蠢的事情,我只是想在我拆开我的数学库之前确保是这种情况。

谢谢您的帮助。

4

0 回答 0