我正在尝试使用OpenGL渲染3D模型。对于投影和变换矩阵,我使用的是glm。我在屏幕上有我的模型,它就像我想要的那样工作;除了一个小问题。
我将模型的翻译矩阵设置为
glm::translate(glm::vec3(0, 0, 4)
向前移动模型,以便我可以看到它。因为在OpenGL中,默认情况下,负z朝向'相机',正z则是向前,我预计这会起作用,但事实并非如此。它只有在我将其设置为
时才有效 glm::translate(glm::vec3(0, 0, -4)
但这对我来说似乎很奇怪,因为我将zNear
设置为0.01并将zFar
设置为1000. glm的z值是否翻转或者我在这里做错了什么?
这是我的代码:
glm::mat4 rotation = glm::mat4(1.0f);
glm::mat4 translation = glm::translate(glm::vec3(0, 0, -4));
glm::mat4 scale = glm::mat4(1.0f);
glm::mat4 modelMatrix = translation * rotation * scale;
glm::mat4 projectionMatrix = glm::perspective(70.0f, aspectRatio, 0.01f, 1000.0f);
glm::mat4 transformationMatrix = projectionMatrix * modelMatrix;