我有一个FBO,其大小为4的纹理数组附加到其颜色附着点。类似地,还有另一个大小为4的纹理数组附加到深度连接点。
渲染到这个FBO之后,我想从纹理数组的第二层读取到CPU缓冲区。我该怎么做?
我知道,如果没有绑定到这个FBO的纹理数组,我会简单地完成:
glReadBuffer(GL_COLOR_ATTACHMENT0);
glReadPixels(...
但是如果2D数组绑定到FBO怎么办?我们可以调整glReadPixels来读取特定的图层吗?
答案 0 :(得分:1)
所以我终于想通了:你必须使用glGetTexImage()。 另请注意,除非您不使用压缩纹理,否则请勿使用glGetTexLevelParameteriv查询其大小。 (我这样做,我一直得到无效的操作错误,我以为我没有正确调用glGetTexImage()!)。