绘制一个固定的背景

Drawing a stationary background

本文关键字:背景 一个 绘制      更新时间:2023-10-16

在我的程序中,我试图使用图像并将其绘制为固定背景。前景确实有一些模型加载在相机内,运行良好。

然而,当我应用背景图像时,整个模型和其他对象不会出现,我只能看到背景图像出现在屏幕上。

我在绘制背景之前禁用了Depth_Test,然后在绘制模型之前重新启用它。

glDisbale(GL_DEPTH_TEST);
bgImage.draw(0,0); //draw the background image. Width and height parameters previously while initializing image
glEnable(GL_DEPTH_TEST);
cam.begin();
//stuff drawn inside
cam.end();

也尝试在bgImage.draw之后清除Depth Buffer/Depth Color bit,但没有任何变化。

你需要禁用深度写入,这样背景就不会占用深度缓冲区。

glDepthMask(GL_FALSE);
background();
glDepthMask(GL_TRUE);

或者你只是在绘制背景后清除深度缓冲区:

glDisable(GL_DEPTH_TEST);
background();  // instead of clearing the color
glClear(GL_DEPTH_BUFFER_BIT);
glEnable(GL_DEPTH_TEST);