欢迎来到代码驿站!

.NET代码

当前位置:首页 > 软件编程 > .NET代码

Unity Shader实现模糊效果

时间:2022-11-21 08:26:56|栏目:.NET代码|点击:

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

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

核心代码就这句:

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

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

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
  }
 }
}

上一篇:C#使用timer实现的简单闹钟程序

栏    目:.NET代码

下一篇:C#与.net高级编程 C#的多态介绍

本文标题:Unity Shader实现模糊效果

本文地址:http://www.codeinn.net/misctech/219521.html

推荐教程

广告投放 | 联系我们 | 版权申明

重要申明:本站所有的文章、图片、评论等,均由网友发表或上传并维护或收集自网络,属个人行为,与本站立场无关。

如果侵犯了您的权利,请与我们联系,我们将在24小时内进行处理、任何非本站因素导致的法律后果,本站均不负任何责任。

联系QQ:914707363 | 邮箱:codeinn#126.com(#换成@)

Copyright © 2020 代码驿站 版权所有