首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在多个FBO之间使用双FBO切换

在多个FBO之间使用双FBO切换
EN

Stack Overflow用户
提问于 2019-07-04 11:13:42
回答 1查看 135关注 0票数 0

我正在移动设备上使用像GPUImage这样的GLES实现相机滤镜应用程序。

为了创建最终的过滤图像,需要在之前过滤的图像上渲染子过滤器。我的方法是为每个过滤步骤创建多个FBO。

例如,如果我使用三个过滤器来获得最终结果,则创建3个FBO。绑定FBO1和draw,然后使用FBO1 texture draw绑定FBO2,依此类推。

但是,由于我在使用FBO2纹理绘制FBO3时不需要FBO的内容,所以如果我重新使用FBO1而不是FBO3,那么我不需要创建很多FBO。

我不确定哪一个更好,或者任何性能优势,只是为每个过滤器步骤创建多个FBO?或者在第一和第二FBO之间切换。提前谢谢。

我给出了一些代码示例。

代码语言:javascript
复制
glBindFramebuffer(fbo1);
glClear();
glBindTexture(camera-texture);
draw();

glBindFramebuffer(fbo2);
glClear();
glBindTexture(fbo1-texture);
draw();

glBindFramebuffer(fbo3);
glClear();
glBindTexture(fbo2-texture);
draw();

...

or

If i swtich FBOs..

glBindFramebuffer(fbo1);
glBindTexture(camera-texture);
glClear();
draw();

glBindFramebuffer(fbo2);
glClear();
glBindTexture(fbo1-texture);
draw();

glBindFramebuffer(fbo1);
glClear();
glBindTexture(fbo2-texture);
draw();

...
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-07-04 20:34:52

对于性能,我怀疑这是否真的有什么不同--您正在执行相同数量的API调用。

最大的区别可能是内存占用-在少量FBO之间循环,因此在单个帧内多次重复使用其附件,与每个渲染过程具有唯一附件的方案相比,将减少需要分配的曲面总数。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56880196

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档