将 2 个纹理绑定到一个或两个 FBO 是不是更快?
Posted
技术标签:
【中文标题】将 2 个纹理绑定到一个或两个 FBO 是不是更快?【英文标题】:Is it faster to bind 2 textures to one or two FBO?将 2 个纹理绑定到一个或两个 FBO 是否更快? 【发布时间】:2011-03-16 17:39:19 【问题描述】:我想一个接一个地运行几个着色器(主要是图像处理),一个的输出是以下的输入。我想知道只使用一个绑定到所有需要的纹理的 FBO 是否会提高性能,或者为每个纹理创建一个 FBO 是否相同?
如果重要的话,目标平台是 iPhone,因此使用 OpenGL ES 2.0。
谢谢
【问题讨论】:
【参考方案1】:我不熟悉 OpenGL ES,但在 PC 平台上通常最好只使用一个 FBO,我不明白为什么这在 ES 上应该有所不同(但是,我可能错了)。重要的是,所有绑定的纹理都具有相同的大小(例如视口大小)以确保 FBO 的完整性,否则它将不起作用。 通常,您最初将所有纹理附加到一个 FBO,然后在每一帧中,只需在每个通道中更改渲染目标通道。这为您节省了大量由 fbo 绑定引起的状态更改。 请注意,可以绑定的最大纹理数量受 GL_MAX_COLOR_ATTACHMENTS_EXT 的限制。 您可能还会发现这很有帮助:http://www.songho.ca/opengl/gl_fbo.html
干杯, 再接再厉
【讨论】:
以上是关于将 2 个纹理绑定到一个或两个 FBO 是不是更快?的主要内容,如果未能解决你的问题,请参考以下文章