glFramebufferTexture2D 性能

Posted

技术标签:

【中文标题】glFramebufferTexture2D 性能【英文标题】:glFramebufferTexture2D performance 【发布时间】:2010-06-14 07:39:27 【问题描述】:

我正在使用 GPU 进行大量计算,其中涉及大量渲染到纹理的操作。这是一个迭代计算,因此需要对纹理进行大量渲染,然后将该纹理渲染到另一个纹理,然后将第二个纹理渲染回第一个纹理,依此类推,每次都将纹理传递给着色器。

我的问题是:为每个要渲染到的纹理有一个单独的 FBO 更好,还是应该有一个 FBO 并在每次我想更改渲染目标时使用 glFramebufferTexture2D 绑定目标纹理?

我的平台是 iPhone 上的 OpenGL ES 2.0。

【问题讨论】:

【参考方案1】:

在 iPhone 实现中,假设新旧纹理的尺寸/格式/等相同,更改附件的成本很低。否则,驱动程序必须做一些额外的工作来重新配置帧缓冲区。

【讨论】:

【参考方案2】:

AFAIK,仅使用一个 FBO 并根据需要更改纹理附件可获得更好的性能。

【讨论】:

你有支持这个的资源吗? http.download.nvidia.com/developer/presentations/2005/GDC/… 幻灯片 28 向前。【参考方案3】:

最好的方法是做基准测试。

【讨论】:

以上是关于glFramebufferTexture2D 性能的主要内容,如果未能解决你的问题,请参考以下文章

打开 GL ES 2 - glFramebufferTexture2D 带有不完整的缺少附件错误

OpenGL使用 FrameBufferObject

OSX OpenGL 深度模板组合

将帧缓冲区附加到纹理错误

OpenGL ES 2.0 坐标系

GL_COLOR_ATTACHMENT 有啥作用?