Winds.shader 1.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071
  1. // Upgrade NOTE: replaced 'mul(UNITY_MATRIX_MVP,*)' with 'UnityObjectToClipPos(*)'
  2. Shader "MoleGame/Efx/Archer_Reclaim"
  3. {
  4. Properties
  5. {
  6. _MainTex ("MainTex", 2D) = "white" {}
  7. _MaskTex ("MaskTex", 2D) = "white" {}
  8. _Color("Main Color",Color) = (1,1,1,1)
  9. }
  10. Category
  11. {
  12. Tags {"Queue"="Transparent" "IgnoreProjector"="True"}
  13. Blend OneMinusDstColor One
  14. Cull Off ZWrite Off
  15. Fog { Mode Off }
  16. SubShader
  17. {
  18. Pass
  19. {
  20. CGPROGRAM
  21. #pragma vertex vert
  22. #pragma fragment frag
  23. #pragma fragmentoption ARB_precision_hint_fastest
  24. #pragma multi_compile_particles
  25. #include "UnityCG.cginc"
  26. sampler2D _MainTex;
  27. sampler2D _MaskTex;
  28. float4 _Color;
  29. struct appdata_t
  30. {
  31. float4 vertex : POSITION;
  32. float4 color : COLOR;
  33. float2 texcoord : TEXCOORD0;
  34. };
  35. struct v2f
  36. {
  37. float4 vertex : POSITION;
  38. float4 color : COLOR;
  39. float2 texcoord : TEXCOORD0;
  40. };
  41. v2f vert (appdata_t v)
  42. {
  43. v2f o;
  44. o.vertex = UnityObjectToClipPos(v.vertex);
  45. o.color = v.color;
  46. o.texcoord = v.texcoord;
  47. return o;
  48. }
  49. float4 frag (v2f i) : COLOR
  50. {
  51. float msk = tex2D(_MaskTex, i.texcoord).r;
  52. float col = tex2D(_MainTex, i.texcoord + float2(-0.5 + i.color.r * 1.5,0)).r;
  53. col = pow(col * 5,1.25);
  54. _Color = _Color * col * msk;
  55. return float4(_Color.rgb * i.color.a,1);
  56. }
  57. ENDCG
  58. }
  59. }
  60. }
  61. }