Объединить матрицы (скелетная анимация в C++ с DirectX 11 из файла Collada)
Мне нужно объединить несколько матриц, чтобы сделать скелетную анимацию в C++.
Я уже получил следующие матрицы:
- Привязать матрицу форм из файла COLLADA.
- Матрица костей для каждой кости из файла COLLADA.
- Связать матрицу поз для каждой кости из файла COLLADA.
- Матрица обратной перевязки для каждой вычисленной кости.
- Матрица кадров каждого кадра на кость анимации из файла COLLADA.
Давайте назовем эти матрицы:
- bindShapeTrans (XMFloat4X4)
- localBoneTrans (вектор XMFloat4X4)
- bindPoses (вектор XMFloat4X4)
- invBindPoses (вектор XMFloat4X4)
- анимации (вектор вектора XMFloat4X4)
Теперь мне нужно создать массив матриц из них, чтобы перейти к моему вершинному шейдеру, который использует его для вычисления конечных положений вершин с учетом их веса.
И тут я заблудился. Я уже прочитал много уроков, но все они говорят разные вещи о порядке объединения матриц. Они также используют разные имена для матриц, и теперь я совершенно запутался.
Итак, как мне объединить эти матрицы, чтобы получить правильные конечные матрицы?
Спасибо за помощь.