我想一个接一个地运行多个着色器(主要是图像处理),一个输出是以下输入。我想知道只使用一个FBO绑定到所有需要的纹理是否有性能提升,或者为每个纹理创建一个FBO是否相同?
如果重要,目标平台是iPhone,因此使用OpenGL ES 2.0。
由于
答案 0 :(得分:1)
我不熟悉OpenGL ES,但在PC平台上通常最好只使用一个FBO,我不明白为什么这在ES上会有所不同(但是,我可能错了)。重要的是,绑定的所有纹理对于FBO完整性具有相同的大小(例如视口大小),否则它将不起作用。 通常,您最初将所有纹理附加到一个FBO,然后在每个帧中只更改每个过程中的rendertarget通道。这样可以节省由fbo绑定引起的大量状态更改。 请注意,可以绑定的最大纹理数受GL_MAX_COLOR_ATTACHMENTS_EXT的限制。 您可能还会发现这有用:http://www.songho.ca/opengl/gl_fbo.html
干杯, 莱因霍尔德