将深度渲染缓冲区复制到深度缓冲区

时间:2012-07-03 16:51:12

标签: c++ opengl glsl

目前我正在使用附加的深度渲染缓冲区向FBO渲染一些东西。

但是,在完成渲染缓冲区后,深度信息几乎丢失了。

如何将数据从渲染缓冲区复制到固定功能深度缓冲区?

1 个答案:

答案 0 :(得分:5)

您可以使用glBlitFramebuffer,启用GL_DEPTH_BUFFER_BIT标记。

示例代码:

glBindFramebuffer(GL_READ_FRAMEBUFFER, fbo_id);
glBindFramebuffer(GL_DRAW_FRAMEBUFFER, 0);

glBlitFramebuffer(offset_x, offset_y, offset_x + size_x, offset_y + size_y,
                  offset_x, offset_y, offset_x + size_x, offset_y + size_y,
                  GL_DEPTH_BUFFER_BIT,
                  GL_NEAREST);

这将仅复制 深度缓冲区。