我成功地在我的代码中使用 FBO 作为渲染目标。但是我不清楚当我这样做时我可以期待什么结果:
glFramebufferTexture2D(GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT0,
GL_TEXTURE_2D, someRgbaTexture, 0);
glReadPixels(0, 0, width, height, GL_RGBA, GL_UNSIGNED_BYTE, *someRgbaBuffer);
在 OpenGL ES 2.0 中(假设 FBO 是 GL_FRAMEBUFFER_COMPLETE)。
我的目标是获取someRgbaTexture
. 桌面 OpenGL 具有用于此目的的 glGetTexImage() 函数,但它在 ES 中不存在。
设置someRgbaTexture
为读取纹理,然后在另一个 FBO 目标中执行屏幕填充纹理四边形,然后回读肯定可以解决问题,但我想避免额外的传递。
因此:调用后帧缓冲区的内容是否等于纹理的内容,glFramebufferTexture2D()
或者该调用是否意味着任何未来的渲染操作都将针对指定的纹理?
如果是后者:如果我的渲染操作只写入一个像素或什么都不写入会发生什么?对内容的保证是什么someRgbaTexture
然后?