如何读取绑定到FBO颜色附件的纹理数组

时间:2013-11-26 02:45:45

标签: opengl framebuffer

我有一个FBO,其大小为4的纹理数组附加到其颜色附着点。类似地,还有另一个大小为4的纹理数组附加到深度连接点。

渲染到这个FBO之后,我想从纹理数组的第二层读取到CPU缓冲区。我该怎么做?

我知道,如果没有绑定到这个FBO的纹理数组,我会简单地完成:

glReadBuffer(GL_COLOR_ATTACHMENT0);
glReadPixels(...

但是如果2D数组绑定到FBO怎么办?我们可以调整glReadPixels来读取特定的图层吗?

1 个答案:

答案 0 :(得分:1)

所以我终于想通了:你必须使用glGetTexImage()。 另请注意,除非您不使用压缩纹理,否则请勿使用glGetTexLevelParameteriv查询其大小。 (我这样做,我一直得到无效的操作错误,我以为我没有正确调用glGetTexImage()!)。