// Made with Amplify Shader Editor
// Available at the Unity Asset Store - http://u3d.as/y3X 
Shader "FZDL_Shader/Particles/JR_Particle_Fresnel"
{
	Properties
	{
		[HideInInspector] _EmissionColor("Emission Color", Color) = (1,1,1,1)
		[HideInInspector] _AlphaCutoff("Alpha Cutoff ", Range(0, 1)) = 0.5
		[ASEBegin][HDR]_MainColor("MainColor", Color) = (1,1,1,0)
		_AlphaScale("AlphaScale", Float) = 1
		_MainTexture("MainTexture", 2D) = "white" {}
		[KeywordEnum(R,G,B,A)] _MainTexChannelSwitch("MainTexChannelSwitch", Float) = 0
		_Main_SpeedU("Main_SpeedU", Float) = 0
		_Main_SpeedV("Main_SpeedV", Float) = 0
		_Main_NoiseScale("Main_NoiseScale", Range( 0 , 1)) = 0
		_Main_NoiseOffset("Main_NoiseOffset", Range( -1 , 1)) = 0
		[Header(Normal)]_NormalMap("NormalMap", 2D) = "bump" {}
		_Normal_Intensity("Normal_Intensity", Range( 0 , 2)) = 0
		_Normal_SpeedU("Normal_SpeedU", Float) = 0
		_Normal_SpeedV("Normal_SpeedV", Float) = 0
		_Normal_NoiseScale("Normal_NoiseScale", Range( 0 , 1)) = 0
		[Header(Noise)]_NoiseTexture("NoiseTexture", 2D) = "white" {}
		_Noise_SpeedU("Noise_SpeedU", Float) = 0
		_Noise_SpeedV("Noise_SpeedV", Float) = 0
		[Toggle][Header(Fresnel)]_Fresnel_OneMinus("Fresnel_OneMinus", Float) = 0
		_Fresnel_Scale("Fresnel_Scale", Float) = 1
		_Fresnel_Power("Fresnel_Power", Float) = 5
		_Fresnel_SoftEdge("Fresnel_SoftEdge", Range( 0 , 1)) = 0
		[Header(Dissolve)]_Dissolve("Dissolve", Range( 0 , 1)) = 0
		[Header(VertexAnimation)]_VertexAni_Tex("VertexAni_Tex", 2D) = "white" {}
		_VertexAni_XYZ_Scale("VertexAni_XYZ_Scale", Vector) = (0,0,0,0)
		_VertexAni_SpeedU("VertexAni_SpeedU", Float) = 0
		[ASEEnd]_VertexAni_SpeedV("VertexAni_SpeedV", Float) = 0


        [Header(Advanced)]
        [Main(Soft Particle,_SOFTPARTICLES_ON,0)] FZDL_SOFT_PARTICLE("Soft Particle",float) = 0
        [Title(Soft Particle,Distance)]
        // [Sub(Soft Particle)] _SoftParticle_Near("Near",Range(0.0 , 5.0)) = 1 
        // [Sub(Soft Particle)] _SoftParticle_Far("far",Range(0.0 , 10.0)) = 1 
        [Sub(Soft Particle)] _DepthFade("Depth Fade",Range( 0.001 , 20)) = 0.1 
        [Sub(Soft Particle)] _DepthThresh("Depth Thresh",Range( 0.001 , 20)) = 2 

        [Main(Edge Particle,_EDGE_ON,0)] FZDL_EDGE_PARTICLE("Edge Particle",float) = 0
        [Title(Edge Particle, EdgeValue)]
        [SubToggle(Edge Particle, _EDGE_WITHOUTMASK_ON)] _EdgeMaskWithOut("Edge mask without", float) = 0
        [Sub(Edge Particle)] [HDR]_EdgeColor("Edge Color", color) = (1,1,1,1)
        [Sub(Edge Particle)] _EdgeRange("Edge Range",Range( 0.001 , 20)) = 0.1 
        [Sub(Edge Particle)] _EdgeThresh("Edge Thresh",Range( 0.001 , 20)) = 2 

        [Main(Camera Fading,_FADING_ON,0)] FZDL_CAMERA_FADE("Camera Fading",float) = 0
        [Title(Camera Fading,Distance)]
        [Sub(Camera Fading)] _Fade_Near("Near",float) = 1 
        [Sub(Camera Fading)] _Fade_Far("far",float) = 1 

        [Toggle(_VOLUMETRIC_FOG_ON)] _VolumetricFog("Volumetric Fog",float) = 1
        [Toggle(_ALPHATEST_ON)] _AlphaTest("Alpha Test",float) = 0

		[Header(CullMode)]
        [Enum(UnityEngine.Rendering.CullMode)]_Cull("剔除模式", float) = 2

        [Header(Depth)]
        [Enum(Off, 0, On, 1)]_ZWrite("是否写入深度", float) = 0

        [Enum(UnityEngine.Rendering.BlendMode)]_Src("源颜色", float) = 5
        [Enum(UnityEngine.Rendering.BlendMode)]_Dst("目标颜色", float) = 10
        [Enum(UnityEngine.Rendering.BlendOp)]_BlendOp("混合模式", float) = 0
	}
	
	SubShader
	{
				


            
                  
                  
        Tags { "RenderPipeline"="UniversalPipeline" "RenderType"="Transparent" "Queue"="Transparent+100" }
 
		
 
		Pass
		{ 
            Name "Forward"
            
			
            Cull [_Cull]
            ZWrite [_ZWrite]
            Blend [_Src] [_Dst]
            BlendOp [_BlendOp]
            LOD 100

			HLSLPROGRAM



            #pragma multi_compile_instancing
            #define ASE_SRP_VERSION 70501




            #pragma shader_feature_local _SOFTPARTICLES_ON
            #pragma shader_feature_local _EDGE_ON
            #pragma shader_feature_local _EDGE_WITHOUTMASK_ON
            #pragma shader_feature_local _FADING_ON
            #pragma shader_feature_local _ALPHATEST_ON
            #pragma shader_feature_local _VOLUMETRIC_FOG_ON

            #pragma vertex vert
            #pragma fragment frag

            #include "Packages/com.unity.render-pipelines.universal/ShaderLibrary/Core.hlsl"
            #include "Packages/com.unity.render-pipelines.universal/ShaderLibrary/Particles.hlsl"
            #include "../../Shader/HLSL/Environment/Sky&Fog/VolumetricFogForObject.hlsl"
            #include "Packages/com.unity.render-pipelines.universal/ShaderLibrary/DeclareDepthTexture.hlsl"
            #define ASE_NEEDS_FRAG_COLOR
            #pragma shader_feature_local _MAINTEXCHANNELSWITCH_R _MAINTEXCHANNELSWITCH_G _MAINTEXCHANNELSWITCH_B _MAINTEXCHANNELSWITCH_A



            struct appdata
            {
                float4 vertex : POSITION;
                float2 uv : TEXCOORD0;
                half4 color : COLOR;
                float3 ase_normal : NORMAL;
                float4 ase_tangent : TANGENT;
                UNITY_VERTEX_INPUT_INSTANCE_ID
            };
 
            struct v2f
            {
                half4 color                     : COLOR;
                float4 uv                       : TEXCOORD0;
                float4 vertex                   : SV_POSITION;
            #if defined(_SOFTPARTICLES_ON) || defined(_EDGE_ON) || defined(_FADING_ON) || defined(_DISTORTION_ON)
                float4 JRScreen        : TEXCOORD1;
            #endif

            #if defined(_VOLUMETRIC_FOG_ON)
                float4 fogCoord : TEXCOORD2;
            #endif    
                float4 ase_texcoord3 : TEXCOORD3;
                float4 ase_texcoord4 : TEXCOORD4;
                float4 ase_texcoord5 : TEXCOORD5;
                float4 ase_texcoord6 : TEXCOORD6;
                UNITY_VERTEX_INPUT_INSTANCE_ID     
                UNITY_VERTEX_OUTPUT_STEREO           
            };


            CBUFFER_START(UnityPerMaterial)
            float4 _NormalMap_ST;
            float4 _MainTexture_ST;
            float4 _NoiseTexture_ST;
            float4 _MainColor;
            float3 _VertexAni_XYZ_Scale;
            float _Fresnel_Power;
            float _Fresnel_Scale;
            float _Normal_Intensity;
            float _Normal_NoiseScale;
            float _Normal_SpeedV;
            float _Normal_SpeedU;
            float _Fresnel_SoftEdge;
            float _AlphaScale;
            float _Main_NoiseOffset;
            float _Main_NoiseScale;
            float _Noise_SpeedV;
            float _Noise_SpeedU;
            float _Main_SpeedV;
            float _Main_SpeedU;
            float _VertexAni_SpeedV;
            float _VertexAni_SpeedU;
            float _Fresnel_OneMinus;
            float _Dissolve;
            float _Fade_Near;
            float _Fade_Far;
            // float _SoftParticle_Near;       //无用参数
            // float _SoftParticle_Far;        //无用参数
            float _DepthFade;
            float _DepthThresh;

            float4 _EdgeColor;
            float _EdgeRange;
            float _EdgeThresh;
            CBUFFER_END

            TEXTURE2D(_CameraColorTexture);
            SAMPLER(sampler_CameraColorTexture);
            // TEXTURE2D(_CameraDepthTexture);
            // SAMPLER(sampler_CameraDepthTexture);

            sampler2D _VertexAni_Tex;
            sampler2D _NormalMap;
            sampler2D _MainTexture;
            sampler2D _NoiseTexture;


            v2f vert (appdata v )
            {
                v2f o;
                UNITY_SETUP_INSTANCE_ID ( v );
                UNITY_TRANSFER_INSTANCE_ID(v, o);

                // ase common template code
                float mulTime142 = _TimeParameters.x * _VertexAni_SpeedU;
                float2 uv_NormalMap = v.uv.xy * _NormalMap_ST.xy + _NormalMap_ST.zw;
                float mulTime148 = _TimeParameters.x * _VertexAni_SpeedV;
                float2 appendResult146 = (float2(( mulTime142 + uv_NormalMap.x ) , ( uv_NormalMap.y + mulTime148 )));
                float _Animation151 = tex2Dlod( _VertexAni_Tex, float4( appendResult146, 0, 0.0) ).r;
                
                float3 ase_worldPos = mul(GetObjectToWorldMatrix(), v.vertex).xyz;
                o.ase_texcoord3.xyz = ase_worldPos;
                float3 ase_worldTangent = TransformObjectToWorldDir(v.ase_tangent.xyz);
                o.ase_texcoord4.xyz = ase_worldTangent;
                float3 ase_worldNormal = TransformObjectToWorldNormal(v.ase_normal);
                o.ase_texcoord5.xyz = ase_worldNormal;
                float ase_vertexTangentSign = v.ase_tangent.w * unity_WorldTransformParams.w;
                float3 ase_worldBitangent = cross( ase_worldNormal, ase_worldTangent ) * ase_vertexTangentSign;
                o.ase_texcoord6.xyz = ase_worldBitangent;
                
                
                //setting value to unused interpolator channels and avoid initialization warnings
                o.ase_texcoord3.w = 0;
                o.ase_texcoord4.w = 0;
                o.ase_texcoord5.w = 0;
                o.ase_texcoord6.w = 0;

                float3 vertexValue = ( v.ase_normal * _VertexAni_XYZ_Scale * _Animation151 );

                VertexPositionInputs PosIN = GetVertexPositionInputs(v.vertex.xyz + vertexValue);
                o.vertex = PosIN.positionCS;
                o.uv.xy = v.uv;
            #if defined(_SOFTPARTICLES_ON) || defined(_EDGE_ON) || defined(_FADING_ON) || defined(_DISTORTION_ON)
                o.JRScreen = ComputeScreenPos(PosIN.positionCS);
            #endif
                o.color = v.color;

            #if defined(_VOLUMETRIC_FOG_ON)    
                o.fogCoord = VolumetricFog_GetFogCoord(PosIN.positionNDC, PosIN.positionVS.z);
            #endif    

                return o;
            }

            half4 frag (v2f i ) : SV_Target
            {   

                // ase common template code
                float mulTime67 = _TimeParameters.x * _Main_SpeedU;
                float2 uv_MainTexture = i.uv.xy * _MainTexture_ST.xy + _MainTexture_ST.zw;
                float mulTime69 = _TimeParameters.x * _Main_SpeedV;
                float2 appendResult72 = (float2(( mulTime67 + uv_MainTexture.x ) , ( uv_MainTexture.y + mulTime69 )));
                float mulTime99 = _TimeParameters.x * _Noise_SpeedU;
                float2 uv_NoiseTexture = i.uv.xy * _NoiseTexture_ST.xy + _NoiseTexture_ST.zw;
                float mulTime101 = _TimeParameters.x * _Noise_SpeedV;
                float2 appendResult104 = (float2(( mulTime99 + uv_NoiseTexture.x ) , ( uv_NoiseTexture.y + mulTime101 )));
                float4 tex2DNode105 = tex2D( _NoiseTexture, appendResult104 );
                float2 appendResult108 = (float2(tex2DNode105.r , tex2DNode105.g));
                float2 _MainNoise113 = ( appendResult108 * _Main_NoiseScale );
                float4 tex2DNode55 = tex2D( _MainTexture, ( appendResult72 + _MainNoise113 + _Main_NoiseOffset ) );
                #if defined(_MAINTEXCHANNELSWITCH_R)
                float staticSwitch74 = tex2DNode55.r;
                #elif defined(_MAINTEXCHANNELSWITCH_G)
                float staticSwitch74 = tex2DNode55.g;
                #elif defined(_MAINTEXCHANNELSWITCH_B)
                float staticSwitch74 = tex2DNode55.b;
                #elif defined(_MAINTEXCHANNELSWITCH_A)
                float staticSwitch74 = tex2DNode55.a;
                #else
                float staticSwitch74 = tex2DNode55.r;
                #endif
                
                float temp_output_77_0 = ( staticSwitch74 * _AlphaScale );
                float3 ase_worldPos = i.ase_texcoord3.xyz;
                float3 ase_worldViewDir = ( _WorldSpaceCameraPos.xyz - ase_worldPos );
                ase_worldViewDir = normalize(ase_worldViewDir);
                float mulTime61 = _TimeParameters.x * _Normal_SpeedU;
                float2 uv_NormalMap = i.uv.xy * _NormalMap_ST.xy + _NormalMap_ST.zw;
                float mulTime63 = _TimeParameters.x * _Normal_SpeedV;
                float2 appendResult60 = (float2(( mulTime61 + uv_NormalMap.x ) , ( uv_NormalMap.y + mulTime63 )));
                float2 _NormalNoise114 = ( appendResult108 * _Normal_NoiseScale );
                float3 unpack2 = UnpackNormalScale( tex2D( _NormalMap, ( appendResult60 + _NormalNoise114 ) ), _Normal_Intensity );
                unpack2.z = lerp( 1, unpack2.z, saturate(_Normal_Intensity) );
                float3 ase_worldTangent = i.ase_texcoord4.xyz;
                float3 ase_worldNormal = i.ase_texcoord5.xyz;
                float3 ase_worldBitangent = i.ase_texcoord6.xyz;
                float3 tanToWorld0 = float3( ase_worldTangent.x, ase_worldBitangent.x, ase_worldNormal.x );
                float3 tanToWorld1 = float3( ase_worldTangent.y, ase_worldBitangent.y, ase_worldNormal.y );
                float3 tanToWorld2 = float3( ase_worldTangent.z, ase_worldBitangent.z, ase_worldNormal.z );
                float3 tanNormal33 = unpack2;
                float3 worldNormal33 = normalize( float3(dot(tanToWorld0,tanNormal33), dot(tanToWorld1,tanNormal33), dot(tanToWorld2,tanNormal33)) );
                float fresnelNdotV1 = dot( worldNormal33, ase_worldViewDir );
                float fresnelNode1 = ( 0.0 + _Fresnel_Scale * pow( 1.0 - fresnelNdotV1, _Fresnel_Power ) );
                float temp_output_8_0 = saturate( fresnelNode1 );
                float lerpResult20 = lerp( temp_output_8_0 , ( 1.0 - temp_output_8_0 ) , _Fresnel_OneMinus);
                float smoothstepResult88 = smoothstep( 0.0 , _Fresnel_SoftEdge , lerpResult20);
                


                half3 fin_rgb = ( ( staticSwitch74 * _MainColor ) * i.color ).rgb;
                half fin_a = saturate( ( saturate( ( temp_output_77_0 * smoothstepResult88 * i.color.a ) ) - _Dissolve ) );
            #if defined(_EDGE_ON)
                float4 screenPos2 = i.JRScreen;
                float2 uv2 = UnityStereoTransformScreenSpaceTex(screenPos2.xy / screenPos2.w);
                float eyeDepth2 = LinearEyeDepth((SAMPLE_TEXTURE2D_X(_CameraDepthTexture, sampler_CameraDepthTexture, uv2)).r,_ZBufferParams);
                float TempOutput2 = eyeDepth2 - screenPos2.w;
                half edge = (1 - lerp( saturate(_EdgeRange * TempOutput2) , 1 , saturate(TempOutput2 / _EdgeThresh)));
                half3 edgeColor = edge * _EdgeColor.rgb;
            #if defined(_EDGE_WITHOUTMASK_ON)
                //edge = (1 - lerp( saturate(_EdgeRange * TempOutput2) , 1 , saturate(TempOutput2 / _EdgeThresh))) * _EdgeColor.rgb;
                fin_a = saturate(edge + fin_a);
            #endif
                fin_rgb = lerp(fin_rgb, edgeColor,edge);
            #endif


                //alphatest
            #ifdef _ALPHATEST_ON
                half clip_thresh = 0;

                AlphaDiscard(fin_a, clip_thresh);

            #endif
 
                fin_rgb *= i.color;

            #if defined(_SOFTPARTICLES_ON)
                float4 screenPos = i.JRScreen;
                float2 uv = UnityStereoTransformScreenSpaceTex(screenPos.xy / screenPos.w);
                //float eyeDepth = Linear01Depth(SAMPLE_TEXTURE2D_X(_CameraDepthTexture, sampler_CameraDepthTexture, screenPos).r, _ZBufferParams);
                float eyeDepth = LinearEyeDepth((SAMPLE_TEXTURE2D_X(_CameraDepthTexture, sampler_CameraDepthTexture, uv)).r,_ZBufferParams);
                float TempOutput = eyeDepth - screenPos.w;
                fin_a = lerp( saturate(_DepthFade * TempOutput) , 1 , saturate(TempOutput / _DepthThresh)) * fin_a;
                //fin_a *= SoftParticles(_SoftParticle_Near,1.0/(_SoftParticle_Far - _SoftParticle_Near),i.projectedPosition);
            #endif


 
            #if defined(_FADING_ON)
                fin_a *= CameraFade(_Fade_Near, 1.0/(_Fade_Far - _Fade_Near), i.JRScreen);
            #endif

            #if defined(_DISTORTION_ON)
                float2 distortionOffset = 0;
                float distortionBlend = 0;
                float2 screenUV = (i.projectedPosition.xy / i.projectedPosition.w) + distortionOffset;
                screenUV = UnityStereoTransformScreenSpaceTex(screenUV);
                float4 Distortion = SAMPLE_TEXTURE2D_X(_CameraColorTexture, sampler_CameraColorTexture, screenUV);
                fin_rgb = lerp( Distortion.rgb, fin_rgb,saturate(fin_a - distortionBlend));
            #endif      


            #if defined(_VOLUMETRIC_FOG_ON)    
                fin_rgb = i.fogCoord.w == 0 ? fin_rgb : VolumetricFog_GetFog(fin_rgb, i.fogCoord);
            #endif  

                return half4(fin_rgb,fin_a);
            }
            ENDHLSL
		}
	}

    CustomEditor "FZDL.ShaderDrawer.LWGUI" 
    Fallback "Hidden/InternalErrorShader"
	
}/*ASEBEGIN
Version=18800
1920;28;1920;989;2233.71;1098.911;2.001168;True;False
Node;AmplifyShaderEditor.CommentaryNode;107;-2650.879,-1120.887;Inherit;False;2374.671;522.4382;Comment;16;114;113;111;112;110;109;108;100;98;97;105;104;103;102;101;99;Noise;1,1,1,1;0;0
Node;AmplifyShaderEditor.RangedFloatNode;97;-2600.879,-1070.887;Inherit;False;Property;_Noise_SpeedU;Noise_SpeedU;14;0;Create;True;0;0;0;False;0;False;0;-0.1;0;0;0;1;FLOAT;0
Node;AmplifyShaderEditor.RangedFloatNode;98;-2600.879,-863.3867;Inherit;False;Property;_Noise_SpeedV;Noise_SpeedV;15;0;Create;True;0;0;0;False;0;False;0;0.5;0;0;0;1;FLOAT;0
Node;AmplifyShaderEditor.TextureCoordinatesNode;100;-2458.185,-992.3881;Inherit;False;0;105;2;3;2;SAMPLER2D;;False;0;FLOAT2;1,1;False;1;FLOAT2;0,0;False;5;FLOAT2;0;FLOAT;1;FLOAT;2;FLOAT;3;FLOAT;4
Node;AmplifyShaderEditor.SimpleTimeNode;101;-2415.88,-858.3867;Inherit;False;1;0;FLOAT;1;False;1;FLOAT;0
Node;AmplifyShaderEditor.SimpleTimeNode;99;-2414.88,-1065.887;Inherit;False;1;0;FLOAT;1;False;1;FLOAT;0
Node;AmplifyShaderEditor.SimpleAddOpNode;103;-2206.184,-915.3881;Inherit;False;2;2;0;FLOAT;0;False;1;FLOAT;0;False;1;FLOAT;0
Node;AmplifyShaderEditor.SimpleAddOpNode;102;-2206.184,-1008.388;Inherit;False;2;2;0;FLOAT;0;False;1;FLOAT;0;False;1;FLOAT;0
Node;AmplifyShaderEditor.DynamicAppendNode;104;-2063.184,-987.3881;Inherit;False;FLOAT2;4;0;FLOAT;0;False;1;FLOAT;0;False;2;FLOAT;0;False;3;FLOAT;0;False;1;FLOAT2;0
Node;AmplifyShaderEditor.SamplerNode;105;-1903.12,-1016.685;Inherit;True;Property;_NoiseTexture;NoiseTexture;13;0;Create;True;0;0;0;False;1;Header(Noise);False;-1;None;367cd2bd757d41b4896d7058c127adc0;True;0;False;white;Auto;False;Object;-1;Auto;Texture2D;8;0;SAMPLER2D;;False;1;FLOAT2;0,0;False;2;FLOAT;0;False;3;FLOAT2;0,0;False;4;FLOAT2;0,0;False;5;FLOAT;1;False;6;FLOAT;0;False;7;SAMPLERSTATE;;False;5;COLOR;0;FLOAT;1;FLOAT;2;FLOAT;3;FLOAT;4
Node;AmplifyShaderEditor.CommentaryNode;56;-2657.371,19.54965;Inherit;False;3078.984;692.2593;Comment;22;20;10;19;8;1;5;33;6;2;3;60;59;58;61;57;63;62;64;88;89;115;116;Fresnel;1,1,1,1;0;0
Node;AmplifyShaderEditor.DynamicAppendNode;108;-1612.049,-987.2507;Inherit;False;FLOAT2;4;0;FLOAT;0;False;1;FLOAT;0;False;2;FLOAT;0;False;3;FLOAT;0;False;1;FLOAT2;0
Node;AmplifyShaderEditor.RangedFloatNode;62;-2614.54,128.2351;Inherit;False;Property;_Normal_SpeedU;Normal_SpeedU;10;0;Create;True;0;0;0;False;0;False;0;0;0;0;0;1;FLOAT;0
Node;AmplifyShaderEditor.RangedFloatNode;111;-1493.049,-814.7507;Inherit;False;Property;_Normal_NoiseScale;Normal_NoiseScale;12;0;Create;True;0;0;0;False;0;False;0;0;0;1;0;1;FLOAT;0
Node;AmplifyShaderEditor.RangedFloatNode;64;-2614.54,335.7351;Inherit;False;Property;_Normal_SpeedV;Normal_SpeedV;11;0;Create;True;0;0;0;False;0;False;0;0;0;0;0;1;FLOAT;0
Node;AmplifyShaderEditor.SimpleMultiplyOpNode;112;-1180.05,-865.7507;Inherit;False;2;2;0;FLOAT2;0,0;False;1;FLOAT;0;False;1;FLOAT2;0
Node;AmplifyShaderEditor.SimpleTimeNode;63;-2429.54,340.7351;Inherit;False;1;0;FLOAT;1;False;1;FLOAT;0
Node;AmplifyShaderEditor.TextureCoordinatesNode;57;-2471.844,206.7337;Inherit;False;0;2;2;3;2;SAMPLER2D;;False;0;FLOAT2;1,1;False;1;FLOAT2;0,0;False;5;FLOAT2;0;FLOAT;1;FLOAT;2;FLOAT;3;FLOAT;4
Node;AmplifyShaderEditor.SimpleTimeNode;61;-2428.54,133.2351;Inherit;False;1;0;FLOAT;1;False;1;FLOAT;0
Node;AmplifyShaderEditor.SimpleAddOpNode;58;-2219.844,190.7337;Inherit;False;2;2;0;FLOAT;0;False;1;FLOAT;0;False;1;FLOAT;0
Node;AmplifyShaderEditor.SimpleAddOpNode;59;-2219.844,283.7337;Inherit;False;2;2;0;FLOAT;0;False;1;FLOAT;0;False;1;FLOAT;0
Node;AmplifyShaderEditor.RegisterLocalVarNode;114;-1014.05,-870.2507;Inherit;False;_NormalNoise;-1;True;1;0;FLOAT2;0,0;False;1;FLOAT2;0
Node;AmplifyShaderEditor.DynamicAppendNode;60;-2076.844,211.7337;Inherit;False;FLOAT2;4;0;FLOAT;0;False;1;FLOAT;0;False;2;FLOAT;0;False;3;FLOAT;0;False;1;FLOAT2;0
Node;AmplifyShaderEditor.CommentaryNode;106;-2652.335,-554.0585;Inherit;False;2372.944;494.0866;Comment;18;55;72;70;71;69;68;67;66;65;76;75;77;74;78;117;118;125;154;Main;1,1,1,1;0;0
Node;AmplifyShaderEditor.GetLocalVarNode;115;-2082.208,324.3671;Inherit;False;114;_NormalNoise;1;0;OBJECT;;False;1;FLOAT2;0
Node;AmplifyShaderEditor.RangedFloatNode;66;-2602.335,-296.5584;Inherit;False;Property;_Main_SpeedV;Main_SpeedV;5;0;Create;True;0;0;0;False;0;False;0;0;0;0;0;1;FLOAT;0
Node;AmplifyShaderEditor.RangedFloatNode;3;-1810.955,343.707;Inherit;False;Property;_Normal_Intensity;Normal_Intensity;9;0;Create;True;0;0;0;False;0;False;0;0;0;2;0;1;FLOAT;0
Node;AmplifyShaderEditor.RangedFloatNode;65;-2602.335,-504.0584;Inherit;False;Property;_Main_SpeedU;Main_SpeedU;4;0;Create;True;0;0;0;False;0;False;0;0;0;0;0;1;FLOAT;0
Node;AmplifyShaderEditor.SimpleAddOpNode;116;-1795.208,212.3671;Inherit;False;2;2;0;FLOAT2;0,0;False;1;FLOAT2;0,0;False;1;FLOAT2;0
Node;AmplifyShaderEditor.RangedFloatNode;109;-1491.049,-934.2507;Inherit;False;Property;_Main_NoiseScale;Main_NoiseScale;6;0;Create;True;0;0;0;False;0;False;0;0.198;0;1;0;1;FLOAT;0
Node;AmplifyShaderEditor.SimpleMultiplyOpNode;110;-1179.05,-985.2507;Inherit;False;2;2;0;FLOAT2;0,0;False;1;FLOAT;0;False;1;FLOAT2;0
Node;AmplifyShaderEditor.SimpleTimeNode;69;-2417.335,-291.5584;Inherit;False;1;0;FLOAT;1;False;1;FLOAT;0
Node;AmplifyShaderEditor.SamplerNode;2;-1499.834,181.8355;Inherit;True;Property;_NormalMap;NormalMap;8;0;Create;True;0;0;0;False;1;Header(Normal);False;-1;None;None;True;0;True;bump;Auto;True;Object;-1;Auto;Texture2D;8;0;SAMPLER2D;;False;1;FLOAT2;0,0;False;2;FLOAT;0;False;3;FLOAT2;0,0;False;4;FLOAT2;0,0;False;5;FLOAT;1;False;6;FLOAT;0;False;7;SAMPLERSTATE;;False;5;FLOAT3;0;FLOAT;1;FLOAT;2;FLOAT;3;FLOAT;4
Node;AmplifyShaderEditor.TextureCoordinatesNode;68;-2459.64,-425.5598;Inherit;False;0;55;2;3;2;SAMPLER2D;;False;0;FLOAT2;1,1;False;1;FLOAT2;0,0;False;5;FLOAT2;0;FLOAT;1;FLOAT;2;FLOAT;3;FLOAT;4
Node;AmplifyShaderEditor.SimpleTimeNode;67;-2416.335,-499.0584;Inherit;False;1;0;FLOAT;1;False;1;FLOAT;0
Node;AmplifyShaderEditor.RangedFloatNode;5;-1260.432,355.1354;Inherit;False;Property;_Fresnel_Scale;Fresnel_Scale;17;0;Create;True;0;0;0;False;0;False;1;1;0;0;0;1;FLOAT;0
Node;AmplifyShaderEditor.RegisterLocalVarNode;113;-1016.05,-989.2507;Inherit;False;_MainNoise;-1;True;1;0;FLOAT2;0,0;False;1;FLOAT2;0
Node;AmplifyShaderEditor.SimpleAddOpNode;71;-2207.64,-441.5598;Inherit;False;2;2;0;FLOAT;0;False;1;FLOAT;0;False;1;FLOAT;0
Node;AmplifyShaderEditor.SimpleAddOpNode;70;-2207.64,-348.5598;Inherit;False;2;2;0;FLOAT;0;False;1;FLOAT;0;False;1;FLOAT;0
Node;AmplifyShaderEditor.RangedFloatNode;6;-1257.432,447.1357;Inherit;False;Property;_Fresnel_Power;Fresnel_Power;18;0;Create;True;0;0;0;False;0;False;5;5;0;0;0;1;FLOAT;0
Node;AmplifyShaderEditor.WorldNormalVector;33;-1211.882,186.3586;Inherit;False;True;1;0;FLOAT3;0,0,1;False;4;FLOAT3;0;FLOAT;1;FLOAT;2;FLOAT;3
Node;AmplifyShaderEditor.DynamicAppendNode;72;-2064.64,-420.5598;Inherit;False;FLOAT2;4;0;FLOAT;0;False;1;FLOAT;0;False;2;FLOAT;0;False;3;FLOAT;0;False;1;FLOAT2;0
Node;AmplifyShaderEditor.CommentaryNode;150;-2656.72,803.3453;Inherit;False;1719.276;426.6961;Comment;10;137;149;148;146;145;144;143;142;141;151;VertexAnimation;1,1,1,1;0;0
Node;AmplifyShaderEditor.RangedFloatNode;154;-2041.396,-219.1227;Inherit;False;Property;_Main_NoiseOffset;Main_NoiseOffset;7;0;Create;True;0;0;0;False;0;False;0;0;-1;1;0;1;FLOAT;0
Node;AmplifyShaderEditor.FresnelNode;1;-944.4309,186.1355;Inherit;True;Standard;WorldNormal;ViewDir;False;False;5;0;FLOAT3;0,0,1;False;4;FLOAT3;0,0,0;False;1;FLOAT;0;False;2;FLOAT;1;False;3;FLOAT;5;False;1;FLOAT;0
Node;AmplifyShaderEditor.GetLocalVarNode;118;-2071.916,-312.3002;Inherit;False;113;_MainNoise;1;0;OBJECT;;False;1;FLOAT2;0
Node;AmplifyShaderEditor.RangedFloatNode;141;-2627.72,853.3453;Inherit;False;Property;_VertexAni_SpeedU;VertexAni_SpeedU;23;0;Create;True;0;0;0;False;0;False;0;0;0;0;0;1;FLOAT;0
Node;AmplifyShaderEditor.SimpleAddOpNode;117;-1809.617,-420.4002;Inherit;False;3;3;0;FLOAT2;0,0;False;1;FLOAT2;0,0;False;2;FLOAT;0;False;1;FLOAT2;0
Node;AmplifyShaderEditor.RangedFloatNode;149;-2626.72,1060.845;Inherit;False;Property;_VertexAni_SpeedV;VertexAni_SpeedV;24;0;Create;True;0;0;0;False;0;False;0;0;0;0;0;1;FLOAT;0
Node;AmplifyShaderEditor.SaturateNode;8;-640.3712,187.8072;Inherit;False;1;0;FLOAT;0;False;1;FLOAT;0
Node;AmplifyShaderEditor.SimpleTimeNode;148;-2421.72,1065.845;Inherit;False;1;0;FLOAT;1;False;1;FLOAT;0
Node;AmplifyShaderEditor.TextureCoordinatesNode;143;-2464.024,931.8439;Inherit;False;0;2;2;3;2;SAMPLER2D;;False;0;FLOAT2;1,1;False;1;FLOAT2;0,0;False;5;FLOAT2;0;FLOAT;1;FLOAT;2;FLOAT;3;FLOAT;4
Node;AmplifyShaderEditor.SimpleTimeNode;142;-2420.72,858.3453;Inherit;False;1;0;FLOAT;1;False;1;FLOAT;0
Node;AmplifyShaderEditor.OneMinusNode;10;-469.0647,217.2338;Inherit;False;1;0;FLOAT;0;False;1;FLOAT;0
Node;AmplifyShaderEditor.SamplerNode;55;-1591.075,-449.8566;Inherit;True;Property;_MainTexture;MainTexture;2;0;Create;True;0;0;0;False;0;False;-1;None;337567e221078124980718745a3849b6;True;0;False;white;Auto;False;Object;-1;Auto;Texture2D;8;0;SAMPLER2D;;False;1;FLOAT2;0,0;False;2;FLOAT;0;False;3;FLOAT2;0,0;False;4;FLOAT2;0,0;False;5;FLOAT;1;False;6;FLOAT;0;False;7;SAMPLERSTATE;;False;5;COLOR;0;FLOAT;1;FLOAT;2;FLOAT;3;FLOAT;4
Node;AmplifyShaderEditor.RangedFloatNode;19;-454.8252,333.53;Inherit;False;Property;_Fresnel_OneMinus;Fresnel_OneMinus;16;1;[Toggle];Create;True;0;0;0;False;1;Header(Fresnel);False;0;0;0;0;0;1;FLOAT;0
Node;AmplifyShaderEditor.SimpleAddOpNode;144;-2212.024,1008.844;Inherit;False;2;2;0;FLOAT;0;False;1;FLOAT;0;False;1;FLOAT;0
Node;AmplifyShaderEditor.StaticSwitch;74;-1278.522,-425.9659;Inherit;False;Property;_MainTexChannelSwitch;MainTexChannelSwitch;3;0;Create;True;0;0;0;False;0;False;0;0;0;True;;KeywordEnum;4;R;G;B;A;Create;True;True;9;1;FLOAT;0;False;0;FLOAT;0;False;2;FLOAT;0;False;3;FLOAT;0;False;4;FLOAT;0;False;5;FLOAT;0;False;6;FLOAT;0;False;7;FLOAT;0;False;8;FLOAT;0;False;1;FLOAT;0
Node;AmplifyShaderEditor.SimpleAddOpNode;145;-2212.024,915.8439;Inherit;False;2;2;0;FLOAT;0;False;1;FLOAT;0;False;1;FLOAT;0
Node;AmplifyShaderEditor.LerpOp;20;-202.8246,192.53;Inherit;False;3;0;FLOAT;0;False;1;FLOAT;0;False;2;FLOAT;0;False;1;FLOAT;0
Node;AmplifyShaderEditor.RangedFloatNode;89;-140.1236,334.2154;Inherit;False;Property;_Fresnel_SoftEdge;Fresnel_SoftEdge;19;0;Create;True;0;0;0;False;0;False;0;5E-05;0;1;0;1;FLOAT;0
Node;AmplifyShaderEditor.RangedFloatNode;78;-922.5876,-168.5557;Inherit;False;Property;_AlphaScale;AlphaScale;1;0;Create;True;0;0;0;False;0;False;1;1;0;0;0;1;FLOAT;0
Node;AmplifyShaderEditor.VertexColorNode;134;119.2801,-391.5777;Inherit;False;0;5;COLOR;0;FLOAT;1;FLOAT;2;FLOAT;3;FLOAT;4
Node;AmplifyShaderEditor.DynamicAppendNode;146;-2069.025,936.8439;Inherit;False;FLOAT2;4;0;FLOAT;0;False;1;FLOAT;0;False;2;FLOAT;0;False;3;FLOAT;0;False;1;FLOAT2;0
Node;AmplifyShaderEditor.SimpleMultiplyOpNode;77;-647.5884,-186.5557;Inherit;False;2;2;0;FLOAT;0;False;1;FLOAT;0;False;1;FLOAT;0
Node;AmplifyShaderEditor.SmoothstepOpNode;88;178.2849,192.1159;Inherit;False;3;0;FLOAT;0;False;1;FLOAT;0;False;2;FLOAT;1;False;1;FLOAT;0
Node;AmplifyShaderEditor.SamplerNode;137;-1896.391,908.1109;Inherit;True;Property;_VertexAni_Tex;VertexAni_Tex;21;0;Create;True;0;0;0;False;1;Header(VertexAnimation);False;-1;None;None;True;0;False;white;Auto;False;Object;-1;Auto;Texture2D;8;0;SAMPLER2D;;False;1;FLOAT2;0,0;False;2;FLOAT;0;False;3;FLOAT2;0,0;False;4;FLOAT2;0,0;False;5;FLOAT;1;False;6;FLOAT;0;False;7;SAMPLERSTATE;;False;5;COLOR;0;FLOAT;1;FLOAT;2;FLOAT;3;FLOAT;4
Node;AmplifyShaderEditor.SimpleMultiplyOpNode;79;477.5032,-179.5083;Inherit;False;3;3;0;FLOAT;0;False;1;FLOAT;0;False;2;FLOAT;0;False;1;FLOAT;0
Node;AmplifyShaderEditor.RangedFloatNode;127;383.9688,-289.3644;Inherit;False;Property;_Dissolve;Dissolve;20;0;Create;True;0;0;0;False;1;Header(Dissolve);False;0;0;0;1;0;1;FLOAT;0
Node;AmplifyShaderEditor.SaturateNode;80;615.8423,-179.5093;Inherit;False;1;0;FLOAT;0;False;1;FLOAT;0
Node;AmplifyShaderEditor.RegisterLocalVarNode;151;-1470.819,932.9649;Inherit;False;_Animation;-1;True;1;0;FLOAT;0;False;1;FLOAT;0
Node;AmplifyShaderEditor.ColorNode;76;-964.6736,-356.3445;Inherit;False;Property;_MainColor;MainColor;0;1;[HDR];Create;True;0;0;0;False;0;False;1,1,1,0;0.7986147,2.174007,8.47419,0;True;0;5;COLOR;0;FLOAT;1;FLOAT;2;FLOAT;3;FLOAT;4
Node;AmplifyShaderEditor.NormalVertexDataNode;139;882.288,-161.9078;Inherit;False;0;5;FLOAT3;0;FLOAT;1;FLOAT;2;FLOAT;3;FLOAT;4
Node;AmplifyShaderEditor.GetLocalVarNode;152;874.4367,133.0193;Inherit;False;151;_Animation;1;0;OBJECT;;False;1;FLOAT;0
Node;AmplifyShaderEditor.SimpleSubtractOpNode;131;787.3918,-309.3447;Inherit;False;2;0;FLOAT;0;False;1;FLOAT;0;False;1;FLOAT;0
Node;AmplifyShaderEditor.Vector3Node;138;831.288,-20.90784;Inherit;False;Property;_VertexAni_XYZ_Scale;VertexAni_XYZ_Scale;22;0;Create;True;0;0;0;False;0;False;0,0,0;0,0,0;0;4;FLOAT3;0;FLOAT;1;FLOAT;2;FLOAT;3
Node;AmplifyShaderEditor.SimpleMultiplyOpNode;75;-658.6737,-422.3445;Inherit;False;2;2;0;FLOAT;0;False;1;COLOR;0,0,0,0;False;1;COLOR;0
Node;AmplifyShaderEditor.RegisterLocalVarNode;125;-485.1964,-238.645;Inherit;False;_Dissolve;-1;True;1;0;FLOAT;0;False;1;FLOAT;0
Node;AmplifyShaderEditor.SaturateNode;132;1092.853,-309.3444;Inherit;False;1;0;FLOAT;0;False;1;FLOAT;0
Node;AmplifyShaderEditor.SimpleMultiplyOpNode;140;1094.288,-87.90784;Inherit;False;3;3;0;FLOAT3;0,0,0;False;1;FLOAT3;0,0,0;False;2;FLOAT;0;False;1;FLOAT3;0
Node;AmplifyShaderEditor.SimpleMultiplyOpNode;135;1085.522,-421.9048;Inherit;False;2;2;0;COLOR;0,0,0,0;False;1;COLOR;0,0,0,0;False;1;COLOR;0
Node;AmplifyShaderEditor.TemplateMultiPassMasterNode;155;1424.37,-420.9756;Float;False;True;-1;2;FZDL.ShaderDrawer.LWGUI;0;19;FZDL_Shader/Particles/JR_Particle_Fresnel;f6a8202377f89fa43a72ef913b737a61;True;Forward;0;0;Forward;6;False;False;False;False;False;False;False;False;False;False;False;False;False;False;False;False;False;False;True;3;RenderPipeline=UniversalPipeline;RenderType=Transparent=RenderType;Queue=Transparent=Queue=100;False;0;True;1;0;True;-5;0;True;-6;0;1;False;-1;0;False;-1;True;0;True;-7;0;False;-1;False;False;False;False;False;False;False;True;0;True;-8;False;False;False;False;False;True;0;True;-4;False;False;True;0;False;0;Hidden/InternalErrorShader;0;0;Standard;2;GPU Instancing;1;Use Alpha Clip;0;0;1;True;False;;False;0
WireConnection;101;0;98;0
WireConnection;99;0;97;0
WireConnection;103;0;100;2
WireConnection;103;1;101;0
WireConnection;102;0;99;0
WireConnection;102;1;100;1
WireConnection;104;0;102;0
WireConnection;104;1;103;0
WireConnection;105;1;104;0
WireConnection;108;0;105;1
WireConnection;108;1;105;2
WireConnection;112;0;108;0
WireConnection;112;1;111;0
WireConnection;63;0;64;0
WireConnection;61;0;62;0
WireConnection;58;0;61;0
WireConnection;58;1;57;1
WireConnection;59;0;57;2
WireConnection;59;1;63;0
WireConnection;114;0;112;0
WireConnection;60;0;58;0
WireConnection;60;1;59;0
WireConnection;116;0;60;0
WireConnection;116;1;115;0
WireConnection;110;0;108;0
WireConnection;110;1;109;0
WireConnection;69;0;66;0
WireConnection;2;1;116;0
WireConnection;2;5;3;0
WireConnection;67;0;65;0
WireConnection;113;0;110;0
WireConnection;71;0;67;0
WireConnection;71;1;68;1
WireConnection;70;0;68;2
WireConnection;70;1;69;0
WireConnection;33;0;2;0
WireConnection;72;0;71;0
WireConnection;72;1;70;0
WireConnection;1;0;33;0
WireConnection;1;2;5;0
WireConnection;1;3;6;0
WireConnection;117;0;72;0
WireConnection;117;1;118;0
WireConnection;117;2;154;0
WireConnection;8;0;1;0
WireConnection;148;0;149;0
WireConnection;142;0;141;0
WireConnection;10;0;8;0
WireConnection;55;1;117;0
WireConnection;144;0;143;2
WireConnection;144;1;148;0
WireConnection;74;1;55;1
WireConnection;74;0;55;2
WireConnection;74;2;55;3
WireConnection;74;3;55;4
WireConnection;145;0;142;0
WireConnection;145;1;143;1
WireConnection;20;0;8;0
WireConnection;20;1;10;0
WireConnection;20;2;19;0
WireConnection;146;0;145;0
WireConnection;146;1;144;0
WireConnection;77;0;74;0
WireConnection;77;1;78;0
WireConnection;88;0;20;0
WireConnection;88;2;89;0
WireConnection;137;1;146;0
WireConnection;79;0;77;0
WireConnection;79;1;88;0
WireConnection;79;2;134;4
WireConnection;80;0;79;0
WireConnection;151;0;137;1
WireConnection;131;0;80;0
WireConnection;131;1;127;0
WireConnection;75;0;74;0
WireConnection;75;1;76;0
WireConnection;125;0;77;0
WireConnection;132;0;131;0
WireConnection;140;0;139;0
WireConnection;140;1;138;0
WireConnection;140;2;152;0
WireConnection;135;0;75;0
WireConnection;135;1;134;0
WireConnection;155;0;135;0
WireConnection;155;1;132;0
WireConnection;155;5;140;0
ASEEND*/
//CHKSM=A34130FAA8DB458D01C3B52C16D56B7928C24FEA