如何从framebuffer对象中读取像素

时间:2013-09-22 03:28:43

标签: opengl framebuffer

我想读取渲染到帧缓冲对象的场景的深度分量。我最初使用glReadPixels()但发现它只能读取默认帧缓冲区中的像素。

本网站上一些相关问题的答案建议使用PBO,但我还没有尝试过。看来PBO读取是异步的,因此,使用哪个命令可以在最后同步读数?

1 个答案:

答案 0 :(得分:2)

PBO在这里不会帮助你,因为这些只是一种不同类型的缓冲区(而不是主机上的内存进入OpenGL实现的内存)。

在OpenGL中使深度组件可以反向读取的常用方法是使用附加到深度附件的深度纹理,并在使用 glGetTexImage 进行渲染后检索日期。

在正常颜色附件的情况下,您可以使用glReadPixels与之前调用glReadBuffer来选择绑定FBO的GL_COLOR_ATTACHMENT<i>