我正在使用GPU进行繁重的计算,这涉及大量的渲染到纹理操作。这是一个迭代计算,因此对纹理进行大量渲染,然后将纹理渲染到另一个纹理,然后将第二个纹理渲染回第一个纹理,依此类推,每次都将纹理传递到着色器。
我的问题是:为每个想要渲染的纹理都有一个单独的FBO,或者我应该更好地拥有一个FBO并且每当我想要更改渲染目标时使用glFramebufferTexture2D
绑定目标纹理?
我的平台是iPhone上的OpenGL ES 2.0。
答案 0 :(得分:6)
在iPhone实现上,假设旧的和新的纹理是相同的尺寸/格式/等,更改附件是便宜的。否则,驱动程序必须做一些额外的工作来重新配置帧缓冲区。
答案 1 :(得分:3)
AFAIK,只使用一个FBO,并根据需要更改纹理附件,可以获得更好的性能。
答案 2 :(得分:0)
最好的方法是做基准。