由于某种原因,OpenGL x轴倒置

Posted

技术标签:

【中文标题】由于某种原因,OpenGL x轴倒置【英文标题】:OpenGL x-axis in inverted for some reason 【发布时间】:2016-10-06 07:52:19 【问题描述】:

当我尝试简单地围绕 xz 平面旋转相机以在原点查看我的模型时,我的相机就像 x 轴倒置一样。

projectionMatrix = glm::perspective(60.0f, (float)800 / (float)600, 0.1f, 1000.f);
viewMatrix  = glm::lookAt(
    glm::vec3(2.0f*sin(30.0f*(PI/180.0f)), 0, 2.0f*cos(30.0f*(PI/180.0f))),
    glm::vec3(0, 0, 0),
    glm::vec3(0, 1, 0)
);
modelMatrix = glm::scale(glm::mat4(1.0f), glm::vec3(1.5f));

如您所见,相机位置从 0 度开始,(x=0, z=2),随着度数接近 30,相机应该向右旋转到 30 度标记。相反,由于 x 轴由于某种原因像倒置一样,所以我的相机向左旋转而不是向右旋转,并以 330 度查看模型。

【问题讨论】:

完全不清楚这些矩阵将如何应用,所以基本上任何事情都有可能发生。 GLM 库在大多数 OpenGL 应用程序中是相当标准的,我不认为它是随机的:S 我知道glm。但我不知道你之后对这个矩阵做了什么。把事情搞砸很容易,即在某些时候使用错误的乘法顺序。 以上代码是我在发送到着色器之前对矩阵所做的唯一更改。 GLM 很受欢迎,所以我认为它使用正确的顺序 【参考方案1】:

在 30 度时,x=1 和 z=1.73,这使得相机看起来像是在向左移动。 X 应该被否定。

【讨论】:

抱歉,为什么在 OpenGL 的 RHS graphics.cs.williams.edu/courses/cs371/f10/G3D/manual/…987654321@

以上是关于由于某种原因,OpenGL x轴倒置的主要内容,如果未能解决你的问题,请参考以下文章

相机倒置OpenGL

初学者 openGL 项目渲染三角形的问题

cocoscreator调是opengl

OpenGL未将坐标正确映射到android屏幕

C++ OpenGL 着色版本错误 - 不支持 GLSL x [Ubuntu 16.04]

OpenGL学习——变换——绕x轴来回旋转的木板