Unity实现流光效果的技巧

1.通过一些简单效果可以让我们更好的去理解shader,具体都在代码注释中:

登录后复制

Shader "Unlit/MoveLightImage"{  Properties  {    //主纹理    _MainTex ("Texture", 2D) = "white" {}    //灯光纹理    _LightTex("Light Texture",2D)="white"{}    //遮罩纹理    _MaskTex("Mask Texture",2D)="white"{}  }  SubShader  {    Tags {"Queue"="Transparent" "RenderType"="Transparent" }    LOD 100    //透明混合    Blend SrcAlpha OneMinusSrcAlpha    Pass    {      CGPROGRAM      #pragma vertex vert      #pragma fragment frag      // make fog work      #pragma multi_compile_fog            #include "UnityCG.cginc"      struct appdata      {        float4 vertex : POSITION;        float2 uv : TEXCOORD0;      };      struct v2f      {        float2 uv : TEXCOORD0;        UNITY_FOG_COORDS(1)        float4 vertex : SV_POSITION;      };      sampler2D _MainTex;      float4 _MainTex_ST;      sampler2D _LightTex;      sampler2D _MaskTex;      fixed4 _Color;      v2f vert (appdata v)      {        v2f o;        o.vertex = mul(UNITY_MATRIX_MVP, v.vertex);        o.uv = TRANSFORM_TEX(v.uv, _MainTex);        UNITY_TRANSFER_FOG(o,o.vertex);        return o;      }            fixed4 frag (v2f i) : SV_Target      {        //灯光贴图 取一半UV        float2 uv=i.uv*0.5;        //不断改变uv的x轴,让他往x轴方向移动,_Time为shader的时间函数,会一直执行        uv.x+=-_Time.y*0.4;        //取灯光贴图的alpha值,黑色为0,白色为1         fixed lightTexA=tex2D(_LightTex,uv).a;        //获取遮罩贴图的alpha值,黑色为0,白色为1 这里的uv和上面的uv是调用的不一样的函数        fixed maskA=tex2D(_MaskTex,i.uv).a;        //主纹理+灯光贴图*遮罩贴图 简单原理任何数*0为0   这样就避免了遮罩外出现不协调灯光贴图        fixed4 col = tex2D(_MainTex, i.uv)+lightTexA*maskA*0.6;        // apply fog        UNITY_APPLY_FOG(i.fogCoord, col);               return col;      }      ENDCG    }  }}1.2.3.4.5.6.7.8.9.10.11.12.13.14.15.16.17.18.19.20.21.22.23.24.25.26.27.28.29.30.31.32.33.34.35.36.37.38.39.40.41.42.43.44.45.46.47.48.49.50.51.52.53.54.55.56.57.58.59.60.61.62.63.64.65.66.67.68.69.70.71.72.73.74.75.76.77.

2.材质参数:

unity 实现流光效果_流光效果



3.效果展示

unity 实现流光效果_#pragma_02



免责声明:本文系网络转载或改编,未找到原创作者,版权归原作者所有。如涉及版权,请联系删

QR Code
微信扫一扫,欢迎咨询~

联系我们
武汉格发信息技术有限公司
湖北省武汉市经开区科技园西路6号103孵化器
电话:155-2731-8020 座机:027-59821821
邮件:tanzw@gofarlic.com
Copyright © 2023 Gofarsoft Co.,Ltd. 保留所有权利
遇到许可问题?该如何解决!?
评估许可证实际采购量? 
不清楚软件许可证使用数据? 
收到软件厂商律师函!?  
想要少购买点许可证,节省费用? 
收到软件厂商侵权通告!?  
有正版license,但许可证不够用,需要新购? 
联系方式 155-2731-8020
预留信息,一起解决您的问题
* 姓名:
* 手机:

* 公司名称:

姓名不为空

手机不正确

公司不为空