在OpenGL中从blender求解z-Up导出的collada文件

Moh*_*med 10 opengl-es blender collada opengl-es-2.0

我通过动画将模型从Blender输出到Collada.众所周知,Blender是一个右手系统,所以它的上轴是z,而OpenGL ES2是Y-Up.

对于静态网格物体,我可以围绕x轴旋转对象90度,但是当我将旋转应用于帧的矩阵时,它会产生意外结果.

那我该怎么做呢?

lax*_*089 1

旋转对象:

要手动旋转对象,请确保选择该对象(通常通过右键单击该对象)。然后只需按键盘上的“R”并移动鼠标即可看到对象相应旋转。您可能会意识到它的旋转方式受到限制;再次按“R”,现在您将看到对象根据您移动鼠标的方式自由旋转。

如果要将对象绕 x 轴旋转 90 度,则再次选择该对象,按键盘上的“R”(R 表示“旋转”),然后按键盘上的“X”(X 表示 X -axis),然后在数字键盘上输入 90,最后按“Enter”。您将看到对象沿 X 轴旋转 90 度。

旋转整个场景:

  1. 选择所有父对象
  2. 将 3D 光标移动到 0,0,0
  3. 绕光标旋转:全局 X 轴,-90 度
  4. 应用旋转
  5. 继续正常导出

处理此问题的正确方法是将旋转作为导出的一部分进行,因为导出的目的是获取正确方向的 Blender 对象并生成正确方向的 Unity 对象。您应该在执行其他操作之前执行旋转。旋转的应用应该发生在实际框架中的任何平移之前。

有关此内容的更多详细信息,请参阅以下线程:https ://blenderartists.org/forum/archive/index.php/t-255246.html