Объединить матрицы (скелетная анимация в c ++ с DirectX 11 из файла Collada)

Мне нужно объединить несколько матриц, чтобы сделать скелетную анимацию в C ++.

Я уже получил следующие матрицы:

  1. Привязать матрицу форм из файла COLLADA.
  2. Матрица костей для каждой кости из файла COLLADA.
  3. Привязать матрицу поз для каждой кости из файла COLLADA.
  4. Матрица обратной перевязки для каждой вычисленной кости.
  5. Матрица кадров каждого кадра на кость анимации из файла COLLADA.

Давайте назовем эти матрицы:

  1. bindShapeTrans (XMFloat4X4)
  2. localBoneTrans (вектор XMFloat4X4)
  3. bindPoses (вектор XMFloat4X4)
  4. invBindPoses (вектор XMFloat4X4)
  5. анимации (вектор вектора XMFloat4X4)

Теперь мне нужно создать массив матриц из них, чтобы перейти к моему вершинному шейдеру, который использует его для вычисления конечных положений вершин с учетом их веса.

И тут я заблудился. Я уже прочитал много уроков, но все они говорят разные вещи о порядке объединения матриц. Они также используют разные имена для матриц, и теперь я совершенно запутался.

Итак, как мне объединить эти матрицы, чтобы получить правильные конечные матрицы?

Спасибо за помощь.

1

Решение

Задача ещё не решена.

Другие решения