1

我想一个接一个地运行几个着色器(主要是图像处理),一个的输出是以下的输入。我想知道仅使用一个绑定到所有需要的纹理的 FBO 是否会提高性能,或者为每个纹理创建一个 FBO 是否相同?

如果重要的话,目标平台是 iPhone,因此使用 OpenGL ES 2.0。

谢谢

4

1 回答 1

1

我不熟悉 OpenGL ES,但在 PC 平台上通常最好只使用一个 FBO,我不明白为什么这在 ES 上应该有所不同(但是,我可能错了)。重要的是,所有绑定的纹理都具有相同的大小(例如视口大小)以确保 FBO 的完整性,否则它将无法工作。通常,您最初将所有纹理附加到一个 FBO,然后在每一帧中,只需在每个通道中更改渲染目标通道。这为您节省了大量由 fbo 绑定引起的状态更改。请注意,可以绑定的最大纹理数量受 GL_MAX_COLOR_ATTACHMENTS_EXT 的限制。您可能还会发现这很有帮助: http: //www.songho.ca/opengl/gl_fbo.html

干杯,莱因霍尔德

于 2011-04-06T18:07:34.637 回答