FX_AlphaBlend2.shader 3.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117
  1. // Upgrade NOTE: replaced 'mul(UNITY_MATRIX_MVP,*)' with 'UnityObjectToClipPos(*)'
  2. Shader "RO_X/FX_2/AlphaBlend" {
  3. Properties {
  4. _MainTex ("Base", 2D) = "white" {}
  5. _NoiseTex ("Noise", 2D) = "white" {}
  6. _TintColor ("TintColor", Color) = (1.0, 1.0, 1.0, 1.0)
  7. _UOffsetSpeed ("XOffsetSpeed", Float) = 0
  8. _VOffsetSpeed ("YOffsetSpeed", Float) = 0
  9. _UVRotateSpeed ("UVRotateSpeed", Float) = 0
  10. _NUOffsetSpeed ("NXOffsetSpeed", Float) = 0
  11. _NVOffsetSpeed ("NYOffsetSpeed", Float) = 0
  12. _NUVRotateSpeed ("NUVRotateSpeed", Float) = 0
  13. _MainIntensity("MainIntensity", Float) = 1
  14. _NoiseIntensity("NoiseIntensity", Float) = 1
  15. [Enum(UnityEngine.Rendering.CompareFunction)] _ZTest("Z Test", float) = 4 //LessEqual
  16. [Enum(UnityEngine.Rendering.CullMode)] _CullMode("Cull Mode", float) = 0
  17. }
  18. CGINCLUDE
  19. #include "UnityCG.cginc"
  20. sampler2D _MainTex;
  21. sampler2D _NoiseTex;
  22. float4 _NoiseTex_ST;
  23. fixed4 _TintColor;
  24. float _UOffsetSpeed;
  25. float _VOffsetSpeed;
  26. float _UVRotateSpeed;
  27. float _NUOffsetSpeed;
  28. float _NVOffsetSpeed;
  29. float _NUVRotateSpeed;
  30. float _MainIntensity;
  31. float _NoiseIntensity;
  32. half4 _MainTex_ST;
  33. struct v2f {
  34. half4 pos : SV_POSITION;
  35. half2 uv : TEXCOORD0;
  36. half2 nuv : TEXCOORD1;
  37. float4 color : COLOR;
  38. };
  39. v2f vert(appdata_full v) {
  40. v2f o;
  41. o.pos = UnityObjectToClipPos (v.vertex);
  42. o.uv.xy = TRANSFORM_TEX(v.texcoord, _MainTex);
  43. o.nuv.xy = TRANSFORM_TEX(v.texcoord, _NoiseTex);
  44. float2 finaluv = o.uv.xy - float2(0.5, 0.5);
  45. float rotation = 3.14159 * 2 * frac(_Time.z * _UVRotateSpeed);
  46. finaluv = float2(finaluv.x * cos(rotation) - finaluv.y * sin(rotation), finaluv.x * sin(rotation) + finaluv.y * cos(rotation) );
  47. finaluv += float2(0.5, 0.5);
  48. finaluv.x += frac(_Time.z * _UOffsetSpeed);
  49. finaluv.y += frac(_Time.z * _VOffsetSpeed);
  50. o.uv.xy = finaluv;
  51. finaluv = o.nuv.xy - float2(0.5, 0.5);
  52. rotation = 3.14159 * 2 * frac(_Time.z * _NUVRotateSpeed);
  53. finaluv = float2(finaluv.x * cos(rotation) - finaluv.y * sin(rotation), finaluv.x * sin(rotation) + finaluv.y * cos(rotation) );
  54. finaluv += float2(0.5, 0.5);
  55. finaluv.x += frac(_Time.z * _NUOffsetSpeed);
  56. finaluv.y += frac(_Time.z * _NVOffsetSpeed);
  57. o.nuv.xy = finaluv;
  58. o.color = v.color;
  59. return o;
  60. }
  61. fixed4 frag( v2f i ) : COLOR {
  62. fixed4 ocolor = tex2D (_MainTex, i.uv.xy ) * _MainIntensity;
  63. fixed4 ncolor = tex2D (_NoiseTex, i.nuv.xy );
  64. ocolor.rgb = ocolor.rgb + ncolor.rgb * _NoiseIntensity;
  65. ocolor.a *= ncolor.a;
  66. ocolor = (ocolor) * _TintColor;
  67. ocolor *= i.color;
  68. return saturate(ocolor);
  69. }
  70. ENDCG
  71. SubShader {
  72. Tags { "RenderType" = "Transparent" "Reflection" = "RenderReflectionTransparentAdd" "Queue" = "Transparent"}
  73. Cull [_CullMode]
  74. Lighting Off
  75. ZWrite Off
  76. ZTest [_ZTest]
  77. Fog { Mode Off }
  78. Blend SrcAlpha OneMinusSrcAlpha
  79. Pass {
  80. CGPROGRAM
  81. #pragma vertex vert
  82. #pragma fragment frag
  83. #pragma fragmentoption ARB_precision_hint_fastest
  84. ENDCG
  85. }
  86. }
  87. FallBack Off
  88. }