// Made with Amplify Shader Editor // Available at the Unity Asset Store - http://u3d.as/y3X Shader "MoleGame/Efxadd/Additive/AutoNoise-Mask-Fre" { Properties { _DistortMap("DistortMap", 2D) = "white" {} _Speed("Speed", Range( 0 , 1)) = 0.1 _Distrot("Distrot", Range( 0 , 0.1)) = 0.1 _DistortOffset("DistortOffset", Range( -2 , 2)) = -0.8 _MaskMap("MaskMap", 2D) = "white" {} _Alpha("Alpha", Range( 0 , 5)) = 2 _Tiling("Tiling", Range( 0 , 5)) = 0 _DisFrePower("Dis-Fre-Power", Range( 0 , 30)) = 6.318185 _DisFreScale("Dis-Fre-Scale", Range( 0 , 2)) = 1.430902 [Toggle]_DisFreinvert("Dis-Fre-invert", Float) = 1 [HDR]_FreColor("Fre-Color", Color) = (1,1,1,1) _ColorFrePower("Color-Fre-Power", Range( 0 , 30)) = 6.318185 _ColorFreScale("Color-Fre-Scale", Range( 0 , 2)) = 1.430902 [Toggle]_ColorFreinvert("Color-Fre-invert", Float) = 1 [HideInInspector] _texcoord( "", 2D ) = "white" {} [HideInInspector] __dirty( "", Int ) = 1 } SubShader { Tags{ "RenderType" = "Transparent" "Queue" = "Overlay+0" "IsEmissive" = "true" } Cull Back ZWrite Off Blend SrcAlpha OneMinusSrcAlpha GrabPass{ } CGPROGRAM #include "UnityShaderVariables.cginc" #pragma target 3.0 #pragma surface surf Unlit keepalpha noshadow struct Input { float3 worldPos; float3 worldNormal; float4 screenPos; float2 uv_texcoord; float4 vertexColor : COLOR; }; uniform float4 _FreColor; uniform float _ColorFreinvert; uniform float _ColorFreScale; uniform float _ColorFrePower; uniform sampler2D _GrabTexture; uniform sampler2D _DistortMap; uniform float _Tiling; uniform float _Speed; uniform float _DistortOffset; uniform sampler2D _MaskMap; uniform float _Alpha; uniform float _Distrot; uniform float _DisFreinvert; uniform float _DisFreScale; uniform float _DisFrePower; inline half4 LightingUnlit( SurfaceOutput s, half3 lightDir, half atten ) { return half4 ( 0, 0, 0, s.Alpha ); } void surf( Input i , inout SurfaceOutput o ) { float3 ase_worldPos = i.worldPos; float3 ase_worldViewDir = normalize( UnityWorldSpaceViewDir( ase_worldPos ) ); float3 ase_worldNormal = i.worldNormal; float fresnelNdotV61 = dot( ase_worldNormal, ase_worldViewDir ); float fresnelNode61 = ( 0.0 + _ColorFreScale * pow( 1.0 - fresnelNdotV61, _ColorFrePower ) ); float4 ase_screenPos = float4( i.screenPos.xyz , i.screenPos.w + 0.00000000001 ); float4 ase_screenPosNorm = ase_screenPos / ase_screenPos.w; ase_screenPosNorm.z = ( UNITY_NEAR_CLIP_VALUE >= 0 ) ? ase_screenPosNorm.z : ase_screenPosNorm.z * 0.5 + 0.5; float2 appendResult8 = (float2(ase_screenPosNorm.x , ase_screenPosNorm.y)); float2 temp_cast_0 = (_Tiling).xx; float mulTime26 = _Time.y * _Speed; float2 panner32 = ( 1.0 * _Time.y * float2( 0,0 ) + ( mulTime26 * float2( 0.24,0.24 ) )); float2 uv_TexCoord27 = i.uv_texcoord * temp_cast_0 + panner32; float4 tex2DNode9 = tex2D( _DistortMap, uv_TexCoord27 ); float2 temp_cast_1 = (_Tiling).xx; float mulTime40 = _Time.y * _Speed; float2 panner41 = ( 1.0 * _Time.y * float2( 0,0 ) + ( mulTime40 * float2( -0.24,0.1 ) )); float2 uv_TexCoord37 = i.uv_texcoord * temp_cast_1 + panner41; float4 tex2DNode34 = tex2D( _DistortMap, uv_TexCoord37 ); float2 appendResult17 = (float2(( tex2DNode9.r + tex2DNode34.r ) , ( tex2DNode9.g + tex2DNode34.r ))); float2 temp_output_42_0 = ( appendResult17 * _DistortOffset ); float4 tex2DNode4 = tex2D( _MaskMap, temp_output_42_0 ); float4 clampResult15 = clamp( ( ( tex2DNode4 * tex2DNode4.a * i.vertexColor.a ) * _Alpha ) , float4( 0,0,0,0 ) , float4( 1,1,1,0 ) ); float2 lerpResult2 = lerp( appendResult8 , temp_output_42_0 , saturate( ( clampResult15 * _Distrot ) ).rg); float4 screenColor1 = tex2D( _GrabTexture, lerpResult2 ); o.Emission = ( ( _FreColor * lerp(saturate( ( 1.0 - fresnelNode61 ) ),saturate( fresnelNode61 ),_ColorFreinvert) ) + screenColor1 ).rgb; float fresnelNdotV45 = dot( ase_worldNormal, ase_worldViewDir ); float fresnelNode45 = ( 0.0 + _DisFreScale * pow( 1.0 - fresnelNdotV45, _DisFrePower ) ); o.Alpha = ( lerp(saturate( ( 1.0 - fresnelNode45 ) ),saturate( fresnelNode45 ),_DisFreinvert) * clampResult15 ).r; } ENDCG } }