AutoNoise-Mask-Fre.shader 4.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102
  1. // Made with Amplify Shader Editor
  2. // Available at the Unity Asset Store - http://u3d.as/y3X
  3. Shader "MoleGame/Efxadd/Additive/AutoNoise-Mask-Fre"
  4. {
  5. Properties
  6. {
  7. _DistortMap("DistortMap", 2D) = "white" {}
  8. _Speed("Speed", Range( 0 , 1)) = 0.1
  9. _Distrot("Distrot", Range( 0 , 0.1)) = 0.1
  10. _DistortOffset("DistortOffset", Range( -2 , 2)) = -0.8
  11. _MaskMap("MaskMap", 2D) = "white" {}
  12. _Alpha("Alpha", Range( 0 , 5)) = 2
  13. _Tiling("Tiling", Range( 0 , 5)) = 0
  14. _DisFrePower("Dis-Fre-Power", Range( 0 , 30)) = 6.318185
  15. _DisFreScale("Dis-Fre-Scale", Range( 0 , 2)) = 1.430902
  16. [Toggle]_DisFreinvert("Dis-Fre-invert", Float) = 1
  17. [HDR]_FreColor("Fre-Color", Color) = (1,1,1,1)
  18. _ColorFrePower("Color-Fre-Power", Range( 0 , 30)) = 6.318185
  19. _ColorFreScale("Color-Fre-Scale", Range( 0 , 2)) = 1.430902
  20. [Toggle]_ColorFreinvert("Color-Fre-invert", Float) = 1
  21. [HideInInspector] _texcoord( "", 2D ) = "white" {}
  22. [HideInInspector] __dirty( "", Int ) = 1
  23. }
  24. SubShader
  25. {
  26. Tags{ "RenderType" = "Transparent" "Queue" = "Overlay+0" "IsEmissive" = "true" }
  27. Cull Back
  28. ZWrite Off
  29. Blend SrcAlpha OneMinusSrcAlpha
  30. GrabPass{ }
  31. CGPROGRAM
  32. #include "UnityShaderVariables.cginc"
  33. #pragma target 3.0
  34. #pragma surface surf Unlit keepalpha noshadow
  35. struct Input
  36. {
  37. float3 worldPos;
  38. float3 worldNormal;
  39. float4 screenPos;
  40. float2 uv_texcoord;
  41. float4 vertexColor : COLOR;
  42. };
  43. uniform float4 _FreColor;
  44. uniform float _ColorFreinvert;
  45. uniform float _ColorFreScale;
  46. uniform float _ColorFrePower;
  47. uniform sampler2D _GrabTexture;
  48. uniform sampler2D _DistortMap;
  49. uniform float _Tiling;
  50. uniform float _Speed;
  51. uniform float _DistortOffset;
  52. uniform sampler2D _MaskMap;
  53. uniform float _Alpha;
  54. uniform float _Distrot;
  55. uniform float _DisFreinvert;
  56. uniform float _DisFreScale;
  57. uniform float _DisFrePower;
  58. inline half4 LightingUnlit( SurfaceOutput s, half3 lightDir, half atten )
  59. {
  60. return half4 ( 0, 0, 0, s.Alpha );
  61. }
  62. void surf( Input i , inout SurfaceOutput o )
  63. {
  64. float3 ase_worldPos = i.worldPos;
  65. float3 ase_worldViewDir = normalize( UnityWorldSpaceViewDir( ase_worldPos ) );
  66. float3 ase_worldNormal = i.worldNormal;
  67. float fresnelNdotV61 = dot( ase_worldNormal, ase_worldViewDir );
  68. float fresnelNode61 = ( 0.0 + _ColorFreScale * pow( 1.0 - fresnelNdotV61, _ColorFrePower ) );
  69. float4 ase_screenPos = float4( i.screenPos.xyz , i.screenPos.w + 0.00000000001 );
  70. float4 ase_screenPosNorm = ase_screenPos / ase_screenPos.w;
  71. ase_screenPosNorm.z = ( UNITY_NEAR_CLIP_VALUE >= 0 ) ? ase_screenPosNorm.z : ase_screenPosNorm.z * 0.5 + 0.5;
  72. float2 appendResult8 = (float2(ase_screenPosNorm.x , ase_screenPosNorm.y));
  73. float2 temp_cast_0 = (_Tiling).xx;
  74. float mulTime26 = _Time.y * _Speed;
  75. float2 panner32 = ( 1.0 * _Time.y * float2( 0,0 ) + ( mulTime26 * float2( 0.24,0.24 ) ));
  76. float2 uv_TexCoord27 = i.uv_texcoord * temp_cast_0 + panner32;
  77. float4 tex2DNode9 = tex2D( _DistortMap, uv_TexCoord27 );
  78. float2 temp_cast_1 = (_Tiling).xx;
  79. float mulTime40 = _Time.y * _Speed;
  80. float2 panner41 = ( 1.0 * _Time.y * float2( 0,0 ) + ( mulTime40 * float2( -0.24,0.1 ) ));
  81. float2 uv_TexCoord37 = i.uv_texcoord * temp_cast_1 + panner41;
  82. float4 tex2DNode34 = tex2D( _DistortMap, uv_TexCoord37 );
  83. float2 appendResult17 = (float2(( tex2DNode9.r + tex2DNode34.r ) , ( tex2DNode9.g + tex2DNode34.r )));
  84. float2 temp_output_42_0 = ( appendResult17 * _DistortOffset );
  85. float4 tex2DNode4 = tex2D( _MaskMap, temp_output_42_0 );
  86. float4 clampResult15 = clamp( ( ( tex2DNode4 * tex2DNode4.a * i.vertexColor.a ) * _Alpha ) , float4( 0,0,0,0 ) , float4( 1,1,1,0 ) );
  87. float2 lerpResult2 = lerp( appendResult8 , temp_output_42_0 , saturate( ( clampResult15 * _Distrot ) ).rg);
  88. float4 screenColor1 = tex2D( _GrabTexture, lerpResult2 );
  89. o.Emission = ( ( _FreColor * lerp(saturate( ( 1.0 - fresnelNode61 ) ),saturate( fresnelNode61 ),_ColorFreinvert) ) + screenColor1 ).rgb;
  90. float fresnelNdotV45 = dot( ase_worldNormal, ase_worldViewDir );
  91. float fresnelNode45 = ( 0.0 + _DisFreScale * pow( 1.0 - fresnelNdotV45, _DisFrePower ) );
  92. o.Alpha = ( lerp(saturate( ( 1.0 - fresnelNode45 ) ),saturate( fresnelNode45 ),_DisFreinvert) * clampResult15 ).r;
  93. }
  94. ENDCG
  95. }
  96. }