gpt4 book ai didi

c++ - 相机的 OpenGL 问题(?)

转载 作者:太空宇宙 更新时间:2023-11-04 16:05:06 24 4
gpt4 key购买 nike

我正在学习 OpenGL,我的程序在我应该制作太阳系的地方遇到了问题。

首先,这是我用来设置 ModelView 矩阵的代码:

glMatrixMode(GL_MODELVIEW);
glLoadIdentity();
glRotatef(20, 1, 0, 0);
glTranslatef(0, -20, -60);

然后我使用线环绘制轨道,太阳是一个 gluSphere:

glPushMatrix();
glColor3f(1, 0.4f, 0);
glTranslatef(0, -2, 0);
gluSphere(gluNewQuadric(), 4, 30, 30);
glPopMatrix();

结果如下:

SolarSystem1

但是,当我使用这段代码“放大”时:

if (key=='w')
{
glTranslatef(0, 1, 2.4);
}
else if (key=='s')
{
glTranslatef(0, -1, -2.4);
}

发生这种情况:

enter image description here

线条停留在球体前面。我知道这可能是我在做的愚蠢的事情,但我才刚刚开始学习,这真的让我慢下来了……谢谢!

最佳答案

您可能没有打开深度测试。

glEnable(GL_DEPTH_TEST);

您可能还需要调整深度测试参数,但通常默认设置就足够了。

glDepthfunc(GL_LESS);

我还想借此机会强烈建议您停止使用 OpenGL 的立即模式和 OpenGL 的固定功能管道,并且 learn Modern OpenGL .

关于c++ - 相机的 OpenGL 问题(?),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36845324/

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