2012-07-03 127 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