gpt4 book ai didi

c - Opengl 在 3d 场景问题上绘制 2d 叠加

转载 作者:太空狗 更新时间:2023-10-29 16:53:08 26 4
gpt4 key购买 nike

我设置了一个移动的 3d 场景,我想制作一个始终位于顶部的固定 2d GUI 叠加层,当我尝试制作 2d 形状时,我什么也看不到。当我打电话时:glMatrixMode(GL_PROJECTION);我的 3d 场景消失了,我只剩下一个空白窗口...

这是我用于覆盖的代码

编辑:更新代码

    glMatrixMode(GL_MODELVIEW);
glLoadIdentity();
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
gluOrtho2D(-100, 100, -100, 100);
glDisable(GL_DEPTH_TEST);
glDisable(GL_CULL_FACE);
glDisable(GL_TEXTURE_2D);
glDisable(GL_LIGHTING);
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);
glutSwapBuffers();

最佳答案

嗯...根据您发布的代码片段,我相信您的场景消失是因为您对矩阵所做的事情 - 对我来说看起来有点困惑。该方法应如下所示:

  • 清洁屏幕
  • 3D:
    • 启用照明、z 测试等
    • 将有源矩阵模式设置为投影
    • 加载标识并建立透视投影
    • 将有源矩阵模式设置回模型 View
    • 3D 绘制一切
  • 二维:
    • 禁用照明、z 测试等
    • 将有源矩阵模式设置为投影
    • 加载恒等式并建立正交投影
    • 将有源矩阵模式设置回模型 View
    • 绘制二维的一切
  • 交换缓冲区

此外,如果您想让您的生活更轻松,请考虑切换到着色器(以及一般的现代 OpenGL 版本):)。

关于c - Opengl 在 3d 场景问题上绘制 2d 叠加,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4280185/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com