Скелетная анимация файлов DirectX в OpenGL
Я пытаюсь импортировать файлы * .x в мой движок и анимировать их с помощью OpenGL (пока без шейдеров, но сейчас это не совсем актуально). Я нашел ссылку на формат в MSDN, но это мало помогает в проблеме.
Итак - в основном - я создал файл, содержащий простую анимацию демоноподобного существа с 7 костями (основной, 2 для хвоста и 4 для ног), из которых только 2 (те, что в правой ноге) анимированы на данный момент. Я протестировал сетку в DXViewer, и она, кажется, отлично работает там, поэтому проблема должна быть в моем коде.
Когда я экспортирую сетку, я получаю файл, содержащий много информации, из которой есть 3 важных места для скелетной анимации (все приведенные ниже матрицы предназначены для кости RLeg2):
SkinWeights - matrixOffset
-0.361238, -0.932141, -0.024957, 0.000000,
0.081428, -0.004872, -0.996669, 0.000000,
0.928913, -0.362066, 0.077663, 0.000000,
0.139213, -0.057892, -0.009323, 1.000000
FrameTransformMatrix
0.913144, 0.000000, -0.407637, 0.000000,
0.069999, 0.985146, 0.156804, 0.000000,
0.401582, -0.171719, 0.899580, 0.000000,
0.000000, -0.000000, 0.398344, 1.000000
Матрица AnimationKey в позе связывания
0.913144, 0.000000, -0.407637, 0.000000,
0.069999, 0.985146, 0.156804, 0.000000,
0.401582, -0.171719, 0.899580, 0.000000,
0.000000, -0.000000, 0.398344, 1.000000
Мой вопрос -что мне делать с этими матрицами? Я нашел уравнение на сайте Университета Ньюкасла (http://research.ncl.ac.uk/game/mastersdegree/graphicsforgames/skeletalanimation/), но там только 1 матрица. Вопрос в том -как мне объединить эти матрицы, чтобы получить матрицу вершинного преобразования?