DirectX Animation - PullRequest
       25

DirectX Animation

0 голосов
/ 14 декабря 2018

Я пытаюсь воспроизвести анимацию в написанной мной программе DirectX.Я использовал FBX SDK, чтобы получить данные Mesh.

У меня работает анимация.Это очень простая Idle Animation, и она отлично работает.У меня есть другая анимация с той же сеткой, но сетка действительно выглядит странно.

Я прикреплю картинки обеих анимаций.Анимация, которая не работает, является более сложной анимацией, чем неработающая анимация.Я рассчитываю свою позицию вершины для очищенной сетки, посылая массив «отложенных» матриц (каждая матрица в массиве для каждого соединения в сетке), а также другой массив матриц для соединений в позе связывания.,Матрицы позы связывания являются инвертированными.

В моем вершинном шейдере я умножаю положение вершины на матрицу перевернутой позы связывания, а затем умножаю матрицу "lerped" (т.е. матрицу, которую я вычисляю для соединения для перехода между ключевыми кадрами).) весом, чтобы получить новую позицию.

(Кроме того, нет ничего плохого в сетке)

Я не уверен, где я иду не так.Если я пропустил какие-либо детали, пожалуйста, дайте мне знать.

Редактировать: При дальнейшем осмотре я думаю, что другая анимация также не корректна, но так получилось, что она имеет минимальное движение и поэтому выглядит правильно.

Хорошо:

Good Animation Screenshot 1

Good Animation Screenshot 2

Плохо:

Bad Animation Screenshot 1

Bad Animation Screenshot 2

Bad Animation Screenshot 3

...