Unity移动端高效率动态模糊


一般的界面会有一个背景,然后背景上方放一个plane,该plane可以把背景模糊,

有很多种方法,比如取GrabPass然后缩小,取样,高斯模糊再放大,

但是这种方法效率依然不适合移动端,(不知道博客园能不能被编辑,图片我想以后再补充)

<2019年7月20日,二次修改补图>

 

我下面介绍一种方法:

需要两张图片一个遮罩层    背景1(正常背景)/背景2(已经在PS中模糊的背景)/Mask(plane的形状)

 如图所示,Mask为简单的方形

Mask,模糊后的img 都是scrollball的子对象

固定背景img是scrollball的父对象,

 

问题被简化为,使模糊后的img和固定背景img保持相对静止,

 即:


    
    
    public virtual void OnValueChanged(Vector2 scrollVector)
    {
        BlurTransform.GetComponent<RectTransform>().position = transform.GetComponent<RectTransform>().position;
    }

这种形式, 因为实现比较简单,就不写demo了

这种方式可以很高效的在移动端模拟出背景动态模糊,因为只是对一张已经模糊过的图,利用scroll和mask来显示不同部位而已。

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM