美文网首页unity插件推荐
[Unity 3d] Super-Blur (Unity高斯模糊

[Unity 3d] Super-Blur (Unity高斯模糊

作者: 雨落随风 | 来源:发表于2019-06-21 22:59 被阅读4次

    这个仓库是一个非常非常实用的 (Gauss Blur) 高斯模糊 解决方案。顺带教下怎么将它用在场景过渡上。

    GitHub 上的工程多如繁星,有些好的仓库,但凡不经意间错过了就很难找回,故稍作采撷,希望能帮助到有心人。
    本文集以一个小的功能点为单位行文,也便于拾取罢!

    简介:

    笔者今天推荐的仓库叫 Super-Blur ,按仓库作者意思应该叫做 超级高斯模糊 ,哈哈。
    这个高斯模糊组件完善度高,效果好,学习成本基本为0 ,到手即用。

    功能:

    • 支持直接将渲染的高斯模糊效果覆盖相机画面。
    • 支持将渲染的高斯模糊效果输出到UI上。
    • 支持如下参数个性化定制:
    1. Render Mode - 选择将模糊效果作为 相机后期效果(PostEffect)或者仅仅是输出到UI上。
    2. Kernel Size - 更大的内核(Kernel)更好的模糊效果但是更高的性能耗费.
    3. Interpolation - 平滑过渡你的高斯模糊.
    4. Downsample - 控制缓冲分辨率 (0 = 无向下取样, 1 = 半分辨率... 以此类推.).
    5. Iterations - 迭代次数,更好的模糊效果,但需要消耗更多的性能。.
    6. Gamma Correction - 启用伽马校正以在Gamma色彩空间中生成正确的模糊。 如果使用线性颜色空间,请禁用此选项。

    使用:

    笔者将这个高斯模糊用在场景过渡上,也即是在场景过渡时我们可以籍此搞出漂亮的模糊效果来。

    1. 创建一个 Image 组件并铺满全屏。
    2. 将 SuperBlur 挂载在 MainCamera,指定对应材质球。
    3. 将 RenderMode 改为 UI Only,性能稍好。 (该模式下渲染的实时画面将仅仅输出到UI上,Screen 上的画面被中断。但此时Image覆盖了屏幕所以看不到画面中断的效果)
    4. 控制 Interpolation 实现 模糊效果 渐变过渡。
    5. 控制 step1 中的 Image Color 由白到黑插值 完成场景渐暗的效果。

    PS:

    • RenderMode中 Screen 模式 渲染的模糊效果将作为 相机的 后期效果叠加在相机上。不会通过 Shader 的配置输出到 UI。
    • UI Only 上面已经说了,我们说下 UI 模式,这个模式是将 渲染的模糊效果 通过材质球输出到 UI 上,但不中断 Camera 画面输出到屏幕。这在 Image 不铺满全屏时能体验到明显区别。
    • 动图中的 Demo 可以留言索取!

    演示:

    Gaussblur

    Tips:

    • 由于是模拟场景 Fade 过渡,每一次 Fade 达到最黑的时候改变一下Cube 位置,假装我们在那个时候切换了场景。
    • Gif 录制效果不代表真实效果~

    链接:

    PavelDoGreat/Super-Blur: Screen and UI gaussian blur for Unity

    结语:

    对这个插件,如果你有更妙的使用情景,笔者愿闻其详,洗耳恭听哟!

    本文集持续更新ing,喜欢记得点赞关注哦!

    相关文章

      网友评论

        本文标题:[Unity 3d] Super-Blur (Unity高斯模糊

        本文链接:https://www.haomeiwen.com/subject/cdlpqctx.html