画固定的背景

时间:2013-01-11 13:51:54

标签: c++ algorithm opengl 3d

在我的程序中,我正在尝试使用图像并将其绘制为静止背景。前景确实有一些模型加载到相机内并且运行得很好。

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

我在绘制背景之前禁用了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();

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

1 个答案:

答案 0 :(得分:2)

您需要禁用深度写入,以便背景不会占用深度缓冲区。

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);