Unity Shader怎么实现模糊效果

发布时间:2021-08-09 02:08:47 作者:chen
来源:亿速云 阅读:126

本篇内容主要讲解“Unity Shader怎么实现模糊效果”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Unity Shader怎么实现模糊效果”吧!

本文实例为大家分享了Unity Shader实现模糊效果的具体代码,供大家参考,具体内容如下

今天分享一个超简单实现模糊效果的方法,先上图:

Unity Shader怎么实现模糊效果

Unity Shader怎么实现模糊效果

核心代码就这句:

注意要在3.0以上的版本才能使用

Unity Shader怎么实现模糊效果

Unity Shader怎么实现模糊效果

在采样后做偏移采样再叠加,效果与下面的代码类似:

float4 frag(v2f o):SV_TARGET{
 fixed4 color = tex2D(_MainTex,o.uv);//,float2(_Scale,_Scale),float2(_Scale,_Scale)
 
 float2 uv1= o.uv +float2(_Scale,_Scale);
 fixed4 color2 = tex2D(_MainTex,uv1);

 float2 uv2= o.uv -float2(_Scale,_Scale);
 fixed4 color3 = tex2D(_MainTex,uv2);

 return (color+color2+color3)/3;
}

下面的完整代码:

Shader "Custom/TestShader40" {
 Properties{
  _MainTex("MainTex",2D)="White"{}
  _Scale("Scale",Range(0,0.1))=0
 }
 SubShader{
  Tags { "RenderType"="Opaque" }
  Pass{
   CGPROGRAM
    #pragma vertex vert
    #pragma fragment frag
    #pragma target 3.0
    #include "Lighting.cginc"

    sampler2D  _MainTex;
    float4 _MainTex_ST;
    float _Scale;

    struct a2v{
     float4 pos:POSITION;
     float4 uv:TEXCOORD0;
    };

    struct v2f{
     float4 wPos:SV_POSITION;
     float2 uv:TEXCOORD0;
    };

    v2f vert(a2v v){
     v2f o;
     o.wPos = UnityObjectToClipPos(v.pos);
     o.uv=TRANSFORM_TEX(v.uv,_MainTex);

     return o;
    }

    float4 frag(v2f o):SV_TARGET{
     fixed4 color = tex2D(_MainTex,o.uv,float2(_Scale,_Scale),float2(_Scale,_Scale));

     return color;
    }
   ENDCG
  }
 }
}

到此,相信大家对“Unity Shader怎么实现模糊效果”有了更深的了解,不妨来实际操作一番吧!这里是亿速云网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!

推荐阅读:
  1. Unity Shader如何实现描边OutLine效果
  2. Unity屏幕雪花另类实现方式示例

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

unity shader

上一篇:怎么在Python下使用Pygame实现时钟效果

下一篇:Unity Shader怎么实现径向模糊效果

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》