Image Effect之Blur(飞车模糊)

前言:

       前段时间认识一位大牛,听他说Image Effect 很值得一看,这不,研究了一个星期,终于有所成果!发出来主要是分享给大家和以后复习更方面,如果小伙伴们有更好的做法,可以提出来哦,一起交流,谢谢大家!

进入主题:

       原本打算用一个赛车的场景实现这个功能,方便大家理解,但是为了方面我就随便打了个环境,也实现模糊的功能。

      首先我们要导入资源包Image Effects (Pro Only),注意只有专业能用这个功能。然后在摄像机上挂上Blur Effect这个脚本(只有挂在相机上才起作用),最后可以调整以下参数来获得很好的效果

(1).Iterations(迭代次数)-模糊操作重复的次数。越多迭代,模糊的效果越好,但同样也消耗更多的时间,同时会增加DC,也就是增加一次迭代,就会对应的增加一个DC,因为所用到的Shader-BlurEffectConeTaps里面只有一个Psaa.

(2).Blur Spread (模糊半径)-更大的数值可以让模糊在同样的迭代次数中蔓延的更广,但会带来额外的开销。一般来说选择0.6-0.7范围的数值可以在质量与速度之间达到一个比较好的平衡。

当然你也可以自己写Shader,我看了下,貌似不难,虽然我只是Shader菜鸟!很菜很菜。。。。。大哭


附上代码,当然你可以将那个立方体换成赛车测试下效果如何。

<span style="font-family:Microsoft YaHei;font-size:18px;color:#660000;"></pre><pre name="code" class="csharp"><strong><span style="font-size:18px;color:#660000;">using UnityEngine;
using System.Collections;

public class Blur : MonoBehaviour {
    private BlurEffect mBlurEffect;
    void Start()
    {

        mBlurEffect = GetComponent<BlurEffect>();
        mBlurEffect.enabled = false;
    }


    void Update()
    {

        if (Input.GetKeyDown(KeyCode.Q))
        {
            StartCoroutine(BlurEffects());
        }

    }
    IEnumerator BlurEffects()
    {
        mBlurEffect.enabled = true;
        yield return new WaitForSeconds(3.0f);
        mBlurEffect.enabled = false;

    }
}</span></strong></span>

效果图如下:



只要按下键盘的Q键,相应的效果就会显示出来哦!我的Unity版本是4.6.0f3,这里还提供了一个优化的Blur Effect

,如下图所示:


     这个脚本更适用于移动平台,同时他也提供了更多的属性来实现更好效果,但然相对于上面那个脚本也更耗性能,查看了其使用的Shader,多增加一次Iterations(迭代次数),就会增加两个DC.个人建议:当你在移动平台使用模糊效果,可以使用优化好的Blur Effect,反之则使用没优化的Blur Effect

最后的最后:

   每种Shader都可能有平台的限制,当然这里所讲的模糊效果也有平台的限制,以下是翻译自Unity官网

   This effect requires a graphics card with pixel shaders (2.0) or OpenGL ES 2.0. PC: NVIDIA cards since 2003 (GeForce FX), AMD cards since 2004 (Radeon 9500), Intel cards since 2005 (GMA 900); Mobile: OpenGL ES 2.0; Consoles: Xbox 360, PS3.

      这个特效需要显卡拥有像素着色器(2.0)或者OpenGL ES 2.0。台式机:2003年以后的NVIDIA显卡(GeForce FX),2004年以后的AMD显卡(Radeon 9500),2005年以后的Intel卡(GMA 900);移动设备:OpenGL ES 2.0;控制台: Xbox 360、 PS3。

     All image effects automatically disable themselves when they can not run on end-users graphics card.

所有图像特效如果无法在用户显卡上运行时将会自动被关闭。




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值