我应该重新使用单个FBO来执行多个任务,还是为每个任务分别使用FBO?

时间:2015-03-31 09:28:06

标签: opengl glsl framebuffer

我有一个场景,其中定义了单个FBO。 就像上面提到的那样,我使用相同的FBO进行渲染..

e.g。

绽放 -
1-提取图像的白色部分
2-模糊白色部分
3-组合模糊白+原始场景
4-渲染FBO

现在,一切都按预期工作,我看到一个漂亮的开花图像。 但是,如果我为任务1,2和3分别设置FBO,那么性能会有显着提高吗?

1 个答案:

答案 0 :(得分:1)

我在更改FBO附件时(即从Float到8位或通过删除/添加深度缓冲区更改配置)在WebGL中遇到问题(渲染失败)。所以在这种情况下我会推荐单独的FBO。但是,我很确定这些是实现中的错误。

我没有看到与常规桌面GL有任何明显的性能差异,但我的瓶颈通常在其他地方。我相信当你使用很多附件(例如颜色附件)时,它才会变得很重要,在这种情况下,另一个FBO的单个绑定/解除绑定会更快。

当您的应用程序可以并行执行其中一些渲染作业时,这会变得更加有趣和复杂,因为我相信this回答是暗示的。

相关:

最后,测试/基准测试只是为了确保绝不是一个坏主意。