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