[Unity 3d] Super-Blur (Unity高斯模糊
2019-06-21 本文已影响4人
雨落随风
这个仓库是一个非常非常实用的 (Gauss Blur) 高斯模糊 解决方案。顺带教下怎么将它用在场景过渡上。
GitHub 上的工程多如繁星,有些好的仓库,但凡不经意间错过了就很难找回,故稍作采撷,希望能帮助到有心人。
本文集以一个小的功能点为单位行文,也便于拾取罢!
简介:
笔者今天推荐的仓库叫 Super-Blur ,按仓库作者意思应该叫做 超级高斯模糊 ,哈哈。
这个高斯模糊组件完善度高,效果好,学习成本基本为0 ,到手即用。
功能:
- 支持直接将渲染的高斯模糊效果覆盖相机画面。
- 支持将渲染的高斯模糊效果输出到UI上。
- 支持如下参数个性化定制:
- Render Mode - 选择将模糊效果作为 相机后期效果(PostEffect)或者仅仅是输出到UI上。
- Kernel Size - 更大的内核(Kernel)更好的模糊效果但是更高的性能耗费.
- Interpolation - 平滑过渡你的高斯模糊.
- Downsample - 控制缓冲分辨率 (0 = 无向下取样, 1 = 半分辨率... 以此类推.).
- Iterations - 迭代次数,更好的模糊效果,但需要消耗更多的性能。.
- Gamma Correction - 启用伽马校正以在Gamma色彩空间中生成正确的模糊。 如果使用线性颜色空间,请禁用此选项。
使用:
笔者将这个高斯模糊用在场景过渡上,也即是在场景过渡时我们可以籍此搞出漂亮的模糊效果来。
- 创建一个 Image 组件并铺满全屏。
- 将 SuperBlur 挂载在 MainCamera,指定对应材质球。
- 将 RenderMode 改为 UI Only,性能稍好。 (该模式下渲染的实时画面将仅仅输出到UI上,Screen 上的画面被中断。但此时Image覆盖了屏幕所以看不到画面中断的效果)
- 控制 Interpolation 实现 模糊效果 渐变过渡。
- 控制 step1 中的 Image Color 由白到黑插值 完成场景渐暗的效果。
PS:
- RenderMode中 Screen 模式 渲染的模糊效果将作为 相机的 后期效果叠加在相机上。不会通过 Shader 的配置输出到 UI。
- UI Only 上面已经说了,我们说下 UI 模式,这个模式是将 渲染的模糊效果 通过材质球输出到 UI 上,但不中断 Camera 画面输出到屏幕。这在 Image 不铺满全屏时能体验到明显区别。
- 动图中的 Demo 可以留言索取!
演示:
GaussblurTips:
- 由于是模拟场景 Fade 过渡,每一次 Fade 达到最黑的时候改变一下Cube 位置,假装我们在那个时候切换了场景。
- Gif 录制效果不代表真实效果~
链接:
PavelDoGreat/Super-Blur: Screen and UI gaussian blur for Unity
结语:
对这个插件,如果你有更妙的使用情景,笔者愿闻其详,洗耳恭听哟!
本文集持续更新ing,喜欢记得点赞关注哦!