Exomode
@Exomode
Архитектор ПО

Как правильно получить IBM из TRS матрицы трансформации суставов?

Здравствуйте!
Пишу кастомный конвертер трехмерной графики из специфичного формата в glTF. При экспорте скининга, столкнулся с проблемой получения inverseBindMatrices для суставов скелета.
На входе есть матрица 4x4 для каждого сустава. При декомпозиции матрицы до TRS получаю валидные vector3 для перемещения, vector4 кватернион для вращения и vector3 для масштабирования, в blender после экспорта скелет выглядит корректно, TRS-анимация так же работает корректно. Меш при этом вывернут наизнанку, т.к. не хватает инверсной матрицы для локальных преобразований.
Никак не могу понять, как правильно получить матрицу IBM, имея на входе матрицу TRS. Пробовал варианты преобразования из мировых в локальные и обратно, а так же по формуле, предлагаемой официальной спецификацией glTF, но безрезультатно.
  • Вопрос задан
  • 58 просмотров
Решения вопроса 1
Exomode
@Exomode Автор вопроса
Архитектор ПО
Вопрос снят.
Решение - перевести все матрицы в мировой фрейм путем умножения на матрицу родительского джоинта, затем инвертировать.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы