正常后缓冲区+渲染到OpenGL(FBO)中的深度纹理

时间:2011-03-11 22:39:17

标签: opengl fbo

情况如下:我有一个包含一些深度值的纹理。我想使用该纹理作为深度缓冲区渲染一些几何体,但我希望将颜色写入正常的帧缓冲区(即窗口的帧缓冲区)。

我该怎么做?我尝试创建一个FBO,只绑定一个深度纹理(GL_DEPTH_COMPONENT)但是没有用;没有出现任何颜色。

1 个答案:

答案 0 :(得分:2)

不,你不能。您渲染的FBO可能是主帧缓冲区或屏幕外缓冲区。你不能以任何方式混合它们。

相反,我建议您渲染一个颜色渲染缓冲区,然后对主帧缓冲区进行简单的blitting操作。

编辑-1。

或者,如果你已经在主FB中有深度,你可以先进行深度渲染,然后渲染到主FB,从而将视频内存保存在附加的颜色渲染缓冲区上。

P.S。 Blitting通过glBlitFramebuffer完成。为了使其有效,您应为每个人设置GL_READ_FRAMEBUFFERGL_DRAW_FRAMEBUFFER和glDrawBuffer()。