Я вращаю некоторые объекты в FleX, экспортирую их и отображаю их в Blender. Я понял, что вращения, которые я применяю к объектам в FleX, не вращают объекты так же, как Блендер. Если я понял это правильно, я узнал, что FleX использует матрицу преобразования для вращения объектов, но Blender [не обязательно] делает это. Я также поговорил с кем-то, кто использует плагин FleX в Unity, и он сказал, что у него схожие проблемы. Это касается как углов Эйлера, так и кватернионов. Ниже приведен фрагмент кода, который я использую для поворота объектов в FleX. Я довольно новичок в FleX и не знаю, какие функции мне следует использовать, чтобы получить те же повороты, что и в Blender, без ненужных преобразований. Может ли кто-нибудь помочь мне с этим?
Для вращения с углами Эйлера:
obj->Transform(RotationMatrix(rx, Vec3(1.0f, 0.0f, 0.0f)));
obj->Transform(RotationMatrix(ry, Vec3(0.0f, 1.0f, 0.0f)));
obj->Transform(RotationMatrix(rz, Vec3(0.0f, 0.0f, 1.0f)));
Для вращения с кватернионами:
obj->Transform(RotationMatrix(Quat(qx, qy, qz, qw)));