2012-07-03 124 views

回答

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

这将复制深度缓冲器。

+0

我对此有一个简单的问题?它将深度缓冲区从FBO复制到默认帧缓冲区的深度缓冲区,但是如果您希望将深度数据可视化为RGB图像,是否有办法将深度值复制到颜色缓冲区中(而不是将颜色缓冲区窗口帧缓冲区)?或者如果你想要那么渲染到纹理? – user18490