это зависит от того, как вы думаете о преобразовании. Если матрица
умножения идут после точки (т.е. точка * преобразовывается с точкой
будучи вектором «строки»), то имеет смысл сказать, что он преобразует из
«пространство сетки в пространство кости», так как оно занимает точку в пространстве сетки и
выводит точку в костном пространстве. Но при использовании предварительного умножения матрицы
как делает assimp (transform * point с точкой, являющейся вектором "столбца")
имеет больше смысла думать об этом как о преобразовании самого пространства,
из "костного пространства в сетчатое пространство", после чего точка в сетчатом пространстве может
использоваться.
Вот почему оригинальный плакат смущен, потому что они думают
об этом в обратном направлении по сравнению с тем, как ассимп трактует точечное преобразование.
Это, вероятно, ведет непосредственно к их путанице с разработкой
матрица преобразования кости и думая, что это должно быть
так же, как mOffsetMatrix, когда на самом деле это обратное.
Это все особенно запутанно, так как DirectX использует постмножение,
и OpenGL использует предварительное умножение.
Это все говорит, я надеюсь, что кто-то может обновить документацию так
что всем понятно. Это очень сложно указать
явно без «официального» мышления о такого рода
вещь. Я даже не могу найти документально подтвержденное, как ассимп лечит
преобразование матрицы умножения ... хотя матричная запись
используется на странице «Структуры данных» документа Assimp подразумевает
предварительное умножение с векторами столбцов.
Надеюсь, что это поможет вам.