// Made with Amplify Shader Editor v1.9.9.4 // Available at the Unity Asset Store - http://u3d.as/y3X Shader "Soung/Post/ScreenFX_HEAT" { Properties { [HideInInspector] _EmissionColor("Emission Color", Color) = (1,1,1,1) [HideInInspector] _AlphaCutoff("Alpha Cutoff ", Range(0, 1)) = 0.5 [Header(Setting)][Enum(UnityEngine.Rendering.CullMode)] _CullingMode( "剔除模式", Float ) = 0 [Header(Heat)] _HeatTex( "热扭曲贴图", 2D ) = "white" {} _HeatPower( "热扭曲强度", Range( 0, 1 ) ) = 0.01 [Enum(Material,0,Custom1y,1)] _HeatPowerMode( "热扭曲强度模式", Float ) = 0 [Enum(Local,0,Polar,1)] _HeatUVMode( "热扭曲UV模式", Float ) = 0 _HeatPolarSettings( "热扭曲极坐标原点与偏移", Vector ) = ( 0.5, 0.5, 1, 1 ) _HeatUSpeed( "热扭曲U速度", Float ) = 0 _HeatVSpeed( "热扭曲V速度", Float ) = 0 [Enum(Program,0,Texture,1)] _HeatMaskMode( "热扭曲遮罩模式", Float ) = 0 [Header(ProgramMask)] _ProgramMaskSoft( "程序遮罩过渡", Range( 0, 10 ) ) = 3 _ProgramMaskRange( "程序遮罩范围", Range( 0, 1.5 ) ) = 0.1 _ProgramMaskHori( "程序遮罩水平方向", Range( -0.5, 1.5 ) ) = 0.5 _ProgramMaskVerz( "程序遮罩垂直方向", Range( -0.5, 1.5 ) ) = 0.5 [Enum(OFF,0,ON,1)] _OneMinusProGMask( "反向程序遮罩", Float ) = 0 [Header(Mask)] _MaskTex( "遮罩贴图", 2D ) = "white" {} [Enum(R,0,A,1)] _MaskTexP( "遮罩贴图通道", Float ) = 0 [IntRange] _MaskTexRotator( "遮罩贴图旋转", Range( 0, 360 ) ) = 0 //_TessPhongStrength( "Tess Phong Strength", Range( 0, 1 ) ) = 0.5 //_TessValue( "Tess Max Tessellation", Range( 1, 32 ) ) = 16 //_TessMin( "Tess Min Distance", Float ) = 10 //_TessMax( "Tess Max Distance", Float ) = 25 //_TessEdgeLength ( "Tess Edge length", Range( 2, 50 ) ) = 16 //_TessMaxDisp( "Tess Max Displacement", Float ) = 25 [HideInInspector] _QueueOffset("_QueueOffset", Float) = 0 [HideInInspector] _QueueControl("_QueueControl", Float) = -1 [HideInInspector][NoScaleOffset] unity_Lightmaps("unity_Lightmaps", 2DArray) = "" {} [HideInInspector][NoScaleOffset] unity_LightmapsInd("unity_LightmapsInd", 2DArray) = "" {} [HideInInspector][NoScaleOffset] unity_ShadowMasks("unity_ShadowMasks", 2DArray) = "" {} [HideInInspector][ToggleOff] _ReceiveShadows("Receive Shadows", Float) = 0 } SubShader { LOD 0 Tags { "RenderPipeline"="UniversalPipeline" "RenderType"="Transparent" "Queue"="Transparent" "UniversalMaterialType"="Unlit" } Cull [_CullingMode] AlphaToMask Off HLSLINCLUDE #pragma target 4.5 #pragma prefer_hlslcc gles // ensure rendering platforms toggle list is visible #if ( SHADER_TARGET > 35 ) && defined( SHADER_API_GLES3 ) #error For WebGL2/GLES3, please set your shader target to 3.5 via SubShader options. URP shaders in ASE use target 4.5 by default. #endif #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/Common.hlsl" #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/Filtering.hlsl" #ifndef ASE_TESS_FUNCS #define ASE_TESS_FUNCS float4 FixedTess( float tessValue ) { return tessValue; } float CalcDistanceTessFactor (float4 vertex, float minDist, float maxDist, float tess, float4x4 o2w, float3 cameraPos ) { float3 wpos = mul(o2w,vertex).xyz; float dist = distance (wpos, cameraPos); float f = clamp(1.0 - (dist - minDist) / (maxDist - minDist), 0.01, 1.0) * tess; return f; } float4 CalcTriEdgeTessFactors (float3 triVertexFactors) { float4 tess; tess.x = 0.5 * (triVertexFactors.y + triVertexFactors.z); tess.y = 0.5 * (triVertexFactors.x + triVertexFactors.z); tess.z = 0.5 * (triVertexFactors.x + triVertexFactors.y); tess.w = (triVertexFactors.x + triVertexFactors.y + triVertexFactors.z) / 3.0f; return tess; } float CalcEdgeTessFactor (float3 wpos0, float3 wpos1, float edgeLen, float3 cameraPos, float4 scParams ) { float dist = distance (0.5 * (wpos0+wpos1), cameraPos); float len = distance(wpos0, wpos1); float f = max(len * scParams.y / (edgeLen * dist), 1.0); return f; } float DistanceFromPlane (float3 pos, float4 plane) { float d = dot (float4(pos,1.0f), plane); return d; } bool WorldViewFrustumCull (float3 wpos0, float3 wpos1, float3 wpos2, float cullEps, float4 planes[6] ) { float4 planeTest; planeTest.x = (( DistanceFromPlane(wpos0, planes[0]) > -cullEps) ? 1.0f : 0.0f ) + (( DistanceFromPlane(wpos1, planes[0]) > -cullEps) ? 1.0f : 0.0f ) + (( DistanceFromPlane(wpos2, planes[0]) > -cullEps) ? 1.0f : 0.0f ); planeTest.y = (( DistanceFromPlane(wpos0, planes[1]) > -cullEps) ? 1.0f : 0.0f ) + (( DistanceFromPlane(wpos1, planes[1]) > -cullEps) ? 1.0f : 0.0f ) + (( DistanceFromPlane(wpos2, planes[1]) > -cullEps) ? 1.0f : 0.0f ); planeTest.z = (( DistanceFromPlane(wpos0, planes[2]) > -cullEps) ? 1.0f : 0.0f ) + (( DistanceFromPlane(wpos1, planes[2]) > -cullEps) ? 1.0f : 0.0f ) + (( DistanceFromPlane(wpos2, planes[2]) > -cullEps) ? 1.0f : 0.0f ); planeTest.w = (( DistanceFromPlane(wpos0, planes[3]) > -cullEps) ? 1.0f : 0.0f ) + (( DistanceFromPlane(wpos1, planes[3]) > -cullEps) ? 1.0f : 0.0f ) + (( DistanceFromPlane(wpos2, planes[3]) > -cullEps) ? 1.0f : 0.0f ); return !all (planeTest); } float4 DistanceBasedTess( float4 v0, float4 v1, float4 v2, float tess, float minDist, float maxDist, float4x4 o2w, float3 cameraPos ) { float3 f; f.x = CalcDistanceTessFactor (v0,minDist,maxDist,tess,o2w,cameraPos); f.y = CalcDistanceTessFactor (v1,minDist,maxDist,tess,o2w,cameraPos); f.z = CalcDistanceTessFactor (v2,minDist,maxDist,tess,o2w,cameraPos); return CalcTriEdgeTessFactors (f); } float4 EdgeLengthBasedTess( float4 v0, float4 v1, float4 v2, float edgeLength, float4x4 o2w, float3 cameraPos, float4 scParams ) { float3 pos0 = mul(o2w,v0).xyz; float3 pos1 = mul(o2w,v1).xyz; float3 pos2 = mul(o2w,v2).xyz; float4 tess; tess.x = CalcEdgeTessFactor (pos1, pos2, edgeLength, cameraPos, scParams); tess.y = CalcEdgeTessFactor (pos2, pos0, edgeLength, cameraPos, scParams); tess.z = CalcEdgeTessFactor (pos0, pos1, edgeLength, cameraPos, scParams); tess.w = (tess.x + tess.y + tess.z) / 3.0f; return tess; } float4 EdgeLengthBasedTessCull( float4 v0, float4 v1, float4 v2, float edgeLength, float maxDisplacement, float4x4 o2w, float3 cameraPos, float4 scParams, float4 planes[6] ) { float3 pos0 = mul(o2w,v0).xyz; float3 pos1 = mul(o2w,v1).xyz; float3 pos2 = mul(o2w,v2).xyz; float4 tess; if (WorldViewFrustumCull(pos0, pos1, pos2, maxDisplacement, planes)) { tess = 0.0f; } else { tess.x = CalcEdgeTessFactor (pos1, pos2, edgeLength, cameraPos, scParams); tess.y = CalcEdgeTessFactor (pos2, pos0, edgeLength, cameraPos, scParams); tess.z = CalcEdgeTessFactor (pos0, pos1, edgeLength, cameraPos, scParams); tess.w = (tess.x + tess.y + tess.z) / 3.0f; } return tess; } #endif //ASE_TESS_FUNCS ENDHLSL Pass { Name "Forward" Tags { "LightMode"="Grab" } Blend SrcAlpha OneMinusSrcAlpha ZWrite Off ZTest LEqual Offset 0,0 ColorMask RGBA HLSLPROGRAM #define _SURFACE_TYPE_TRANSPARENT 1 #pragma multi_compile_local _RECEIVE_SHADOWS_OFF #pragma multi_compile_instancing #pragma instancing_options renderinglayer #define ASE_VERSION 19904 #define ASE_SRP_VERSION 140011 #pragma multi_compile _ DOTS_INSTANCING_ON #pragma multi_compile_fragment _ _DBUFFER_MRT1 _DBUFFER_MRT2 _DBUFFER_MRT3 #pragma multi_compile_fragment _ _WRITE_RENDERING_LAYERS #pragma multi_compile _ DIRLIGHTMAP_COMBINED #pragma multi_compile _ LIGHTMAP_ON #pragma multi_compile _ DYNAMICLIGHTMAP_ON #pragma multi_compile_fragment _ DEBUG_DISPLAY #pragma vertex vert #pragma fragment frag #define SHADERPASS SHADERPASS_UNLIT #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/Color.hlsl" #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/Texture.hlsl" #include "Packages/com.unity.render-pipelines.universal/ShaderLibrary/Core.hlsl" #include "Packages/com.unity.render-pipelines.universal/ShaderLibrary/Lighting.hlsl" #include "Packages/com.unity.render-pipelines.universal/ShaderLibrary/Input.hlsl" #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/TextureStack.hlsl" #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/FoveatedRendering.hlsl" #include "Packages/com.unity.render-pipelines.universal/ShaderLibrary/ShaderGraphFunctions.hlsl" #include "Packages/com.unity.render-pipelines.universal/ShaderLibrary/DBuffer.hlsl" #include "Packages/com.unity.render-pipelines.universal/Editor/ShaderGraph/Includes/ShaderPass.hlsl" #include "Packages/com.unity.render-pipelines.universal/ShaderLibrary/Debug/Debugging3D.hlsl" #include "Packages/com.unity.render-pipelines.universal/ShaderLibrary/SurfaceData.hlsl" #if defined(LOD_FADE_CROSSFADE) #include "Packages/com.unity.render-pipelines.universal/ShaderLibrary/LODCrossFade.hlsl" #endif #define ASE_NEEDS_FRAG_SCREEN_POSITION #define ASE_NEEDS_TEXTURE_COORDINATES0 #define ASE_NEEDS_TEXTURE_COORDINATES1 #define ASE_NEEDS_FRAG_TEXTURE_COORDINATES0 #if defined(ASE_EARLY_Z_DEPTH_OPTIMIZE) && (SHADER_TARGET >= 45) #define ASE_SV_DEPTH SV_DepthLessEqual #define ASE_SV_POSITION_QUALIFIERS linear noperspective centroid #else #define ASE_SV_DEPTH SV_Depth #define ASE_SV_POSITION_QUALIFIERS #endif struct Attributes { float4 positionOS : POSITION; half3 normalOS : NORMAL; float4 ase_texcoord : TEXCOORD0; float4 ase_texcoord1 : TEXCOORD1; float4 ase_color : COLOR; UNITY_VERTEX_INPUT_INSTANCE_ID }; struct PackedVaryings { ASE_SV_POSITION_QUALIFIERS float4 positionCS : SV_POSITION; float4 positionWSAndFogFactor : TEXCOORD0; half3 normalWS : TEXCOORD1; float4 ase_texcoord2 : TEXCOORD2; float4 ase_texcoord3 : TEXCOORD3; float4 ase_color : COLOR; UNITY_VERTEX_INPUT_INSTANCE_ID UNITY_VERTEX_OUTPUT_STEREO }; CBUFFER_START(UnityPerMaterial) float4 _MaskTex_ST; float4 _HeatTex_ST; float4 _HeatPolarSettings; float _CullingMode; float _MaskTexRotator; float _ProgramMaskSoft; float _ProgramMaskRange; float _OneMinusProGMask; float _ProgramMaskVerz; float _ProgramMaskHori; float _HeatPowerMode; float _HeatPower; float _HeatUVMode; float _HeatVSpeed; float _HeatUSpeed; float _MaskTexP; float _HeatMaskMode; #ifdef ASE_TESSELLATION float _TessPhongStrength; float _TessValue; float _TessMin; float _TessMax; float _TessEdgeLength; float _TessMaxDisp; #endif CBUFFER_END sampler2D _CameraColorAttachmentA; sampler2D _HeatTex; sampler2D _MaskTex; inline float4 ASE_ComputeGrabScreenPos( float4 pos ) { #if UNITY_UV_STARTS_AT_TOP float scale = -1.0; #else float scale = 1.0; #endif float4 o = pos; o.y = pos.w * 0.5f; o.y = ( pos.y - o.y ) * _ProjectionParams.x * scale + o.y; return o; } PackedVaryings VertexFunction( Attributes input ) { PackedVaryings output = (PackedVaryings)0; UNITY_SETUP_INSTANCE_ID(input); UNITY_TRANSFER_INSTANCE_ID(input, output); UNITY_INITIALIZE_VERTEX_OUTPUT_STEREO(output); output.ase_texcoord2.xy = input.ase_texcoord.xy; output.ase_texcoord3 = input.ase_texcoord1; output.ase_color = input.ase_color; //setting value to unused interpolator channels and avoid initialization warnings output.ase_texcoord2.zw = 0; #ifdef ASE_ABSOLUTE_VERTEX_POS float3 defaultVertexValue = input.positionOS.xyz; #else float3 defaultVertexValue = float3(0, 0, 0); #endif float3 vertexValue = defaultVertexValue; #ifdef ASE_ABSOLUTE_VERTEX_POS input.positionOS.xyz = vertexValue; #else input.positionOS.xyz += vertexValue; #endif input.normalOS = input.normalOS; VertexPositionInputs vertexInput = GetVertexPositionInputs( input.positionOS.xyz ); VertexNormalInputs normalInput = GetVertexNormalInputs( input.normalOS ); float fogFactor = 0; #if defined(ASE_FOG) && !defined(_FOG_FRAGMENT) fogFactor = ComputeFogFactor(vertexInput.positionCS.z); #endif output.positionCS = vertexInput.positionCS; output.positionWSAndFogFactor = float4( vertexInput.positionWS, fogFactor ); output.normalWS = normalInput.normalWS; return output; } #if defined(ASE_TESSELLATION) struct VertexControl { float4 positionOS : INTERNALTESSPOS; half3 normalOS : NORMAL; float4 ase_texcoord : TEXCOORD0; float4 ase_texcoord1 : TEXCOORD1; float4 ase_color : COLOR; UNITY_VERTEX_INPUT_INSTANCE_ID }; struct TessellationFactors { float edge[3] : SV_TessFactor; float inside : SV_InsideTessFactor; }; VertexControl vert ( Attributes input ) { VertexControl output; UNITY_SETUP_INSTANCE_ID(input); UNITY_TRANSFER_INSTANCE_ID(input, output); output.positionOS = input.positionOS; output.normalOS = input.normalOS; output.ase_texcoord = input.ase_texcoord; output.ase_texcoord1 = input.ase_texcoord1; output.ase_color = input.ase_color; return output; } TessellationFactors TessellationFunction (InputPatch input) { TessellationFactors output; float4 tf = 1; float tessValue = _TessValue; float tessMin = _TessMin; float tessMax = _TessMax; float edgeLength = _TessEdgeLength; float tessMaxDisp = _TessMaxDisp; #if defined(ASE_FIXED_TESSELLATION) tf = FixedTess( tessValue ); #elif defined(ASE_DISTANCE_TESSELLATION) tf = DistanceBasedTess(input[0].positionOS, input[1].positionOS, input[2].positionOS, tessValue, tessMin, tessMax, GetObjectToWorldMatrix(), _WorldSpaceCameraPos ); #elif defined(ASE_LENGTH_TESSELLATION) tf = EdgeLengthBasedTess(input[0].positionOS, input[1].positionOS, input[2].positionOS, edgeLength, GetObjectToWorldMatrix(), _WorldSpaceCameraPos, _ScreenParams ); #elif defined(ASE_LENGTH_CULL_TESSELLATION) tf = EdgeLengthBasedTessCull(input[0].positionOS, input[1].positionOS, input[2].positionOS, edgeLength, tessMaxDisp, GetObjectToWorldMatrix(), _WorldSpaceCameraPos, _ScreenParams, unity_CameraWorldClipPlanes ); #endif output.edge[0] = tf.x; output.edge[1] = tf.y; output.edge[2] = tf.z; output.inside = tf.w; return output; } [domain("tri")] [partitioning("fractional_odd")] [outputtopology("triangle_cw")] [patchconstantfunc("TessellationFunction")] [outputcontrolpoints(3)] VertexControl HullFunction(InputPatch patch, uint id : SV_OutputControlPointID) { return patch[id]; } [domain("tri")] PackedVaryings DomainFunction(TessellationFactors factors, OutputPatch patch, float3 bary : SV_DomainLocation) { Attributes output = (Attributes) 0; output.positionOS = patch[0].positionOS * bary.x + patch[1].positionOS * bary.y + patch[2].positionOS * bary.z; output.normalOS = patch[0].normalOS * bary.x + patch[1].normalOS * bary.y + patch[2].normalOS * bary.z; output.ase_texcoord = patch[0].ase_texcoord * bary.x + patch[1].ase_texcoord * bary.y + patch[2].ase_texcoord * bary.z; output.ase_texcoord1 = patch[0].ase_texcoord1 * bary.x + patch[1].ase_texcoord1 * bary.y + patch[2].ase_texcoord1 * bary.z; output.ase_color = patch[0].ase_color * bary.x + patch[1].ase_color * bary.y + patch[2].ase_color * bary.z; #if defined(ASE_PHONG_TESSELLATION) float3 pp[3]; for (int i = 0; i < 3; ++i) pp[i] = output.positionOS.xyz - patch[i].normalOS * (dot(output.positionOS.xyz, patch[i].normalOS) - dot(patch[i].positionOS.xyz, patch[i].normalOS)); float phongStrength = _TessPhongStrength; output.positionOS.xyz = phongStrength * (pp[0]*bary.x + pp[1]*bary.y + pp[2]*bary.z) + (1.0f-phongStrength) * output.positionOS.xyz; #endif UNITY_TRANSFER_INSTANCE_ID(patch[0], output); return VertexFunction(output); } #else PackedVaryings vert ( Attributes input ) { return VertexFunction( input ); } #endif half4 frag ( PackedVaryings input #if defined( ASE_DEPTH_WRITE_ON ) ,out float outputDepth : ASE_SV_DEPTH #endif #ifdef _WRITE_RENDERING_LAYERS , out float4 outRenderingLayers : SV_Target1 #endif ) : SV_Target { UNITY_SETUP_INSTANCE_ID(input); UNITY_SETUP_STEREO_EYE_INDEX_POST_VERTEX(input); #if defined( _SURFACE_TYPE_TRANSPARENT ) const bool isTransparent = true; #else const bool isTransparent = false; #endif #if defined(LOD_FADE_CROSSFADE) LODFadeCrossFade( input.positionCS ); #endif #if defined(MAIN_LIGHT_CALCULATE_SHADOWS) float4 shadowCoord = TransformWorldToShadowCoord( input.positionWSAndFogFactor.xyz ); #else float4 shadowCoord = float4(0, 0, 0, 0); #endif float3 PositionWS = input.positionWSAndFogFactor.xyz; float3 PositionRWS = GetCameraRelativePositionWS( PositionWS ); half3 ViewDirWS = GetWorldSpaceNormalizeViewDir( PositionWS ); float4 ShadowCoord = shadowCoord; float4 ScreenPosNorm = float4( GetNormalizedScreenSpaceUV( input.positionCS ), input.positionCS.zw ); float4 ClipPos = ComputeClipSpacePosition( ScreenPosNorm.xy, input.positionCS.z ) * input.positionCS.w; float4 ScreenPos = ComputeScreenPos( ClipPos ); half3 NormalWS = normalize( input.normalWS ); float4 ase_grabScreenPos = ASE_ComputeGrabScreenPos( ScreenPos ); float4 ase_grabScreenPosNorm = ase_grabScreenPos / ase_grabScreenPos.w; float2 appendResult391 = (float2(_HeatUSpeed , _HeatVSpeed)); float2 uv_HeatTex = input.ase_texcoord2.xy * _HeatTex_ST.xy + _HeatTex_ST.zw; float2 appendResult382 = (float2(_HeatPolarSettings.x , _HeatPolarSettings.y)); float2 temp_output_34_0_g9 = ( uv_HeatTex - appendResult382 ); float2 break39_g9 = temp_output_34_0_g9; float2 appendResult50_g9 = (float2(( _HeatPolarSettings.z * ( length( temp_output_34_0_g9 ) * 2.0 ) ) , ( ( atan2( break39_g9.x , break39_g9.y ) * ( 1.0 / TWO_PI ) ) * _HeatPolarSettings.w ))); float2 lerpResult387 = lerp( uv_HeatTex , appendResult50_g9 , _HeatUVMode); float2 panner10 = ( 1.0 * _Time.y * appendResult391 + lerpResult387); float4 texCoord408 = input.ase_texcoord3; texCoord408.xy = input.ase_texcoord3.xy * float2( 1,1 ) + float2( 0,0 ); float custom1y409 = texCoord408.y; float lerpResult555 = lerp( _HeatPower , custom1y409 , _HeatPowerMode); float3 unpack9 = UnpackNormalScale( tex2D( _HeatTex, panner10 ), ( lerpResult555 * 0.1 ) ); unpack9.z = lerp( 1, unpack9.z, saturate(( lerpResult555 * 0.1 )) ); float2 texCoord292 = input.ase_texcoord2.xy * float2( 1,1 ) + float2( 0,0 ); float2 appendResult574 = (float2(_ProgramMaskHori , _ProgramMaskVerz)); float2 temp_output_295_0 = ( ( texCoord292 - appendResult574 ) * float2( 2,2 ) ); float2 temp_output_297_0 = ( temp_output_295_0 * temp_output_295_0 ); float temp_output_298_0 = ( (temp_output_297_0).x + (temp_output_297_0).y ); float lerpResult585 = lerp( temp_output_298_0 , ( 1.0 - temp_output_298_0 ) , _OneMinusProGMask); float GlobalMask340 = saturate( pow( saturate( ( lerpResult585 - _ProgramMaskRange ) ) , _ProgramMaskSoft ) ); float2 uv_MaskTex = input.ase_texcoord2.xy * _MaskTex_ST.xy + _MaskTex_ST.zw; float cos437 = cos( ( ( _MaskTexRotator * PI ) / 180.0 ) ); float sin437 = sin( ( ( _MaskTexRotator * PI ) / 180.0 ) ); float2 rotator437 = mul( uv_MaskTex - float2( 0.5,0.5 ) , float2x2( cos437 , -sin437 , sin437 , cos437 )) + float2( 0.5,0.5 ); float4 tex2DNode203 = tex2D( _MaskTex, rotator437 ); float lerpResult307 = lerp( tex2DNode203.r , tex2DNode203.a , _MaskTexP); float MaskTexAlpha542 = lerpResult307; float lerpResult552 = lerp( GlobalMask340 , MaskTexAlpha542 , _HeatMaskMode); float3 BakedAlbedo = 0; float3 BakedEmission = 0; float3 Color = tex2D( _CameraColorAttachmentA, ( ase_grabScreenPosNorm + float4( unpack9 , 0.0 ) ).xy ).rgb; float Alpha = ( input.ase_color.a * lerpResult552 ); float AlphaClipThreshold = 0.5; float AlphaClipThresholdShadow = 0.5; #if defined( ASE_DEPTH_WRITE_ON ) float DeviceDepth = input.positionCS.z; #endif #if defined( _ALPHATEST_ON ) AlphaDiscard( Alpha, AlphaClipThreshold ); #endif #if defined(MAIN_LIGHT_CALCULATE_SHADOWS) && defined(ASE_CHANGES_WORLD_POS) ShadowCoord = TransformWorldToShadowCoord( PositionWS ); #endif InputData inputData = (InputData)0; inputData.positionWS = PositionWS; inputData.positionCS = float4( input.positionCS.xy, ClipPos.zw / ClipPos.w ); inputData.normalizedScreenSpaceUV = ScreenPosNorm.xy; inputData.normalWS = NormalWS; inputData.viewDirectionWS = ViewDirWS; #ifdef ASE_FOG inputData.fogCoord = InitializeInputDataFog(float4(inputData.positionWS, 1.0), input.positionWSAndFogFactor.w); #endif #if defined(_DBUFFER) ApplyDecalToBaseColor(input.positionCS, Color); #endif #ifdef ASE_FOG #ifdef TERRAIN_SPLAT_ADDPASS Color.rgb = MixFogColor(Color.rgb, half3(0,0,0), inputData.fogCoord); #else Color.rgb = MixFog(Color.rgb, inputData.fogCoord); #endif #endif #if defined( ASE_DEPTH_WRITE_ON ) outputDepth = DeviceDepth; #endif #ifdef _WRITE_RENDERING_LAYERS uint renderingLayers = GetMeshRenderingLayer(); outRenderingLayers = float4( EncodeMeshRenderingLayer( renderingLayers ), 0, 0, 0 ); #endif #if defined( ASE_OPAQUE_KEEP_ALPHA ) return half4( Color, Alpha ); #else return half4( Color, OutputAlpha( Alpha, isTransparent ) ); #endif } ENDHLSL } } FallBack "Hidden/Shader Graph/FallbackError" Fallback Off } /*ASEBEGIN Version=19904 Node;AmplifyShaderEditor.CommentaryNode, AmplifyShaderEditor, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null;353;-764.0463,-4464.691;Inherit;False;2714.612;361.7492;ProgramMask;20;340;582;303;304;302;301;585;305;586;584;298;300;299;297;295;293;292;574;580;581;程序遮罩;1,0.7765525,0.4764151,1;0;0 Node;AmplifyShaderEditor.RangedFloatNode, AmplifyShaderEditor, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null;581;-748.4049,-4299.583;Inherit;False;Property;_ProgramMaskVerz;程序遮罩垂直方向;13;0;Create;False;0;0;0;False;0;False;0.5;0.5;-0.5;1.5;0;1;FLOAT;0 Node;AmplifyShaderEditor.RangedFloatNode, AmplifyShaderEditor, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null;580;-747.4049,-4373.583;Inherit;False;Property;_ProgramMaskHori;程序遮罩水平方向;12;0;Create;False;0;0;0;False;0;False;0.5;0.5;-0.5;1.5;0;1;FLOAT;0 Node;AmplifyShaderEditor.DynamicAppendNode, AmplifyShaderEditor, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null;574;-481.9047,-4353.434;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.TextureCoordinatesNode, AmplifyShaderEditor, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null;292;-343.7242,-4380.094;Inherit;False;0;-1;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.SimpleSubtractOpNode, AmplifyShaderEditor, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null;293;-105.2568,-4379.785;Inherit;False;2;0;FLOAT2;0,0;False;1;FLOAT2;0,0;False;1;FLOAT2;0 Node;AmplifyShaderEditor.SimpleMultiplyOpNode, AmplifyShaderEditor, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null;295;33.74326,-4379.785;Inherit;False;2;2;0;FLOAT2;0,0;False;1;FLOAT2;2,2;False;1;FLOAT2;0 Node;AmplifyShaderEditor.SimpleMultiplyOpNode, AmplifyShaderEditor, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null;297;172.7072,-4390.957;Inherit;True;2;2;0;FLOAT2;0,0;False;1;FLOAT2;0,0;False;1;FLOAT2;0 Node;AmplifyShaderEditor.CommentaryNode, AmplifyShaderEditor, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null;439;378.8727,-3173.412;Inherit;False;1396.706;321.6077;MaskTex;9;542;307;306;203;437;434;435;438;567;遮罩贴图;1,1,1,1;0;0 Node;AmplifyShaderEditor.ComponentMaskNode, AmplifyShaderEditor, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null;299;367.7079,-4414.957;Inherit;False;True;False;True;True;1;0;FLOAT2;0,0;False;1;FLOAT;0 Node;AmplifyShaderEditor.ComponentMaskNode, AmplifyShaderEditor, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null;300;368.7079,-4339.957;Inherit;False;False;True;True;True;1;0;FLOAT2;0,0;False;1;FLOAT;0 Node;AmplifyShaderEditor.RangedFloatNode, AmplifyShaderEditor, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null;438;391.8409,-2976.821;Inherit;False;Property;_MaskTexRotator;遮罩贴图旋转;17;1;[IntRange];Create;False;0;0;0;False;0;False;0;0;0;360;0;1;FLOAT;0 Node;AmplifyShaderEditor.SimpleAddOpNode, AmplifyShaderEditor, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null;298;574.7076,-4400.957;Inherit;True;2;2;0;FLOAT;0;False;1;FLOAT;0;False;1;FLOAT;0 Node;AmplifyShaderEditor.OneMinusNode, AmplifyShaderEditor, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null;584;785.4196,-4345.908;Inherit;False;1;0;FLOAT;0;False;1;FLOAT;0 Node;AmplifyShaderEditor.RangedFloatNode, AmplifyShaderEditor, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null;586;786.4543,-4274.516;Inherit;False;Property;_OneMinusProGMask;反向程序遮罩;14;1;[Enum];Create;False;0;2;OFF;0;ON;1;0;False;0;False;0;0;0;0;0;1;FLOAT;0 Node;AmplifyShaderEditor.CommentaryNode, AmplifyShaderEditor, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null;48;-766.2675,-4071.334;Inherit;False;2541.771;870.968;Heat;24;9;13;557;15;555;556;380;10;391;390;389;388;387;381;11;383;382;569;570;566;565;554;533;578;热扭曲;1,1,1,1;0;0 Node;AmplifyShaderEditor.CommentaryNode, AmplifyShaderEditor, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null;399;2016.689,-4241.036;Inherit;False;952;348;Comment;6;420;410;409;412;408;421;自定义顶点流;1,1,1,1;0;0 Node;AmplifyShaderEditor.PiNode, AmplifyShaderEditor, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null;435;656.8412,-2976.821;Inherit;False;1;0;FLOAT;1;False;1;FLOAT;0 Node;AmplifyShaderEditor.RangedFloatNode, AmplifyShaderEditor, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null;305;503.0114,-4189.638;Inherit;False;Property;_ProgramMaskRange;程序遮罩范围;11;0;Create;False;0;0;0;False;0;False;0.1;0.31;0;1.5;0;1;FLOAT;0 Node;AmplifyShaderEditor.LerpOp, AmplifyShaderEditor, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null;585;962.3474,-4400.746;Inherit;False;3;0;FLOAT;0;False;1;FLOAT;0;False;2;FLOAT;0;False;1;FLOAT;0 Node;AmplifyShaderEditor.TextureCoordinatesNode, AmplifyShaderEditor, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null;408;2029.689,-4135.036;Inherit;False;1;-1;4;3;2;SAMPLER2D;;False;0;FLOAT2;1,1;False;1;FLOAT2;0,0;False;5;FLOAT4;0;FLOAT;1;FLOAT;2;FLOAT;3;FLOAT;4 Node;AmplifyShaderEditor.Vector4Node, AmplifyShaderEditor, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null;381;-744.8047,-3990.511;Inherit;False;Property;_HeatPolarSettings;热扭曲极坐标原点与偏移;6;0;Create;False;0;0;0;False;0;False;0.5,0.5,1,1;0,0,0,0;0;5;FLOAT4;0;FLOAT;1;FLOAT;2;FLOAT;3;FLOAT;4 Node;AmplifyShaderEditor.SimpleDivideOpNode, AmplifyShaderEditor, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null;434;830.8415,-2976.821;Inherit;False;2;0;FLOAT;0;False;1;FLOAT;180;False;1;FLOAT;0 Node;AmplifyShaderEditor.SimpleSubtractOpNode, AmplifyShaderEditor, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null;301;1104.173,-4401.122;Inherit;True;2;0;FLOAT;0;False;1;FLOAT;0;False;1;FLOAT;0 Node;AmplifyShaderEditor.TextureCoordinatesNode, AmplifyShaderEditor, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null;567;390.986,-3098.749;Inherit;False;0;203;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.RegisterLocalVarNode, AmplifyShaderEditor, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null;409;2282.688,-4122.036;Inherit;False;custom1y;-1;True;1;0;FLOAT;0;False;1;FLOAT;0 Node;AmplifyShaderEditor.DynamicAppendNode, AmplifyShaderEditor, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null;382;-486.5915,-3965.313;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.RotatorNode, AmplifyShaderEditor, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null;437;968.2652,-3100.201;Inherit;False;3;0;FLOAT2;0,0;False;1;FLOAT2;0.5,0.5;False;2;FLOAT;1;False;1;FLOAT2;0 Node;AmplifyShaderEditor.SaturateNode, AmplifyShaderEditor, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null;302;1302.243,-4402.157;Inherit;False;1;0;FLOAT;0;False;1;FLOAT;0 Node;AmplifyShaderEditor.RangedFloatNode, AmplifyShaderEditor, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null;304;1100.443,-4184.609;Inherit;False;Property;_ProgramMaskSoft;程序遮罩过渡;10;1;[Header];Create;False;1;ProgramMask;0;0;False;0;False;3;1.39;0;10;0;1;FLOAT;0 Node;AmplifyShaderEditor.TextureCoordinatesNode, AmplifyShaderEditor, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null;11;-739.6094,-3813.047;Inherit;False;0;9;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.FunctionNode, AmplifyShaderEditor, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null;383;-322.9406,-3966.844;Inherit;False;Polar Coordinates;-1;;9;7dab8e02884cf104ebefaa2e788e4162;0;4;1;FLOAT2;0,0;False;2;FLOAT2;0.5,0.5;False;3;FLOAT;1;False;4;FLOAT;1;False;3;FLOAT2;0;FLOAT;55;FLOAT;56 Node;AmplifyShaderEditor.RangedFloatNode, AmplifyShaderEditor, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null;388;-288.8254,-3816.856;Inherit;False;Property;_HeatUVMode;热扭曲UV模式;5;1;[Enum];Create;False;0;2;Local;0;Polar;1;0;False;0;False;0;0;0;0;0;1;FLOAT;0 Node;AmplifyShaderEditor.RangedFloatNode, AmplifyShaderEditor, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null;389;-419.8255,-3737.856;Inherit;False;Property;_HeatUSpeed;热扭曲U速度;7;0;Create;False;0;0;0;False;0;False;0;0;0;0;0;1;FLOAT;0 Node;AmplifyShaderEditor.RangedFloatNode, AmplifyShaderEditor, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null;390;-418.8255,-3663.856;Inherit;False;Property;_HeatVSpeed;热扭曲V速度;8;0;Create;False;0;0;0;False;0;False;0;0;0;0;0;1;FLOAT;0 Node;AmplifyShaderEditor.RangedFloatNode, AmplifyShaderEditor, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null;15;-743.5643,-3621.583;Inherit;False;Property;_HeatPower;热扭曲强度;3;0;Create;False;0;0;0;False;0;False;0.01;0.02;0;1;0;1;FLOAT;0 Node;AmplifyShaderEditor.RangedFloatNode, AmplifyShaderEditor, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null;306;1249.079,-2933.336;Inherit;False;Property;_MaskTexP;遮罩贴图通道;16;1;[Enum];Create;False;0;2;R;0;A;1;0;True;0;False;0;1;0;0;0;1;FLOAT;0 Node;AmplifyShaderEditor.PowerNode, AmplifyShaderEditor, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null;303;1443.412,-4401.973;Inherit;False;False;2;0;FLOAT;0;False;1;FLOAT;1;False;1;FLOAT;0 Node;AmplifyShaderEditor.GetLocalVarNode, AmplifyShaderEditor, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null;556;-643.8529,-3541.273;Inherit;False;409;custom1y;1;0;OBJECT;;False;1;FLOAT;0 Node;AmplifyShaderEditor.RangedFloatNode, AmplifyShaderEditor, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null;557;-643.8529,-3469.273;Inherit;False;Property;_HeatPowerMode;热扭曲强度模式;4;1;[Enum];Create;False;0;2;Material;0;Custom1y;1;0;False;0;False;0;0;0;0;0;1;FLOAT;0 Node;AmplifyShaderEditor.SamplerNode, AmplifyShaderEditor, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null;203;1147.191,-3123.943;Inherit;True;Property;_MaskTex;遮罩贴图;15;1;[Header];Create;False;1;Mask;0;0;False;0;False;-1;None;None;True;0;False;white;Auto;False;Object;-1;Auto;Texture2D;False;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;6;COLOR;0;FLOAT;1;FLOAT;2;FLOAT;3;FLOAT;4;FLOAT3;5 Node;AmplifyShaderEditor.LerpOp, AmplifyShaderEditor, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null;555;-462.8527,-3565.273;Inherit;False;3;0;FLOAT;0;False;1;FLOAT;0;False;2;FLOAT;0;False;1;FLOAT;0 Node;AmplifyShaderEditor.DynamicAppendNode, AmplifyShaderEditor, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null;391;-233.8251,-3723.856;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.LerpOp, AmplifyShaderEditor, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null;387;-97.82513,-3865.856;Inherit;False;3;0;FLOAT2;0,0;False;1;FLOAT2;0,0;False;2;FLOAT;0;False;1;FLOAT2;0 Node;AmplifyShaderEditor.LerpOp, AmplifyShaderEditor, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null;307;1424.079,-3027.336;Inherit;False;3;0;FLOAT;0;False;1;FLOAT;0;False;2;FLOAT;0;False;1;FLOAT;0 Node;AmplifyShaderEditor.SaturateNode, AmplifyShaderEditor, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null;582;1580.529,-4401.633;Inherit;True;1;0;FLOAT;0;False;1;FLOAT;0 Node;AmplifyShaderEditor.RangedFloatNode, AmplifyShaderEditor, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null;380;-642.3884,-3395.762;Inherit;False;Constant;_HeatPowerLow;HeatPowerLow;34;0;Create;True;0;0;0;False;0;False;0.1;0;0;0;0;1;FLOAT;0 Node;AmplifyShaderEditor.SimpleMultiplyOpNode, AmplifyShaderEditor, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null;13;-313.0738,-3566.499;Inherit;False;2;2;0;FLOAT;0;False;1;FLOAT;0;False;1;FLOAT;0 Node;AmplifyShaderEditor.PannerNode, AmplifyShaderEditor, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null;10;56.93385,-3865.935;Inherit;False;3;0;FLOAT2;0,0;False;2;FLOAT2;0,0;False;1;FLOAT;1;False;1;FLOAT2;0 Node;AmplifyShaderEditor.CommentaryNode, AmplifyShaderEditor, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null;554;-149.6902,-3486.481;Inherit;False;389.5959;267.2759;HeatMask;4;553;552;550;551;热扭曲遮罩;1,1,1,1;0;0 Node;AmplifyShaderEditor.RegisterLocalVarNode, AmplifyShaderEditor, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null;542;1562.401,-3027.285;Inherit;False;MaskTexAlpha;-1;True;1;0;FLOAT;0;False;1;FLOAT;0 Node;AmplifyShaderEditor.RegisterLocalVarNode, AmplifyShaderEditor, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null;340;1739.913,-4400.405;Inherit;False;GlobalMask;-1;True;1;0;FLOAT;0;False;1;FLOAT;0 Node;AmplifyShaderEditor.RangedFloatNode, AmplifyShaderEditor, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null;553;-124.0126,-3297.177;Inherit;False;Property;_HeatMaskMode;热扭曲遮罩模式;9;1;[Enum];Create;False;0;2;Program;0;Texture;1;0;False;0;False;0;0;0;0;0;1;FLOAT;0 Node;AmplifyShaderEditor.GetLocalVarNode, AmplifyShaderEditor, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null;551;-124.8864,-3443.989;Inherit;False;340;GlobalMask;1;0;OBJECT;;False;1;FLOAT;0 Node;AmplifyShaderEditor.GetLocalVarNode, AmplifyShaderEditor, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null;550;-122.8423,-3370.913;Inherit;False;542;MaskTexAlpha;1;0;OBJECT;;False;1;FLOAT;0 Node;AmplifyShaderEditor.SamplerNode, AmplifyShaderEditor, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null;9;267.0942,-3615.99;Inherit;True;Property;_HeatTex;热扭曲贴图;2;1;[Header];Create;False;1;Heat;0;0;False;0;False;-1;None;None;True;0;False;white;Auto;True;Object;-1;Auto;Texture2D;False;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;6;FLOAT3;0;FLOAT;1;FLOAT;2;FLOAT;3;FLOAT;4;FLOAT3;5 Node;AmplifyShaderEditor.GrabScreenPosition, AmplifyShaderEditor, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null;569;1076.786,-3826.471;Inherit;False;0;0;5;FLOAT4;0;FLOAT;1;FLOAT;2;FLOAT;3;FLOAT;4 Node;AmplifyShaderEditor.LerpOp, AmplifyShaderEditor, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null;552;90.89442,-3443.391;Inherit;False;3;0;FLOAT;0;False;1;FLOAT;0;False;2;FLOAT;0;False;1;FLOAT;0 Node;AmplifyShaderEditor.CommentaryNode, AmplifyShaderEditor, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null;421;2504.372,-4050.815;Inherit;False;176;139;Comment;1;425;设置;1,1,1,1;0;0 Node;AmplifyShaderEditor.VertexColorNode, AmplifyShaderEditor, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null;533;1400.1,-3575.899;Inherit;False;0;5;COLOR;0;FLOAT;1;FLOAT;2;FLOAT;3;FLOAT;4 Node;AmplifyShaderEditor.SimpleAddOpNode, AmplifyShaderEditor, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null;570;1320.638,-3827.063;Inherit;False;2;2;0;FLOAT4;0,0,0,0;False;1;FLOAT3;0,0,0;False;1;FLOAT4;0 Node;AmplifyShaderEditor.TexturePropertyNode, AmplifyShaderEditor, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null;565;1163.531,-4023.782;Inherit;True;Global;_CameraColorAttachmentA;_CameraColorAttachmentA;0;0;Create;True;0;0;0;True;0;False;None;;False;white;Auto;Texture2D;False;-1;0;2;SAMPLER2D;0;SAMPLERSTATE;1 Node;AmplifyShaderEditor.RegisterLocalVarNode, AmplifyShaderEditor, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null;412;2284.688,-4046.036;Inherit;False;custom1z;-1;True;1;0;FLOAT;0;False;1;FLOAT;0 Node;AmplifyShaderEditor.RangedFloatNode, AmplifyShaderEditor, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null;425;2526.55,-3996.702;Inherit;False;Property;_CullingMode;剔除模式;1;2;[Header];[Enum];Create;False;1;Setting;0;1;UnityEngine.Rendering.CullMode;True;0;False;0;2;0;0;0;1;FLOAT;0 Node;AmplifyShaderEditor.RegisterLocalVarNode, AmplifyShaderEditor, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null;420;2284.688,-3969.036;Inherit;False;custom1w;-1;True;1;0;FLOAT;0;False;1;FLOAT;0 Node;AmplifyShaderEditor.RegisterLocalVarNode, AmplifyShaderEditor, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null;410;2283.688,-4196.036;Inherit;False;custom1x;-1;True;1;0;FLOAT;0;False;1;FLOAT;0 Node;AmplifyShaderEditor.SimpleMultiplyOpNode, AmplifyShaderEditor, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null;578;1580.374,-3466.606;Inherit;True;2;2;0;FLOAT;0;False;1;FLOAT;0;False;1;FLOAT;0 Node;AmplifyShaderEditor.SamplerNode, AmplifyShaderEditor, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null;566;1457.357,-4023.962;Inherit;True;Property;_TextureSample0;Texture Sample 0;57;0;Create;True;0;0;0;False;0;False;-1;None;None;True;0;False;white;Auto;False;Object;-1;Auto;Texture2D;False;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;6;COLOR;0;FLOAT;1;FLOAT;2;FLOAT;3;FLOAT;4;FLOAT3;5 Node;AmplifyShaderEditor.TemplateMultiPassMasterNode, AmplifyShaderEditor, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null;323;5121.638,1378.331;Float;False;False;-1;3;UnityEditor.ShaderGraphUnlitGUI;0;1;New Amplify Shader;2992e84f91cbeb14eab234972e07ea9d;True;ShadowCaster;0;2;ShadowCaster;0;False;False;False;False;False;False;False;False;False;False;False;False;True;0;False;;False;True;0;False;;False;False;False;False;False;False;False;False;False;True;False;0;False;;255;False;;255;False;;0;False;;0;False;;0;False;;0;False;;0;False;;0;False;;0;False;;0;False;;False;False;False;False;True;4;RenderPipeline=UniversalPipeline;RenderType=Opaque=RenderType;Queue=Geometry=Queue=0;UniversalMaterialType=Unlit;True;5;True;12;all;0;False;False;False;False;False;False;False;False;False;False;False;False;True;0;False;;False;False;False;True;False;False;False;False;0;False;;False;False;False;False;False;False;False;False;False;True;1;False;;True;3;False;;False;True;1;LightMode=ShadowCaster;False;False;0;;0;0;Standard;0;False;0 Node;AmplifyShaderEditor.TemplateMultiPassMasterNode, AmplifyShaderEditor, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null;324;5121.638,1378.331;Float;False;False;-1;3;UnityEditor.ShaderGraphUnlitGUI;0;1;New Amplify Shader;2992e84f91cbeb14eab234972e07ea9d;True;DepthOnly;0;3;DepthOnly;0;False;False;False;False;False;False;False;False;False;False;False;False;True;0;False;;False;True;0;False;;False;False;False;False;False;False;False;False;False;True;False;0;False;;255;False;;255;False;;0;False;;0;False;;0;False;;0;False;;0;False;;0;False;;0;False;;0;False;;False;False;False;False;True;4;RenderPipeline=UniversalPipeline;RenderType=Opaque=RenderType;Queue=Geometry=Queue=0;UniversalMaterialType=Unlit;True;5;True;12;all;0;False;False;False;False;False;False;False;False;False;False;False;False;True;0;False;;False;False;False;True;True;False;False;False;0;False;;False;False;False;False;False;False;False;False;False;True;1;False;;False;False;True;1;LightMode=DepthOnly;False;False;0;;0;0;Standard;0;False;0 Node;AmplifyShaderEditor.TemplateMultiPassMasterNode, AmplifyShaderEditor, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null;325;5121.638,1378.331;Float;False;False;-1;3;UnityEditor.ShaderGraphUnlitGUI;0;1;New Amplify Shader;2992e84f91cbeb14eab234972e07ea9d;True;Meta;0;4;Meta;0;False;False;False;False;False;False;False;False;False;False;False;False;True;0;False;;False;True;0;False;;False;False;False;False;False;False;False;False;False;True;False;0;False;;255;False;;255;False;;0;False;;0;False;;0;False;;0;False;;0;False;;0;False;;0;False;;0;False;;False;False;False;False;True;4;RenderPipeline=UniversalPipeline;RenderType=Opaque=RenderType;Queue=Geometry=Queue=0;UniversalMaterialType=Unlit;True;5;True;12;all;0;False;False;False;False;False;False;False;False;False;False;False;False;False;False;True;2;False;;False;False;False;False;False;False;False;False;False;False;False;False;False;False;True;1;LightMode=Meta;False;False;0;;0;0;Standard;0;False;0 Node;AmplifyShaderEditor.TemplateMultiPassMasterNode, AmplifyShaderEditor, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null;326;5121.638,1378.331;Float;False;False;-1;3;UnityEditor.ShaderGraphUnlitGUI;0;1;New Amplify Shader;2992e84f91cbeb14eab234972e07ea9d;True;Universal2D;0;5;Universal2D;0;False;False;False;False;False;False;False;False;False;False;False;False;True;0;False;;False;True;0;False;;False;False;False;False;False;False;False;False;False;True;False;0;False;;255;False;;255;False;;0;False;;0;False;;0;False;;0;False;;0;False;;0;False;;0;False;;0;False;;False;False;False;False;True;4;RenderPipeline=UniversalPipeline;RenderType=Opaque=RenderType;Queue=Geometry=Queue=0;UniversalMaterialType=Unlit;True;5;True;12;all;0;False;True;1;1;False;;0;False;;0;1;False;;0;False;;False;False;False;False;False;False;False;False;False;False;False;False;False;False;True;True;True;True;True;0;False;;False;False;False;False;False;False;False;True;False;0;False;;255;False;;255;False;;0;False;;0;False;;0;False;;0;False;;0;False;;0;False;;0;False;;0;False;;False;True;1;False;;True;3;False;;True;True;0;False;;0;False;;True;1;LightMode=Universal2D;False;False;0;;0;0;Standard;0;False;0 Node;AmplifyShaderEditor.TemplateMultiPassMasterNode, AmplifyShaderEditor, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null;327;5121.638,1378.331;Float;False;False;-1;3;UnityEditor.ShaderGraphUnlitGUI;0;1;New Amplify Shader;2992e84f91cbeb14eab234972e07ea9d;True;SceneSelectionPass;0;6;SceneSelectionPass;0;False;False;False;False;False;False;False;False;False;False;False;False;True;0;False;;False;True;0;False;;False;False;False;False;False;False;False;False;False;True;False;0;False;;255;False;;255;False;;0;False;;0;False;;0;False;;0;False;;0;False;;0;False;;0;False;;0;False;;False;False;False;False;True;4;RenderPipeline=UniversalPipeline;RenderType=Opaque=RenderType;Queue=Geometry=Queue=0;UniversalMaterialType=Unlit;True;5;True;12;all;0;False;False;False;False;False;False;False;False;False;False;False;False;True;0;False;;False;True;2;False;;False;False;False;False;False;False;False;False;False;False;False;False;False;False;True;1;LightMode=SceneSelectionPass;False;False;0;;0;0;Standard;0;False;0 Node;AmplifyShaderEditor.TemplateMultiPassMasterNode, AmplifyShaderEditor, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null;328;5121.638,1378.331;Float;False;False;-1;3;UnityEditor.ShaderGraphUnlitGUI;0;1;New Amplify Shader;2992e84f91cbeb14eab234972e07ea9d;True;ScenePickingPass;0;7;ScenePickingPass;0;False;False;False;False;False;False;False;False;False;False;False;False;True;0;False;;False;True;0;False;;False;False;False;False;False;False;False;False;False;True;False;0;False;;255;False;;255;False;;0;False;;0;False;;0;False;;0;False;;0;False;;0;False;;0;False;;0;False;;False;False;False;False;True;4;RenderPipeline=UniversalPipeline;RenderType=Opaque=RenderType;Queue=Geometry=Queue=0;UniversalMaterialType=Unlit;True;5;True;12;all;0;False;False;False;False;False;False;False;False;False;False;False;False;True;0;False;;False;False;False;False;False;False;False;False;False;False;False;False;False;False;False;False;True;1;LightMode=Picking;False;False;0;;0;0;Standard;0;False;0 Node;AmplifyShaderEditor.TemplateMultiPassMasterNode, AmplifyShaderEditor, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null;329;5121.638,1378.331;Float;False;False;-1;3;UnityEditor.ShaderGraphUnlitGUI;0;1;New Amplify Shader;2992e84f91cbeb14eab234972e07ea9d;True;DepthNormals;0;8;DepthNormals;0;False;False;False;False;False;False;False;False;False;False;False;False;True;0;False;;False;True;0;False;;False;False;False;False;False;False;False;False;False;True;False;0;False;;255;False;;255;False;;0;False;;0;False;;0;False;;0;False;;0;False;;0;False;;0;False;;0;False;;False;False;False;False;True;4;RenderPipeline=UniversalPipeline;RenderType=Opaque=RenderType;Queue=Geometry=Queue=0;UniversalMaterialType=Unlit;True;5;True;12;all;0;False;False;False;False;False;False;False;False;False;False;False;False;False;False;False;False;False;False;False;False;False;False;False;False;False;False;True;1;False;;True;3;False;;False;True;1;LightMode=DepthNormalsOnly;False;False;0;;0;0;Standard;0;False;0 Node;AmplifyShaderEditor.TemplateMultiPassMasterNode, AmplifyShaderEditor, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null;330;5121.638,1378.331;Float;False;False;-1;3;UnityEditor.ShaderGraphUnlitGUI;0;1;New Amplify Shader;2992e84f91cbeb14eab234972e07ea9d;True;DepthNormalsOnly;0;9;DepthNormalsOnly;0;False;False;False;False;False;False;False;False;False;False;False;False;True;0;False;;False;True;0;False;;False;False;False;False;False;False;False;False;False;True;False;0;False;;255;False;;255;False;;0;False;;0;False;;0;False;;0;False;;0;False;;0;False;;0;False;;0;False;;False;False;False;False;True;4;RenderPipeline=UniversalPipeline;RenderType=Opaque=RenderType;Queue=Geometry=Queue=0;UniversalMaterialType=Unlit;True;5;True;12;all;0;False;False;False;False;False;False;False;False;False;False;False;False;False;False;False;False;False;False;False;False;False;False;False;False;False;False;True;1;False;;True;3;False;;False;True;1;LightMode=DepthNormalsOnly;False;True;9;d3d11;metal;vulkan;xboxone;xboxseries;playstation;ps4;ps5;switch;0;;0;0;Standard;0;False;0 Node;AmplifyShaderEditor.TemplateMultiPassMasterNode, AmplifyShaderEditor, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null;321;1483.446,-2063.247;Float;False;False;-1;3;UnityEditor.ShaderGraphUnlitGUI;0;1;New Amplify Shader;2992e84f91cbeb14eab234972e07ea9d;True;ExtraPrePass;0;0;ExtraPrePass;5;False;False;False;False;False;False;False;False;False;False;False;False;True;0;False;;False;True;0;False;;False;False;False;False;False;False;False;False;False;True;False;0;False;;255;False;;255;False;;0;False;;0;False;;0;False;;0;False;;0;False;;0;False;;0;False;;0;False;;False;False;False;False;True;4;RenderPipeline=UniversalPipeline;RenderType=Opaque=RenderType;Queue=Geometry=Queue=0;UniversalMaterialType=Unlit;True;5;True;12;all;0;False;True;1;1;False;;0;False;;0;1;False;;0;False;;False;False;False;False;False;False;False;False;False;False;False;False;True;0;False;;False;True;True;True;True;True;0;False;;False;False;False;False;False;False;False;True;False;0;False;;255;False;;255;False;;0;False;;0;False;;0;False;;0;False;;0;False;;0;False;;0;False;;0;False;;False;True;1;False;;True;3;False;;True;True;0;False;;0;False;;True;0;False;False;0;;0;0;Standard;0;False;0 Node;AmplifyShaderEditor.TemplateMultiPassMasterNode, AmplifyShaderEditor, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null;322;1807.883,-4022.766;Float;False;True;-1;3;;0;13;Soung/Post/ScreenFX_HEAT;2992e84f91cbeb14eab234972e07ea9d;True;Forward;0;1;Forward;9;False;False;False;False;False;False;False;False;False;False;False;False;True;0;False;;True;True;0;True;_CullingMode;False;False;False;False;False;False;False;False;False;True;False;0;False;;255;False;;255;False;;0;False;;0;False;;0;False;;0;False;;0;False;;0;False;;0;False;;0;False;;False;False;False;False;True;4;RenderPipeline=UniversalPipeline;RenderType=Transparent=RenderType;Queue=Transparent=Queue=0;UniversalMaterialType=Unlit;True;5;True;12;all;0;True;True;2;5;False;;10;False;;0;1;False;;10;False;;False;False;False;False;False;False;False;False;False;False;False;False;False;False;True;True;True;True;True;0;False;;False;False;False;False;False;False;False;True;False;0;False;;255;False;;255;False;;0;False;;0;False;;0;False;;0;False;;0;False;;0;False;;0;False;;0;False;;True;True;2;False;;True;3;False;;True;False;0;False;;0;False;;True;1;LightMode=Grab;False;False;0;;0;0;Standard;27;Surface;1;638786581663575459; Keep Alpha;0;0; Blend;0;0;Two Sided;1;0;Alpha Clipping;0;638786581677440187; Use Shadow Threshold;0;0;Forward Only;0;0;Cast Shadows;0;638786581681993037;Receive Shadows;0;638786581685379101;Receive SSAO;0;638977575662046066;GPU Instancing;1;638977575664855854;LOD CrossFade;0;638786581693938962;Built-in Fog;0;638786581691455043;Meta Pass;0;0;Extra Pre Pass;0;0;Tessellation;0;0; Phong;0;0; Strength;0.5,False,;0; Type;0;0; Tess;16,False,;0; Min;10,False,;0; Max;25,False,;0; Edge Length;16,False,;0; Max Displacement;25,False,;0;Write Depth;0;0; Early Z;0;0;Vertex Position;1;0;0;10;False;True;False;False;False;False;False;False;False;False;False;;False;0 WireConnection;574;0;580;0 WireConnection;574;1;581;0 WireConnection;293;0;292;0 WireConnection;293;1;574;0 WireConnection;295;0;293;0 WireConnection;297;0;295;0 WireConnection;297;1;295;0 WireConnection;299;0;297;0 WireConnection;300;0;297;0 WireConnection;298;0;299;0 WireConnection;298;1;300;0 WireConnection;584;0;298;0 WireConnection;435;0;438;0 WireConnection;585;0;298;0 WireConnection;585;1;584;0 WireConnection;585;2;586;0 WireConnection;434;0;435;0 WireConnection;301;0;585;0 WireConnection;301;1;305;0 WireConnection;409;0;408;2 WireConnection;382;0;381;1 WireConnection;382;1;381;2 WireConnection;437;0;567;0 WireConnection;437;2;434;0 WireConnection;302;0;301;0 WireConnection;383;1;11;0 WireConnection;383;2;382;0 WireConnection;383;3;381;3 WireConnection;383;4;381;4 WireConnection;303;0;302;0 WireConnection;303;1;304;0 WireConnection;203;1;437;0 WireConnection;555;0;15;0 WireConnection;555;1;556;0 WireConnection;555;2;557;0 WireConnection;391;0;389;0 WireConnection;391;1;390;0 WireConnection;387;0;11;0 WireConnection;387;1;383;0 WireConnection;387;2;388;0 WireConnection;307;0;203;1 WireConnection;307;1;203;4 WireConnection;307;2;306;0 WireConnection;582;0;303;0 WireConnection;13;0;555;0 WireConnection;13;1;380;0 WireConnection;10;0;387;0 WireConnection;10;2;391;0 WireConnection;542;0;307;0 WireConnection;340;0;582;0 WireConnection;9;1;10;0 WireConnection;9;5;13;0 WireConnection;552;0;551;0 WireConnection;552;1;550;0 WireConnection;552;2;553;0 WireConnection;570;0;569;0 WireConnection;570;1;9;0 WireConnection;412;0;408;3 WireConnection;420;0;408;4 WireConnection;410;0;408;1 WireConnection;578;0;533;4 WireConnection;578;1;552;0 WireConnection;566;0;565;0 WireConnection;566;1;570;0 WireConnection;322;2;566;0 WireConnection;322;3;578;0 ASEEND*/ //CHKSM=61CE978378EF7BF00C2BDD77190E171BE8310C91