У меня опять вопросы по скелетке. Сейчас я рассчитываю вершины таким макаром:
newPosition += ( ( boneNode->globalTransform * boneNode->invBoneBindTransform )
* globalTransform ) * initialPosition * bone.weight;
как видно
, вершины получаются в глобальной системе координат, и поэтому перед отрисовкой я передаю в шейдер единичную мировую матрицу. Меня это не устраивает. По логике нужно рассчитывать вершины в локальных координатах, но если так сделать, т.е:
newPosition += ( ( boneNode->globalTransform * boneNode->invBoneBindTransform ) )
* initialPosition * bone.weight;
А в шейдер передать мировую матрицу, то анимация благополучно превратится в говно. В чем косяк?
boneNode->globalTransform * boneNode->invBoneBindTransform
Эта строчка позволяет получить относительную трансформацию относительно первого кадра? Или трансформацию в локальных координатах?
Пжлста разъясните, а то криповый момент в игру не добавить
