请问下我用高斯模糊写了个模糊的shader,但是用相机render一次的时候会卡顿300ms,这个有什么办法优化吗?

需要用差一点的安卓手机
log.info(“blurCamera render start”);
this.blurCamera.render();
let data = this.blurCamera.targetTexture.readPixels();
log.info(“blurCamera render end”); 从start到end大概用了400ms

一, 缩小Texture, 模糊程度比较高时, 200x200的图片放大5倍, 跟1000x1000的图片, 视觉效果差别不大.
二, 将模糊拆分成两次做, 先一次X方向的模糊, 得到Sprite后, 再将Sprite进行一次Y方向的模糊. 也就是shader的NxN次循环转成了2xN次. 实践证明效果是差不多的.
这样基本就可以实现实时模糊了.

4赞

这个第一步X方向完成之后,进行第二步y方向模糊有示例代码吗?我给一张图设置了2个材质,分别进行x,和y方向的模糊。单个运行都可以,但是同时运用时,只有第一个生效。 是哪里不对呢?

目前有点麻烦, 需要先输出一个方向的结果到renderTexture, 再在renderTexture上进行另个方向模糊.

好的,我试试

这个高斯模糊可以把教程贴出来吗?