首页 > 解决方案 > 为什么我需要绑定姿势矩阵的逆来计算动画?

问题描述

我正在尝试在 OpenGL 中实现动画,但我并不真正了解反向绑定姿势矩阵。据我了解,该矩阵用于“恢复”任何先前应用于我的顶点的变形。但为什么我什至需要那个?为什么我不能只将我从文件加载的顶点位置传递给 GPU 并应用骨骼的旋转和平移而不进行任何额外的计算?GPU 不会修改客户端的顶点位置,所以我认为我不必恢复任何以前的转换,对吧?

标签: c++opengl

解决方案


网格顶点在对象空间中定义。要正确应用骨骼变换,顶点必须位于骨骼局部空间中。因此,姿势分两步应用:

  1. 将顶点从对象空间变换到骨骼空间(反向绑定姿势矩阵)
  2. 将顶点从骨骼空间转换为“动画”空间(来自动画的骨骼矩阵)

此外,您不能将顶点预转换为骨骼空间,因为(通常)顶点受到多个骨骼的影响。(感谢尼科尔波拉斯


推荐阅读