WebGL:如何将每个绘图与前一个帧缓冲区混合使用自定义混合模式?

时间:2017-04-27 06:07:34

标签: webgl blending

我正在使用webgl实现一个画笔引擎。对于我绘制的每个图章,我希望这个图章与帧缓冲区中的前一个图形混合,使用我自己的自定义混合功能来实现一些很酷的效果。我知道我可以将图章绘制到自定义纹理,并使用着色器将自定义纹理与上一个绘图帧缓冲区混合。但由于画布非常大,所以性能非常慢,因为有很多邮票要画。

我知道在OpenGL ES2.0中,apple为此提供了EXT_shader_framebuffer_fetch扩展,而且速度很快。但是如何在WebGL中以更好的性能做到这一点?

1 个答案:

答案 0 :(得分:0)

即使有扩展名,也无法从WebGL中的目标帧缓冲区获取。

你需要在两个不同的纹理支持的帧缓冲区之间进行乒乓,在抽取到另一个的同时从一个抽样。 (如果需要,可以在此处每帧绘制一次以上,以响应鼠标事件!)然后在requestAnimationFrame的每一帧中将最近绘制的帧缓冲区纹理绘制到后备缓冲区。

相关问题