所以我有一个3D的OpenGL应用程序,我想要显示一个2D HUD,我理解了很多谷歌搜索后如何做到这一点的基本概念,但我没有尝试让它显示出来。去在许多其他的例子后,我当前的代码是这样的:OpenGL 2D HUD没有显示
// HUD ///////////////////////////////////
glMatrixMode(GL_MODELVIEW);
glLoadIdentity();
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
glOrtho(0, (GLdouble)WIDTH, (GLdouble)HEIGHT, 0, -1, 1);
glDisable(GL_DEPTH_TEST);
glDisable(GL_CULL_FACE);
glColor3f(1, 1, 1);
glPushMatrix();
glBegin(GL_QUADS);
glVertex3f(-5.0f, 5.0f, 0.0f);
glVertex3f(-5.0f, -5.0f, 0.0f);
glVertex3f(5.0f, -5.0f, 0.0f);
glVertex3f(5.0f, 5.0f, 0.0f);
glEnd();
glPopMatrix();
glEnable(GL_DEPTH_TEST);
glDepthMask(GL_TRUE);
眼下没有什么视觉上的变化,我可以得到整个清屏的颜色但即使如此,我似乎无法画上一个四。
编辑:
glDisable(GL_CULL_FACE);
glDisable(GL_DEPTH_TEST);
glDepthMask(GL_FALSE);
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
glOrtho(0, WIDTH, HEIGHT, 0, -1, 1);
glMatrixMode(GL_MODELVIEW);
glLoadIdentity();
glClear(GL_DEPTH_BUFFER_BIT);
glColor3f(1, 1, 1);
glPushMatrix();
glBegin(GL_QUADS);
glVertex3f(-10.0f, 10.0f, 0.0f);
glVertex3f(-10.0f, -10.0f, 0.0f);
glVertex3f(10.0f, -10.0f, 0.0f);
glVertex3f(10.0f, 10.0f, 0.0f);
glEnd();
glPopMatrix();
glEnable(GL_CULL_FACE);
glEnable(GL_DEPTH_TEST);
glDepthMask(GL_TRUE);
编辑2:空中包厢CODE
glDisable(GL_CULL_FACE);
glDepthFunc(GL_LEQUAL); // Change depth function so depth test passes when values are equal to depth buffer's content
skyShader.Bind();
view = glm::mat4(glm::mat3(camera.GetViewProjection())); // Remove any translation component of the view matrix
glUniformMatrix4fv(glGetUniformLocation(skyShader.getProg(), "view"), 1, GL_FALSE, glm::value_ptr(view));
glUniformMatrix4fv(glGetUniformLocation(skyShader.getProg(), "projection"), 1, GL_FALSE, glm::value_ptr(projection));
// SKYBOX CUBE /////////////////////////////////
glBindVertexArray(skyboxVAO);
glActiveTexture(GL_TEXTURE0);
glUniform1i(glGetUniformLocation(skyShader.getProg(), "skybox"), 0);
glBindTexture(GL_TEXTURE_CUBE_MAP, skyboxTexture);
glDrawArrays(GL_TRIANGLES, 0, 36);
glBindVertexArray(0);
glDepthFunc(GL_LESS); // Set depth function back to default
您正在图像的左上角绘制5个像素,其他3/4的四边形都在视锥外。 – derhass
@derhass也许我只是在愚蠢,但我没有遵循,我已经改变了顶点值,但仍然没有看到任何东西。 – thesyncer
改成了什么? – derhass