123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123 |
- Shader "YXJ/Unlit/Wave"
- {
- Properties
- {
- _MainTex("Base (RGB)", 2D) = "white" {}
- _Color("Tint", Color) = (1,1,1,1)
- _ColorStrength("ColorStrength",Float) = 0
- _WaveStrength("Wave Strength",Float) = 0.01
- _WaveFactor("Wave Factor",Float) = 50
- _TimeScale("Time Scale",Float) = 10
- _Fade("Fade",Float) = 1
- }
-
- SubShader
- {
- Tags { "Queue"="Transparent" "IgnoreProjector"="True" "RenderType"="Transparent" }
- Blend SrcAlpha OneMinusSrcAlpha
- ColorMask RGB
- Cull [_Cull] Lighting Off ZWrite Off
- Pass
- {
- ZTest Greater
- CGPROGRAM
- #pragma vertex vert
- #pragma fragment frag
- struct appdata
- {
- float4 vertex : POSITION;
- float2 uv : TEXCOORD0;
- };
- struct v2f {
- float4 vertex:SV_POSITION;
- float2 uv:TEXCOORD0;
- };
- sampler2D _MainTex;
- fixed4 _Color;
- float _WaveStrength;
- float _WaveFactor;
- float _TimeScale;
- float _Fade;
- float _ColorStrength;
- v2f vert(appdata v)
- {
- v2f o;
- o.uv = v.uv;
- o.vertex = UnityObjectToClipPos(v.vertex);
- return o;
- }
- fixed4 frag(v2f IN) :COLOR
- {
- fixed2 uvDir = normalize(IN.uv - fixed2(0.5, 0.5));
- fixed dis = distance(IN.uv, fixed2(0.5, 0.5));
- fixed2 uv = IN.uv + _WaveStrength * uvDir * sin(_Time.y * _TimeScale + dis * _WaveFactor);
- fixed4 col = tex2D(_MainTex, uv) * _Color * sin(1 - abs(2 * IN.uv.x - 1) + _Fade) * sin (1 - abs(2 * IN.uv.y - 1) + _Fade) * _ColorStrength;
- col.a *= 0.5;
- return col;
- }
- ENDCG
- }
- Pass
- {
- ZTest Less
- CGPROGRAM
- #pragma vertex vert
- #pragma fragment frag
- struct appdata
- {
- float4 vertex : POSITION;
- float2 uv : TEXCOORD0;
- };
- struct v2f {
- float4 vertex:SV_POSITION;
- float2 uv:TEXCOORD0;
- };
- sampler2D _MainTex;
- fixed4 _Color;
- float _WaveStrength;
- float _WaveFactor;
- float _TimeScale;
- float _Fade;
- float _ColorStrength;
- v2f vert(appdata v)
- {
- v2f o;
- o.uv = v.uv;
- o.vertex = UnityObjectToClipPos(v.vertex);
- return o;
- }
- fixed4 frag(v2f IN) :COLOR
- {
- fixed2 uvDir = normalize(IN.uv - fixed2(0.5, 0.5));
- fixed dis = distance(IN.uv, fixed2(0.5, 0.5));
- fixed2 uv = IN.uv + _WaveStrength * uvDir * sin(_Time.y * _TimeScale + dis * _WaveFactor);
- return tex2D(_MainTex, uv) * _Color * sin(1 - abs(2 * IN.uv.x - 1) + _Fade) * sin (1 - abs(2 * IN.uv.y - 1) + _Fade) * _ColorStrength;
- }
- ENDCG
- }
- }
- FallBack "Diffuse"
- }
|