Unity高斯模糊(Gaussian Blur)在UGUI中[高效][易用][效果棒]的实用方案
这篇文章是在 下面帖子的基础上做的实际应用
再此先感谢前辈做出的贡献
本文只做最 实用的信息 的描述,具体实现原理还请参考原文
作者:浅墨_毛星云 来源:CSDN 原文:https://blog.csdn.net/poem_qianmo/article/details/51871531
越来越多的游戏使用 高斯模糊 做 UI面板 的 背景
但在网上很少能够找到一个真正可用的版本用于实际项目中
所以在经过几天查资料,实验,并思考之后有了下面的解决方案在此 分享 给大家。
我的思路是:
1.高效
2.易用
3.显示效果佳
高效 和 显示效果 在开头引用文章中的方案已经解决了
代码中有高斯模糊的三个可调参数:
1.DownSampleNum [降采样次数] 向下采样的次数。此值越大,则采样间隔越大,需要处理的像素点越少,运行速度越快。
2.BlurSpreadSize [模糊扩散度]进行高斯模糊时,相邻像素点的间隔。此值越大相邻像素间隔越远,图像越模糊。但过大的值会导致失真。
3.BlurIterations [迭代次数]此值越大,则模糊操作的迭代次数越多,模糊效果越好,但消耗越大。
下面来说实际应用:
高斯模糊作为面板背景,我们想要的是什么?
用比较好的 效果,比较 高效 的获得一张无透明通道 的 高斯模糊屏幕渲染图
我们需要做的是什么?
1.调整上面三个参数,在需求允许的情况下用最高效的参数配置
2.在一次渲染中拿到高斯模糊的RenderTexture(后面简称 RT),赋值到RawImage之后,干掉一切不需要的逻辑和组件
3.在销毁界面后释放RT
易用方面:
目前做到的是只需要拖拽一个prefab到Hierarchy界面就可以当做一张全屏无透明通道的Image作为背景使用。
可以修改RawImage的色值来调整背景图片的色调 可以调亮调暗和这种色调 不过alpha值初始请保持为0。
以下是效果图:
附上源码下载地址: