Решить z-Up экспортированный файл collada из блендера в OpenGL

Я экспортирую модели из Blender в Collada с анимацией. Как известно, Blender - это правая система, поэтому ее ось вверх равна z, а OpenGL ES2 - Y-Up.

Для статических сеток я могу вращать объект вокруг оси х на 90 ° градусов, но когда я применяю поворот к матрице кадра, он имеет неожиданные результаты.

Итак, как я могу это сделать?

Ответ 1

Повернуть объект:

Чтобы повернуть объект вручную, убедитесь, что вы выбрали объект (обычно щелкнув правой кнопкой мыши объект). Затем просто нажмите "R" на клавиатуре и переместите мышь и, соответственно, поверните объект. Вы можете понять, что у вас есть ограничение на то, как он вращается; снова нажмите "R" , и теперь вы увидите, что объект вращается свободно в зависимости от того, как вы перемещаете мышь.

Если вы хотите повернуть объект вокруг оси x на 90 градусов, затем снова выберите объект, нажмите "R" на клавиатуре (R для поворота), затем нажмите "X" на клавиатуре (X для оси X), затем введите 90 на ваш номерной знак и, наконец, нажмите "Enter". Вы увидите, что ваш объект вращается на 90 градусов по оси X.

Повернуть всю сцену:

  • Выберите все родительские объекты
  • Переместить 3D-курсор на 0,0,0
  • Повернуть вокруг курсора: глобальная ось X, -90 градусов
  • Применить ротацию
  • Продолжить обычный экспорт

Правильный способ справиться с этой проблемой состоит в том, чтобы сделать поворот как часть экспорта, так как точкой экспорта было бы взять правильно ориентированный объект Blender и создать правильно ориентированный объект Unity. Вы должны выполнять ротацию перед чем-либо еще. Применение вращения должно происходить до любого перевода в фактическом кадре.

Подробнее об этом можно узнать в следующем потоке: https://blenderartists.org/forum/archive/index.php/t-255246.html