| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563156415651566156715681569157015711572157315741575157615771578157915801581158215831584158515861587158815891590159115921593159415951596159715981599160016011602160316041605160616071608160916101611161216131614161516161617161816191620162116221623162416251626162716281629163016311632163316341635163616371638163916401641164216431644164516461647164816491650165116521653165416551656165716581659166016611662166316641665166616671668166916701671167216731674167516761677167816791680168116821683168416851686168716881689169016911692169316941695169616971698169917001701170217031704170517061707170817091710171117121713171417151716171717181719172017211722172317241725172617271728172917301731173217331734173517361737173817391740174117421743174417451746174717481749175017511752175317541755175617571758175917601761176217631764176517661767176817691770177117721773177417751776177717781779178017811782178317841785178617871788178917901791179217931794179517961797179817991800180118021803180418051806180718081809181018111812181318141815181618171818181918201821182218231824182518261827182818291830183118321833183418351836183718381839184018411842184318441845184618471848184918501851185218531854185518561857185818591860186118621863186418651866186718681869187018711872187318741875187618771878187918801881188218831884188518861887188818891890189118921893189418951896189718981899190019011902190319041905190619071908190919101911191219131914191519161917191819191920192119221923192419251926192719281929193019311932193319341935193619371938193919401941194219431944194519461947194819491950195119521953195419551956195719581959196019611962196319641965196619671968196919701971197219731974197519761977197819791980198119821983198419851986198719881989199019911992199319941995199619971998199920002001200220032004200520062007200820092010201120122013201420152016201720182019202020212022202320242025202620272028202920302031203220332034203520362037203820392040204120422043204420452046204720482049205020512052205320542055205620572058205920602061206220632064206520662067206820692070207120722073207420752076207720782079208020812082208320842085208620872088208920902091209220932094209520962097209820992100210121022103210421052106210721082109211021112112211321142115211621172118211921202121212221232124212521262127212821292130213121322133213421352136213721382139214021412142214321442145214621472148214921502151215221532154215521562157215821592160216121622163216421652166216721682169217021712172217321742175217621772178217921802181218221832184218521862187218821892190219121922193219421952196219721982199220022012202220322042205220622072208220922102211221222132214221522162217221822192220222122222223222422252226222722282229223022312232223322342235223622372238223922402241224222432244224522462247224822492250225122522253225422552256225722582259226022612262226322642265226622672268226922702271227222732274227522762277227822792280228122822283228422852286228722882289229022912292229322942295229622972298229923002301230223032304230523062307230823092310231123122313231423152316231723182319232023212322232323242325232623272328232923302331233223332334233523362337233823392340234123422343234423452346 | // Made with Amplify Shader Editor// Available at the Unity Asset Store - http://u3d.as/y3X Shader "LT/DissolveSample"{	Properties	{		[HideInInspector] _EmissionColor("Emission Color", Color) = (1,1,1,1)		[HideInInspector] _AlphaCutoff("Alpha Cutoff ", Range(0, 1)) = 0.5		[ASEBegin][HDR]_Color("Color", Color) = (1,1,1,1)		_ColorPower("ColorPower", Range( 0 , 20)) = 1		_OpacityPower("OpacityPower", Float) = 1		_Ramp("Ramp", 2D) = "white" {}		_RampDirection("RampDirection ", Range( 0 , 1)) = 0		_RampPower("RampPower", Range( 0.2 , 8)) = 1		_MainTex("MainTex", 2D) = "white" {}		_MainTexChannel("不透明通道选择", Vector) = (1,0,0,0)		_MainTexRotation("贴图旋转", Range( 0 , 1)) = 0		_DissolveSwitch("溶解开关", Range( 0 , 1)) = 0		_DissolveTex("DissolveTex", 2D) = "white" {}		_DissolvePower("DissolvePower", Float) = 2		[Toggle(_DISSOLVETEXFLIP_ON)] _DissolveTexFlip("DissolveTexFlip", Float) = 0		_DissolveExpReversed("DissolveExpReversed", Float) = 2		_CustomDataSwitch("数据流控制UVMove", Range( 0 , 1)) = 0		[ASEEnd]_MaskTex("MaskTex", 2D) = "white" {}		[HideInInspector] _texcoord( "", 2D ) = "white" {}		[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) = "" {}		//_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	}	SubShader	{		LOD 0				Tags { "RenderPipeline"="UniversalPipeline" "RenderType"="Opaque" "Queue"="Transparent" }				Cull Off		AlphaToMask Off				HLSLINCLUDE		#pragma target 3.0		#pragma prefer_hlslcc gles		#pragma only_renderers d3d9 d3d11 glcore gles gles3 metal vulkan nomrt 		#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"="UniversalForward"  }						Blend SrcAlpha OneMinusSrcAlpha, One OneMinusSrcAlpha			ZWrite Off			ZTest LEqual			Offset -1 , 0			ColorMask RGBA						HLSLPROGRAM						#pragma multi_compile_instancing			#define _RECEIVE_SHADOWS_OFF 1			#define ASE_SRP_VERSION 999999						#pragma multi_compile _ LIGHTMAP_ON			#pragma multi_compile _ DIRLIGHTMAP_COMBINED			#pragma shader_feature _ _SAMPLE_GI			#pragma multi_compile _ _DBUFFER_MRT1 _DBUFFER_MRT2 _DBUFFER_MRT3			#pragma multi_compile _ DEBUG_DISPLAY			#define SHADERPASS SHADERPASS_UNLIT			#pragma vertex vert			#pragma fragment frag			#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.core/ShaderLibrary/TextureStack.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/Input.hlsl"			#include "Packages/com.unity.render-pipelines.universal/ShaderLibrary/SurfaceData.hlsl"			#define ASE_NEEDS_FRAG_COLOR			#pragma shader_feature_local _DISSOLVETEXFLIP_ON			struct VertexInput			{				float4 vertex : POSITION;				float3 ase_normal : NORMAL;				float4 ase_color : COLOR;				float4 ase_texcoord : TEXCOORD0;				float4 ase_texcoord1 : TEXCOORD1;				UNITY_VERTEX_INPUT_INSTANCE_ID			};			struct VertexOutput			{				float4 clipPos : SV_POSITION;				#if defined(ASE_NEEDS_FRAG_WORLD_POSITION)				float3 worldPos : TEXCOORD0;				#endif				#if defined(REQUIRES_VERTEX_SHADOW_COORD_INTERPOLATOR) && defined(ASE_NEEDS_FRAG_SHADOWCOORDS)				float4 shadowCoord : TEXCOORD1;				#endif				#ifdef ASE_FOG				float fogFactor : TEXCOORD2;				#endif				float4 ase_color : COLOR;				float4 ase_texcoord3 : TEXCOORD3;				float4 ase_texcoord4 : TEXCOORD4;				UNITY_VERTEX_INPUT_INSTANCE_ID				UNITY_VERTEX_OUTPUT_STEREO			};			CBUFFER_START(UnityPerMaterial)			float4 _MainTex_ST;			float4 _MainTexChannel;			float4 _DissolveTex_ST;			float4 _MaskTex_ST;			float4 _Color;			float _ColorPower;			float _MainTexRotation;			float _CustomDataSwitch;			float _DissolvePower;			float _DissolveExpReversed;			float _DissolveSwitch;			float _OpacityPower;			float _RampDirection;			float _RampPower;			#ifdef TESSELLATION_ON				float _TessPhongStrength;				float _TessValue;				float _TessMin;				float _TessMax;				float _TessEdgeLength;				float _TessMaxDisp;			#endif			CBUFFER_END			sampler2D _Ramp;			sampler2D _MainTex;			sampler2D _DissolveTex;			sampler2D _MaskTex;									VertexOutput VertexFunction ( VertexInput v  )			{				VertexOutput o = (VertexOutput)0;				UNITY_SETUP_INSTANCE_ID(v);				UNITY_TRANSFER_INSTANCE_ID(v, o);				UNITY_INITIALIZE_VERTEX_OUTPUT_STEREO(o);				o.ase_color = v.ase_color;				o.ase_texcoord3.xy = v.ase_texcoord.xy;				o.ase_texcoord4 = v.ase_texcoord1;								//setting value to unused interpolator channels and avoid initialization warnings				o.ase_texcoord3.zw = 0;				#ifdef ASE_ABSOLUTE_VERTEX_POS					float3 defaultVertexValue = v.vertex.xyz;				#else					float3 defaultVertexValue = float3(0, 0, 0);				#endif				float3 vertexValue = defaultVertexValue;				#ifdef ASE_ABSOLUTE_VERTEX_POS					v.vertex.xyz = vertexValue;				#else					v.vertex.xyz += vertexValue;				#endif				v.ase_normal = v.ase_normal;				float3 positionWS = TransformObjectToWorld( v.vertex.xyz );				float4 positionCS = TransformWorldToHClip( positionWS );				#if defined(ASE_NEEDS_FRAG_WORLD_POSITION)				o.worldPos = positionWS;				#endif				#if defined(REQUIRES_VERTEX_SHADOW_COORD_INTERPOLATOR) && defined(ASE_NEEDS_FRAG_SHADOWCOORDS)				VertexPositionInputs vertexInput = (VertexPositionInputs)0;				vertexInput.positionWS = positionWS;				vertexInput.positionCS = positionCS;				o.shadowCoord = GetShadowCoord( vertexInput );				#endif				#ifdef ASE_FOG				o.fogFactor = ComputeFogFactor( positionCS.z );				#endif				o.clipPos = positionCS;				return o;			}			#if defined(TESSELLATION_ON)			struct VertexControl			{				float4 vertex : INTERNALTESSPOS;				float3 ase_normal : NORMAL;				float4 ase_color : COLOR;				float4 ase_texcoord : TEXCOORD0;				float4 ase_texcoord1 : TEXCOORD1;				UNITY_VERTEX_INPUT_INSTANCE_ID			};			struct TessellationFactors			{				float edge[3] : SV_TessFactor;				float inside : SV_InsideTessFactor;			};			VertexControl vert ( VertexInput v )			{				VertexControl o;				UNITY_SETUP_INSTANCE_ID(v);				UNITY_TRANSFER_INSTANCE_ID(v, o);				o.vertex = v.vertex;				o.ase_normal = v.ase_normal;				o.ase_color = v.ase_color;				o.ase_texcoord = v.ase_texcoord;				o.ase_texcoord1 = v.ase_texcoord1;				return o;			}			TessellationFactors TessellationFunction (InputPatch<VertexControl,3> v)			{				TessellationFactors o;				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(v[0].vertex, v[1].vertex, v[2].vertex, tessValue, tessMin, tessMax, GetObjectToWorldMatrix(), _WorldSpaceCameraPos );				#elif defined(ASE_LENGTH_TESSELLATION)				tf = EdgeLengthBasedTess(v[0].vertex, v[1].vertex, v[2].vertex, edgeLength, GetObjectToWorldMatrix(), _WorldSpaceCameraPos, _ScreenParams );				#elif defined(ASE_LENGTH_CULL_TESSELLATION)				tf = EdgeLengthBasedTessCull(v[0].vertex, v[1].vertex, v[2].vertex, edgeLength, tessMaxDisp, GetObjectToWorldMatrix(), _WorldSpaceCameraPos, _ScreenParams, unity_CameraWorldClipPlanes );				#endif				o.edge[0] = tf.x; o.edge[1] = tf.y; o.edge[2] = tf.z; o.inside = tf.w;				return o;			}			[domain("tri")]			[partitioning("fractional_odd")]			[outputtopology("triangle_cw")]			[patchconstantfunc("TessellationFunction")]			[outputcontrolpoints(3)]			VertexControl HullFunction(InputPatch<VertexControl, 3> patch, uint id : SV_OutputControlPointID)			{			   return patch[id];			}			[domain("tri")]			VertexOutput DomainFunction(TessellationFactors factors, OutputPatch<VertexControl, 3> patch, float3 bary : SV_DomainLocation)			{				VertexInput o = (VertexInput) 0;				o.vertex = patch[0].vertex * bary.x + patch[1].vertex * bary.y + patch[2].vertex * bary.z;				o.ase_normal = patch[0].ase_normal * bary.x + patch[1].ase_normal * bary.y + patch[2].ase_normal * bary.z;				o.ase_color = patch[0].ase_color * bary.x + patch[1].ase_color * bary.y + patch[2].ase_color * bary.z;				o.ase_texcoord = patch[0].ase_texcoord * bary.x + patch[1].ase_texcoord * bary.y + patch[2].ase_texcoord * bary.z;				o.ase_texcoord1 = patch[0].ase_texcoord1 * bary.x + patch[1].ase_texcoord1 * bary.y + patch[2].ase_texcoord1 * bary.z;				#if defined(ASE_PHONG_TESSELLATION)				float3 pp[3];				for (int i = 0; i < 3; ++i)					pp[i] = o.vertex.xyz - patch[i].ase_normal * (dot(o.vertex.xyz, patch[i].ase_normal) - dot(patch[i].vertex.xyz, patch[i].ase_normal));				float phongStrength = _TessPhongStrength;				o.vertex.xyz = phongStrength * (pp[0]*bary.x + pp[1]*bary.y + pp[2]*bary.z) + (1.0f-phongStrength) * o.vertex.xyz;				#endif				UNITY_TRANSFER_INSTANCE_ID(patch[0], o);				return VertexFunction(o);			}			#else			VertexOutput vert ( VertexInput v )			{				return VertexFunction( v );			}			#endif			half4 frag ( VertexOutput IN  ) : SV_Target			{				UNITY_SETUP_INSTANCE_ID( IN );				UNITY_SETUP_STEREO_EYE_INDEX_POST_VERTEX( IN );				#if defined(ASE_NEEDS_FRAG_WORLD_POSITION)				float3 WorldPosition = IN.worldPos;				#endif				float4 ShadowCoords = float4( 0, 0, 0, 0 );				#if defined(ASE_NEEDS_FRAG_SHADOWCOORDS)					#if defined(REQUIRES_VERTEX_SHADOW_COORD_INTERPOLATOR)						ShadowCoords = IN.shadowCoord;					#elif defined(MAIN_LIGHT_CALCULATE_SHADOWS)						ShadowCoords = TransformWorldToShadowCoord( WorldPosition );					#endif				#endif				float cos127 = cos( (0.0 + (_MainTexRotation - 0.0) * (( 2.0 * PI ) - 0.0) / (1.0 - 0.0)) );				float sin127 = sin( (0.0 + (_MainTexRotation - 0.0) * (( 2.0 * PI ) - 0.0) / (1.0 - 0.0)) );				float2 rotator127 = mul( IN.ase_texcoord3.xy - float2( 0.5,0.5 ) , float2x2( cos127 , -sin127 , sin127 , cos127 )) + float2( 0.5,0.5 );				float4 texCoord151 = IN.ase_texcoord4;				texCoord151.xy = IN.ase_texcoord4.xy * float2( 1,1 ) + float2( 0,0 );				float2 appendResult154 = (float2(texCoord151.z , texCoord151.w));				float2 uv_MainTex = IN.ase_texcoord3.xy * _MainTex_ST.xy + _MainTex_ST.zw;				float2 lerpResult157 = lerp( rotator127 , ( appendResult154 + uv_MainTex ) , round( _CustomDataSwitch ));				float4 tex2DNode33 = tex2D( _MainTex, lerpResult157 );				float4 break92 = ( tex2DNode33 * _MainTexChannel );				float clampResult94 = clamp( ( break92.r + break92.g + break92.b + break92.a ) , 0.0 , 1.0 );				float2 uv_DissolveTex = IN.ase_texcoord3.xy * _DissolveTex_ST.xy + _DissolveTex_ST.zw;				float4 texCoord145 = IN.ase_texcoord4;				texCoord145.xy = IN.ase_texcoord4.xy * float2( 1,1 ) + float2( 0,0 );				float2 appendResult143 = (float2(texCoord145.z , texCoord145.w));				float4 tex2DNode66 = tex2D( _DissolveTex, ( uv_DissolveTex + appendResult143 ) );				#ifdef _DISSOLVETEXFLIP_ON				float staticSwitch110 = ( 1.0 - tex2DNode66.r );				#else				float staticSwitch110 = tex2DNode66.r;				#endif				float4 texCoord111 = IN.ase_texcoord4;				texCoord111.xy = IN.ase_texcoord4.xy * float2( 1,1 ) + float2( 0,0 );				float clampResult120 = clamp( ( 1.0 - pow( ( 1.0 - pow( staticSwitch110 , _DissolvePower ) ) , (1.0 + (texCoord111.x - 0.0) * (_DissolveExpReversed - 1.0) / (1.0 - 0.0)) ) ) , 0.0 , 1.0 );				float4 texCoord122 = IN.ase_texcoord4;				texCoord122.xy = IN.ase_texcoord4.xy * float2( 1,1 ) + float2( 0,0 );				float clampResult124 = clamp( ( clampResult120 + (-1.0 + (texCoord122.x - 0.0) * (1.0 - -1.0) / (1.0 - 0.0)) ) , 0.0 , 1.0 );				float lerpResult147 = lerp( clampResult124 , 0.0 , round( _DissolveSwitch ));				float clampResult96 = clamp( ( clampResult94 - lerpResult147 ) , 0.0 , 1.0 );				float2 uv_MaskTex = IN.ase_texcoord3.xy * _MaskTex_ST.xy + _MaskTex_ST.zw;				float clampResult100 = clamp( ( clampResult96 * IN.ase_color.a * _OpacityPower * tex2D( _MaskTex, uv_MaskTex ).r ) , 0.0 , 1.0 );				float lerpResult34 = lerp( clampResult94 , clampResult100 , _RampDirection);				float2 appendResult44 = (float2(( 1.0 - pow( ( 1.0 - lerpResult34 ) , _RampPower ) ) , 0.0));								float3 BakedAlbedo = 0;				float3 BakedEmission = 0;				float3 Color = ( ( IN.ase_color * _ColorPower ) * ( tex2D( _Ramp, appendResult44 ) * _Color * tex2DNode33 ) ).rgb;				float Alpha = clampResult100;				float AlphaClipThreshold = 0.5;				float AlphaClipThresholdShadow = 0.5;				#ifdef _ALPHATEST_ON					clip( Alpha - AlphaClipThreshold );				#endif				#if defined(_DBUFFER)					ApplyDecalToBaseColor(IN.clipPos, Color);				#endif				#if defined(_ALPHAPREMULTIPLY_ON)				Color *= Alpha;				#endif				#ifdef LOD_FADE_CROSSFADE					LODDitheringTransition( IN.clipPos.xyz, unity_LODFade.x );				#endif				#ifdef ASE_FOG					Color = MixFog( Color, IN.fogFactor );				#endif				return half4( Color, Alpha );			}			ENDHLSL		}				Pass		{						Name "DepthOnly"			Tags { "LightMode"="DepthOnly" }			ZWrite On			ColorMask 0			AlphaToMask Off			HLSLPROGRAM						#pragma multi_compile_instancing			#define _RECEIVE_SHADOWS_OFF 1			#define ASE_SRP_VERSION 999999						#pragma vertex vert			#pragma fragment frag			#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/ShaderGraphFunctions.hlsl"			#include "Packages/com.unity.render-pipelines.core/ShaderLibrary/Color.hlsl"			#pragma shader_feature_local _DISSOLVETEXFLIP_ON			struct VertexInput			{				float4 vertex : POSITION;				float3 ase_normal : NORMAL;				float4 ase_texcoord : TEXCOORD0;				float4 ase_texcoord1 : TEXCOORD1;				float4 ase_color : COLOR;				UNITY_VERTEX_INPUT_INSTANCE_ID			};			struct VertexOutput			{				float4 clipPos : SV_POSITION;				#if defined(ASE_NEEDS_FRAG_WORLD_POSITION)				float3 worldPos : TEXCOORD0;				#endif				#if defined(REQUIRES_VERTEX_SHADOW_COORD_INTERPOLATOR) && defined(ASE_NEEDS_FRAG_SHADOWCOORDS)				float4 shadowCoord : TEXCOORD1;				#endif				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 _MainTex_ST;			float4 _MainTexChannel;			float4 _DissolveTex_ST;			float4 _MaskTex_ST;			float4 _Color;			float _ColorPower;			float _MainTexRotation;			float _CustomDataSwitch;			float _DissolvePower;			float _DissolveExpReversed;			float _DissolveSwitch;			float _OpacityPower;			float _RampDirection;			float _RampPower;			#ifdef TESSELLATION_ON				float _TessPhongStrength;				float _TessValue;				float _TessMin;				float _TessMax;				float _TessEdgeLength;				float _TessMaxDisp;			#endif			CBUFFER_END			sampler2D _MainTex;			sampler2D _DissolveTex;			sampler2D _MaskTex;						VertexOutput VertexFunction( VertexInput v  )			{				VertexOutput o = (VertexOutput)0;				UNITY_SETUP_INSTANCE_ID(v);				UNITY_TRANSFER_INSTANCE_ID(v, o);				UNITY_INITIALIZE_VERTEX_OUTPUT_STEREO(o);				o.ase_texcoord2.xy = v.ase_texcoord.xy;				o.ase_texcoord3 = v.ase_texcoord1;				o.ase_color = v.ase_color;								//setting value to unused interpolator channels and avoid initialization warnings				o.ase_texcoord2.zw = 0;				#ifdef ASE_ABSOLUTE_VERTEX_POS					float3 defaultVertexValue = v.vertex.xyz;				#else					float3 defaultVertexValue = float3(0, 0, 0);				#endif				float3 vertexValue = defaultVertexValue;				#ifdef ASE_ABSOLUTE_VERTEX_POS					v.vertex.xyz = vertexValue;				#else					v.vertex.xyz += vertexValue;				#endif				v.ase_normal = v.ase_normal;				float3 positionWS = TransformObjectToWorld( v.vertex.xyz );				#if defined(ASE_NEEDS_FRAG_WORLD_POSITION)				o.worldPos = positionWS;				#endif				o.clipPos = TransformWorldToHClip( positionWS );				#if defined(REQUIRES_VERTEX_SHADOW_COORD_INTERPOLATOR) && defined(ASE_NEEDS_FRAG_SHADOWCOORDS)					VertexPositionInputs vertexInput = (VertexPositionInputs)0;					vertexInput.positionWS = positionWS;					vertexInput.positionCS = o.clipPos;					o.shadowCoord = GetShadowCoord( vertexInput );				#endif				return o;			}			#if defined(TESSELLATION_ON)			struct VertexControl			{				float4 vertex : INTERNALTESSPOS;				float3 ase_normal : 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 ( VertexInput v )			{				VertexControl o;				UNITY_SETUP_INSTANCE_ID(v);				UNITY_TRANSFER_INSTANCE_ID(v, o);				o.vertex = v.vertex;				o.ase_normal = v.ase_normal;				o.ase_texcoord = v.ase_texcoord;				o.ase_texcoord1 = v.ase_texcoord1;				o.ase_color = v.ase_color;				return o;			}			TessellationFactors TessellationFunction (InputPatch<VertexControl,3> v)			{				TessellationFactors o;				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(v[0].vertex, v[1].vertex, v[2].vertex, tessValue, tessMin, tessMax, GetObjectToWorldMatrix(), _WorldSpaceCameraPos );				#elif defined(ASE_LENGTH_TESSELLATION)				tf = EdgeLengthBasedTess(v[0].vertex, v[1].vertex, v[2].vertex, edgeLength, GetObjectToWorldMatrix(), _WorldSpaceCameraPos, _ScreenParams );				#elif defined(ASE_LENGTH_CULL_TESSELLATION)				tf = EdgeLengthBasedTessCull(v[0].vertex, v[1].vertex, v[2].vertex, edgeLength, tessMaxDisp, GetObjectToWorldMatrix(), _WorldSpaceCameraPos, _ScreenParams, unity_CameraWorldClipPlanes );				#endif				o.edge[0] = tf.x; o.edge[1] = tf.y; o.edge[2] = tf.z; o.inside = tf.w;				return o;			}			[domain("tri")]			[partitioning("fractional_odd")]			[outputtopology("triangle_cw")]			[patchconstantfunc("TessellationFunction")]			[outputcontrolpoints(3)]			VertexControl HullFunction(InputPatch<VertexControl, 3> patch, uint id : SV_OutputControlPointID)			{			   return patch[id];			}			[domain("tri")]			VertexOutput DomainFunction(TessellationFactors factors, OutputPatch<VertexControl, 3> patch, float3 bary : SV_DomainLocation)			{				VertexInput o = (VertexInput) 0;				o.vertex = patch[0].vertex * bary.x + patch[1].vertex * bary.y + patch[2].vertex * bary.z;				o.ase_normal = patch[0].ase_normal * bary.x + patch[1].ase_normal * bary.y + patch[2].ase_normal * bary.z;				o.ase_texcoord = patch[0].ase_texcoord * bary.x + patch[1].ase_texcoord * bary.y + patch[2].ase_texcoord * bary.z;				o.ase_texcoord1 = patch[0].ase_texcoord1 * bary.x + patch[1].ase_texcoord1 * bary.y + patch[2].ase_texcoord1 * bary.z;				o.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] = o.vertex.xyz - patch[i].ase_normal * (dot(o.vertex.xyz, patch[i].ase_normal) - dot(patch[i].vertex.xyz, patch[i].ase_normal));				float phongStrength = _TessPhongStrength;				o.vertex.xyz = phongStrength * (pp[0]*bary.x + pp[1]*bary.y + pp[2]*bary.z) + (1.0f-phongStrength) * o.vertex.xyz;				#endif				UNITY_TRANSFER_INSTANCE_ID(patch[0], o);				return VertexFunction(o);			}			#else			VertexOutput vert ( VertexInput v )			{				return VertexFunction( v );			}			#endif			half4 frag(VertexOutput IN  ) : SV_TARGET			{				UNITY_SETUP_INSTANCE_ID(IN);				UNITY_SETUP_STEREO_EYE_INDEX_POST_VERTEX( IN );				#if defined(ASE_NEEDS_FRAG_WORLD_POSITION)				float3 WorldPosition = IN.worldPos;				#endif				float4 ShadowCoords = float4( 0, 0, 0, 0 );				#if defined(ASE_NEEDS_FRAG_SHADOWCOORDS)					#if defined(REQUIRES_VERTEX_SHADOW_COORD_INTERPOLATOR)						ShadowCoords = IN.shadowCoord;					#elif defined(MAIN_LIGHT_CALCULATE_SHADOWS)						ShadowCoords = TransformWorldToShadowCoord( WorldPosition );					#endif				#endif				float cos127 = cos( (0.0 + (_MainTexRotation - 0.0) * (( 2.0 * PI ) - 0.0) / (1.0 - 0.0)) );				float sin127 = sin( (0.0 + (_MainTexRotation - 0.0) * (( 2.0 * PI ) - 0.0) / (1.0 - 0.0)) );				float2 rotator127 = mul( IN.ase_texcoord2.xy - float2( 0.5,0.5 ) , float2x2( cos127 , -sin127 , sin127 , cos127 )) + float2( 0.5,0.5 );				float4 texCoord151 = IN.ase_texcoord3;				texCoord151.xy = IN.ase_texcoord3.xy * float2( 1,1 ) + float2( 0,0 );				float2 appendResult154 = (float2(texCoord151.z , texCoord151.w));				float2 uv_MainTex = IN.ase_texcoord2.xy * _MainTex_ST.xy + _MainTex_ST.zw;				float2 lerpResult157 = lerp( rotator127 , ( appendResult154 + uv_MainTex ) , round( _CustomDataSwitch ));				float4 tex2DNode33 = tex2D( _MainTex, lerpResult157 );				float4 break92 = ( tex2DNode33 * _MainTexChannel );				float clampResult94 = clamp( ( break92.r + break92.g + break92.b + break92.a ) , 0.0 , 1.0 );				float2 uv_DissolveTex = IN.ase_texcoord2.xy * _DissolveTex_ST.xy + _DissolveTex_ST.zw;				float4 texCoord145 = IN.ase_texcoord3;				texCoord145.xy = IN.ase_texcoord3.xy * float2( 1,1 ) + float2( 0,0 );				float2 appendResult143 = (float2(texCoord145.z , texCoord145.w));				float4 tex2DNode66 = tex2D( _DissolveTex, ( uv_DissolveTex + appendResult143 ) );				#ifdef _DISSOLVETEXFLIP_ON				float staticSwitch110 = ( 1.0 - tex2DNode66.r );				#else				float staticSwitch110 = tex2DNode66.r;				#endif				float4 texCoord111 = IN.ase_texcoord3;				texCoord111.xy = IN.ase_texcoord3.xy * float2( 1,1 ) + float2( 0,0 );				float clampResult120 = clamp( ( 1.0 - pow( ( 1.0 - pow( staticSwitch110 , _DissolvePower ) ) , (1.0 + (texCoord111.x - 0.0) * (_DissolveExpReversed - 1.0) / (1.0 - 0.0)) ) ) , 0.0 , 1.0 );				float4 texCoord122 = IN.ase_texcoord3;				texCoord122.xy = IN.ase_texcoord3.xy * float2( 1,1 ) + float2( 0,0 );				float clampResult124 = clamp( ( clampResult120 + (-1.0 + (texCoord122.x - 0.0) * (1.0 - -1.0) / (1.0 - 0.0)) ) , 0.0 , 1.0 );				float lerpResult147 = lerp( clampResult124 , 0.0 , round( _DissolveSwitch ));				float clampResult96 = clamp( ( clampResult94 - lerpResult147 ) , 0.0 , 1.0 );				float2 uv_MaskTex = IN.ase_texcoord2.xy * _MaskTex_ST.xy + _MaskTex_ST.zw;				float clampResult100 = clamp( ( clampResult96 * IN.ase_color.a * _OpacityPower * tex2D( _MaskTex, uv_MaskTex ).r ) , 0.0 , 1.0 );								float Alpha = clampResult100;				float AlphaClipThreshold = 0.5;				#ifdef _ALPHATEST_ON					clip(Alpha - AlphaClipThreshold);				#endif				#ifdef LOD_FADE_CROSSFADE					LODDitheringTransition( IN.clipPos.xyz, unity_LODFade.x );				#endif				return 0;			}			ENDHLSL		}				Pass		{						Name "Universal2D"			Tags { "LightMode"="Universal2D" }						Blend SrcAlpha OneMinusSrcAlpha, One OneMinusSrcAlpha			ZWrite Off			ZTest LEqual			Offset -1 , 0			ColorMask RGBA						HLSLPROGRAM						#pragma multi_compile_instancing			#define _RECEIVE_SHADOWS_OFF 1			#define ASE_SRP_VERSION 999999						#pragma multi_compile _ LIGHTMAP_ON			#pragma multi_compile _ DIRLIGHTMAP_COMBINED			#pragma shader_feature _ _SAMPLE_GI			#pragma multi_compile _ _DBUFFER_MRT1 _DBUFFER_MRT2 _DBUFFER_MRT3			#pragma multi_compile _ DEBUG_DISPLAY			#define SHADERPASS SHADERPASS_UNLIT			#pragma vertex vert			#pragma fragment frag			#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.core/ShaderLibrary/TextureStack.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/Input.hlsl"			#include "Packages/com.unity.render-pipelines.universal/ShaderLibrary/SurfaceData.hlsl"			#define ASE_NEEDS_FRAG_COLOR			#pragma shader_feature_local _DISSOLVETEXFLIP_ON			struct VertexInput			{				float4 vertex : POSITION;				float3 ase_normal : NORMAL;				float4 ase_color : COLOR;				float4 ase_texcoord : TEXCOORD0;				float4 ase_texcoord1 : TEXCOORD1;				UNITY_VERTEX_INPUT_INSTANCE_ID			};			struct VertexOutput			{				float4 clipPos : SV_POSITION;				#if defined(ASE_NEEDS_FRAG_WORLD_POSITION)				float3 worldPos : TEXCOORD0;				#endif				#if defined(REQUIRES_VERTEX_SHADOW_COORD_INTERPOLATOR) && defined(ASE_NEEDS_FRAG_SHADOWCOORDS)				float4 shadowCoord : TEXCOORD1;				#endif				#ifdef ASE_FOG				float fogFactor : TEXCOORD2;				#endif				float4 ase_color : COLOR;				float4 ase_texcoord3 : TEXCOORD3;				float4 ase_texcoord4 : TEXCOORD4;				UNITY_VERTEX_INPUT_INSTANCE_ID				UNITY_VERTEX_OUTPUT_STEREO			};			CBUFFER_START(UnityPerMaterial)			float4 _MainTex_ST;			float4 _MainTexChannel;			float4 _DissolveTex_ST;			float4 _MaskTex_ST;			float4 _Color;			float _ColorPower;			float _MainTexRotation;			float _CustomDataSwitch;			float _DissolvePower;			float _DissolveExpReversed;			float _DissolveSwitch;			float _OpacityPower;			float _RampDirection;			float _RampPower;			#ifdef TESSELLATION_ON				float _TessPhongStrength;				float _TessValue;				float _TessMin;				float _TessMax;				float _TessEdgeLength;				float _TessMaxDisp;			#endif			CBUFFER_END			sampler2D _Ramp;			sampler2D _MainTex;			sampler2D _DissolveTex;			sampler2D _MaskTex;									VertexOutput VertexFunction ( VertexInput v  )			{				VertexOutput o = (VertexOutput)0;				UNITY_SETUP_INSTANCE_ID(v);				UNITY_TRANSFER_INSTANCE_ID(v, o);				UNITY_INITIALIZE_VERTEX_OUTPUT_STEREO(o);				o.ase_color = v.ase_color;				o.ase_texcoord3.xy = v.ase_texcoord.xy;				o.ase_texcoord4 = v.ase_texcoord1;								//setting value to unused interpolator channels and avoid initialization warnings				o.ase_texcoord3.zw = 0;				#ifdef ASE_ABSOLUTE_VERTEX_POS					float3 defaultVertexValue = v.vertex.xyz;				#else					float3 defaultVertexValue = float3(0, 0, 0);				#endif				float3 vertexValue = defaultVertexValue;				#ifdef ASE_ABSOLUTE_VERTEX_POS					v.vertex.xyz = vertexValue;				#else					v.vertex.xyz += vertexValue;				#endif				v.ase_normal = v.ase_normal;				float3 positionWS = TransformObjectToWorld( v.vertex.xyz );				float4 positionCS = TransformWorldToHClip( positionWS );				#if defined(ASE_NEEDS_FRAG_WORLD_POSITION)				o.worldPos = positionWS;				#endif				#if defined(REQUIRES_VERTEX_SHADOW_COORD_INTERPOLATOR) && defined(ASE_NEEDS_FRAG_SHADOWCOORDS)				VertexPositionInputs vertexInput = (VertexPositionInputs)0;				vertexInput.positionWS = positionWS;				vertexInput.positionCS = positionCS;				o.shadowCoord = GetShadowCoord( vertexInput );				#endif				#ifdef ASE_FOG				o.fogFactor = ComputeFogFactor( positionCS.z );				#endif				o.clipPos = positionCS;				return o;			}			#if defined(TESSELLATION_ON)			struct VertexControl			{				float4 vertex : INTERNALTESSPOS;				float3 ase_normal : NORMAL;				float4 ase_color : COLOR;				float4 ase_texcoord : TEXCOORD0;				float4 ase_texcoord1 : TEXCOORD1;				UNITY_VERTEX_INPUT_INSTANCE_ID			};			struct TessellationFactors			{				float edge[3] : SV_TessFactor;				float inside : SV_InsideTessFactor;			};			VertexControl vert ( VertexInput v )			{				VertexControl o;				UNITY_SETUP_INSTANCE_ID(v);				UNITY_TRANSFER_INSTANCE_ID(v, o);				o.vertex = v.vertex;				o.ase_normal = v.ase_normal;				o.ase_color = v.ase_color;				o.ase_texcoord = v.ase_texcoord;				o.ase_texcoord1 = v.ase_texcoord1;				return o;			}			TessellationFactors TessellationFunction (InputPatch<VertexControl,3> v)			{				TessellationFactors o;				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(v[0].vertex, v[1].vertex, v[2].vertex, tessValue, tessMin, tessMax, GetObjectToWorldMatrix(), _WorldSpaceCameraPos );				#elif defined(ASE_LENGTH_TESSELLATION)				tf = EdgeLengthBasedTess(v[0].vertex, v[1].vertex, v[2].vertex, edgeLength, GetObjectToWorldMatrix(), _WorldSpaceCameraPos, _ScreenParams );				#elif defined(ASE_LENGTH_CULL_TESSELLATION)				tf = EdgeLengthBasedTessCull(v[0].vertex, v[1].vertex, v[2].vertex, edgeLength, tessMaxDisp, GetObjectToWorldMatrix(), _WorldSpaceCameraPos, _ScreenParams, unity_CameraWorldClipPlanes );				#endif				o.edge[0] = tf.x; o.edge[1] = tf.y; o.edge[2] = tf.z; o.inside = tf.w;				return o;			}			[domain("tri")]			[partitioning("fractional_odd")]			[outputtopology("triangle_cw")]			[patchconstantfunc("TessellationFunction")]			[outputcontrolpoints(3)]			VertexControl HullFunction(InputPatch<VertexControl, 3> patch, uint id : SV_OutputControlPointID)			{			   return patch[id];			}			[domain("tri")]			VertexOutput DomainFunction(TessellationFactors factors, OutputPatch<VertexControl, 3> patch, float3 bary : SV_DomainLocation)			{				VertexInput o = (VertexInput) 0;				o.vertex = patch[0].vertex * bary.x + patch[1].vertex * bary.y + patch[2].vertex * bary.z;				o.ase_normal = patch[0].ase_normal * bary.x + patch[1].ase_normal * bary.y + patch[2].ase_normal * bary.z;				o.ase_color = patch[0].ase_color * bary.x + patch[1].ase_color * bary.y + patch[2].ase_color * bary.z;				o.ase_texcoord = patch[0].ase_texcoord * bary.x + patch[1].ase_texcoord * bary.y + patch[2].ase_texcoord * bary.z;				o.ase_texcoord1 = patch[0].ase_texcoord1 * bary.x + patch[1].ase_texcoord1 * bary.y + patch[2].ase_texcoord1 * bary.z;				#if defined(ASE_PHONG_TESSELLATION)				float3 pp[3];				for (int i = 0; i < 3; ++i)					pp[i] = o.vertex.xyz - patch[i].ase_normal * (dot(o.vertex.xyz, patch[i].ase_normal) - dot(patch[i].vertex.xyz, patch[i].ase_normal));				float phongStrength = _TessPhongStrength;				o.vertex.xyz = phongStrength * (pp[0]*bary.x + pp[1]*bary.y + pp[2]*bary.z) + (1.0f-phongStrength) * o.vertex.xyz;				#endif				UNITY_TRANSFER_INSTANCE_ID(patch[0], o);				return VertexFunction(o);			}			#else			VertexOutput vert ( VertexInput v )			{				return VertexFunction( v );			}			#endif			half4 frag ( VertexOutput IN  ) : SV_Target			{				UNITY_SETUP_INSTANCE_ID( IN );				UNITY_SETUP_STEREO_EYE_INDEX_POST_VERTEX( IN );				#if defined(ASE_NEEDS_FRAG_WORLD_POSITION)				float3 WorldPosition = IN.worldPos;				#endif				float4 ShadowCoords = float4( 0, 0, 0, 0 );				#if defined(ASE_NEEDS_FRAG_SHADOWCOORDS)					#if defined(REQUIRES_VERTEX_SHADOW_COORD_INTERPOLATOR)						ShadowCoords = IN.shadowCoord;					#elif defined(MAIN_LIGHT_CALCULATE_SHADOWS)						ShadowCoords = TransformWorldToShadowCoord( WorldPosition );					#endif				#endif				float cos127 = cos( (0.0 + (_MainTexRotation - 0.0) * (( 2.0 * PI ) - 0.0) / (1.0 - 0.0)) );				float sin127 = sin( (0.0 + (_MainTexRotation - 0.0) * (( 2.0 * PI ) - 0.0) / (1.0 - 0.0)) );				float2 rotator127 = mul( IN.ase_texcoord3.xy - float2( 0.5,0.5 ) , float2x2( cos127 , -sin127 , sin127 , cos127 )) + float2( 0.5,0.5 );				float4 texCoord151 = IN.ase_texcoord4;				texCoord151.xy = IN.ase_texcoord4.xy * float2( 1,1 ) + float2( 0,0 );				float2 appendResult154 = (float2(texCoord151.z , texCoord151.w));				float2 uv_MainTex = IN.ase_texcoord3.xy * _MainTex_ST.xy + _MainTex_ST.zw;				float2 lerpResult157 = lerp( rotator127 , ( appendResult154 + uv_MainTex ) , round( _CustomDataSwitch ));				float4 tex2DNode33 = tex2D( _MainTex, lerpResult157 );				float4 break92 = ( tex2DNode33 * _MainTexChannel );				float clampResult94 = clamp( ( break92.r + break92.g + break92.b + break92.a ) , 0.0 , 1.0 );				float2 uv_DissolveTex = IN.ase_texcoord3.xy * _DissolveTex_ST.xy + _DissolveTex_ST.zw;				float4 texCoord145 = IN.ase_texcoord4;				texCoord145.xy = IN.ase_texcoord4.xy * float2( 1,1 ) + float2( 0,0 );				float2 appendResult143 = (float2(texCoord145.z , texCoord145.w));				float4 tex2DNode66 = tex2D( _DissolveTex, ( uv_DissolveTex + appendResult143 ) );				#ifdef _DISSOLVETEXFLIP_ON				float staticSwitch110 = ( 1.0 - tex2DNode66.r );				#else				float staticSwitch110 = tex2DNode66.r;				#endif				float4 texCoord111 = IN.ase_texcoord4;				texCoord111.xy = IN.ase_texcoord4.xy * float2( 1,1 ) + float2( 0,0 );				float clampResult120 = clamp( ( 1.0 - pow( ( 1.0 - pow( staticSwitch110 , _DissolvePower ) ) , (1.0 + (texCoord111.x - 0.0) * (_DissolveExpReversed - 1.0) / (1.0 - 0.0)) ) ) , 0.0 , 1.0 );				float4 texCoord122 = IN.ase_texcoord4;				texCoord122.xy = IN.ase_texcoord4.xy * float2( 1,1 ) + float2( 0,0 );				float clampResult124 = clamp( ( clampResult120 + (-1.0 + (texCoord122.x - 0.0) * (1.0 - -1.0) / (1.0 - 0.0)) ) , 0.0 , 1.0 );				float lerpResult147 = lerp( clampResult124 , 0.0 , round( _DissolveSwitch ));				float clampResult96 = clamp( ( clampResult94 - lerpResult147 ) , 0.0 , 1.0 );				float2 uv_MaskTex = IN.ase_texcoord3.xy * _MaskTex_ST.xy + _MaskTex_ST.zw;				float clampResult100 = clamp( ( clampResult96 * IN.ase_color.a * _OpacityPower * tex2D( _MaskTex, uv_MaskTex ).r ) , 0.0 , 1.0 );				float lerpResult34 = lerp( clampResult94 , clampResult100 , _RampDirection);				float2 appendResult44 = (float2(( 1.0 - pow( ( 1.0 - lerpResult34 ) , _RampPower ) ) , 0.0));								float3 BakedAlbedo = 0;				float3 BakedEmission = 0;				float3 Color = ( ( IN.ase_color * _ColorPower ) * ( tex2D( _Ramp, appendResult44 ) * _Color * tex2DNode33 ) ).rgb;				float Alpha = clampResult100;				float AlphaClipThreshold = 0.5;				float AlphaClipThresholdShadow = 0.5;				#ifdef _ALPHATEST_ON					clip( Alpha - AlphaClipThreshold );				#endif				#if defined(_DBUFFER)					ApplyDecalToBaseColor(IN.clipPos, Color);				#endif				#if defined(_ALPHAPREMULTIPLY_ON)				Color *= Alpha;				#endif				#ifdef LOD_FADE_CROSSFADE					LODDitheringTransition( IN.clipPos.xyz, unity_LODFade.x );				#endif				#ifdef ASE_FOG					Color = MixFog( Color, IN.fogFactor );				#endif				return half4( Color, Alpha );			}			ENDHLSL		}		        Pass        {			            Name "SceneSelectionPass"            Tags { "LightMode"="SceneSelectionPass" }        			Cull Off			HLSLPROGRAM        			#pragma multi_compile_instancing			#define _RECEIVE_SHADOWS_OFF 1			#define ASE_SRP_VERSION 999999        			#pragma only_renderers d3d11 glcore gles gles3 			#pragma vertex vert			#pragma fragment frag			#define ATTRIBUTES_NEED_NORMAL			#define ATTRIBUTES_NEED_TANGENT			#define SHADERPASS SHADERPASS_DEPTHONLY			#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.core/ShaderLibrary/TextureStack.hlsl"			#include "Packages/com.unity.render-pipelines.universal/ShaderLibrary/ShaderGraphFunctions.hlsl"			#include "Packages/com.unity.render-pipelines.universal/Editor/ShaderGraph/Includes/ShaderPass.hlsl"        			#pragma shader_feature_local _DISSOLVETEXFLIP_ON			struct VertexInput			{				float4 vertex : POSITION;				float3 ase_normal : NORMAL;				float4 ase_texcoord : TEXCOORD0;				float4 ase_texcoord1 : TEXCOORD1;				float4 ase_color : COLOR;				UNITY_VERTEX_INPUT_INSTANCE_ID			};			struct VertexOutput			{				float4 clipPos : SV_POSITION;				float4 ase_texcoord : TEXCOORD0;				float4 ase_texcoord1 : TEXCOORD1;				float4 ase_color : COLOR;				UNITY_VERTEX_INPUT_INSTANCE_ID				UNITY_VERTEX_OUTPUT_STEREO			};        			CBUFFER_START(UnityPerMaterial)			float4 _MainTex_ST;			float4 _MainTexChannel;			float4 _DissolveTex_ST;			float4 _MaskTex_ST;			float4 _Color;			float _ColorPower;			float _MainTexRotation;			float _CustomDataSwitch;			float _DissolvePower;			float _DissolveExpReversed;			float _DissolveSwitch;			float _OpacityPower;			float _RampDirection;			float _RampPower;			#ifdef TESSELLATION_ON				float _TessPhongStrength;				float _TessValue;				float _TessMin;				float _TessMax;				float _TessEdgeLength;				float _TessMaxDisp;			#endif			CBUFFER_END			sampler2D _MainTex;			sampler2D _DissolveTex;			sampler2D _MaskTex;						int _ObjectId;			int _PassValue;			struct SurfaceDescription			{				float Alpha;				float AlphaClipThreshold;			};        			VertexOutput VertexFunction(VertexInput v  )			{				VertexOutput o;				ZERO_INITIALIZE(VertexOutput, o);				UNITY_SETUP_INSTANCE_ID(v);				UNITY_TRANSFER_INSTANCE_ID(v, o);				UNITY_INITIALIZE_VERTEX_OUTPUT_STEREO(o);				o.ase_texcoord.xy = v.ase_texcoord.xy;				o.ase_texcoord1 = v.ase_texcoord1;				o.ase_color = v.ase_color;								//setting value to unused interpolator channels and avoid initialization warnings				o.ase_texcoord.zw = 0;				#ifdef ASE_ABSOLUTE_VERTEX_POS					float3 defaultVertexValue = v.vertex.xyz;				#else					float3 defaultVertexValue = float3(0, 0, 0);				#endif				float3 vertexValue = defaultVertexValue;				#ifdef ASE_ABSOLUTE_VERTEX_POS					v.vertex.xyz = vertexValue;				#else					v.vertex.xyz += vertexValue;				#endif				v.ase_normal = v.ase_normal;				float3 positionWS = TransformObjectToWorld( v.vertex.xyz );				o.clipPos = TransformWorldToHClip(positionWS);				return o;			}			#if defined(TESSELLATION_ON)			struct VertexControl			{				float4 vertex : INTERNALTESSPOS;				float3 ase_normal : 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 ( VertexInput v )			{				VertexControl o;				UNITY_SETUP_INSTANCE_ID(v);				UNITY_TRANSFER_INSTANCE_ID(v, o);				o.vertex = v.vertex;				o.ase_normal = v.ase_normal;				o.ase_texcoord = v.ase_texcoord;				o.ase_texcoord1 = v.ase_texcoord1;				o.ase_color = v.ase_color;				return o;			}			TessellationFactors TessellationFunction (InputPatch<VertexControl,3> v)			{				TessellationFactors o;				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(v[0].vertex, v[1].vertex, v[2].vertex, tessValue, tessMin, tessMax, GetObjectToWorldMatrix(), _WorldSpaceCameraPos );				#elif defined(ASE_LENGTH_TESSELLATION)				tf = EdgeLengthBasedTess(v[0].vertex, v[1].vertex, v[2].vertex, edgeLength, GetObjectToWorldMatrix(), _WorldSpaceCameraPos, _ScreenParams );				#elif defined(ASE_LENGTH_CULL_TESSELLATION)				tf = EdgeLengthBasedTessCull(v[0].vertex, v[1].vertex, v[2].vertex, edgeLength, tessMaxDisp, GetObjectToWorldMatrix(), _WorldSpaceCameraPos, _ScreenParams, unity_CameraWorldClipPlanes );				#endif				o.edge[0] = tf.x; o.edge[1] = tf.y; o.edge[2] = tf.z; o.inside = tf.w;				return o;			}			[domain("tri")]			[partitioning("fractional_odd")]			[outputtopology("triangle_cw")]			[patchconstantfunc("TessellationFunction")]			[outputcontrolpoints(3)]			VertexControl HullFunction(InputPatch<VertexControl, 3> patch, uint id : SV_OutputControlPointID)			{			   return patch[id];			}			[domain("tri")]			VertexOutput DomainFunction(TessellationFactors factors, OutputPatch<VertexControl, 3> patch, float3 bary : SV_DomainLocation)			{				VertexInput o = (VertexInput) 0;				o.vertex = patch[0].vertex * bary.x + patch[1].vertex * bary.y + patch[2].vertex * bary.z;				o.ase_normal = patch[0].ase_normal * bary.x + patch[1].ase_normal * bary.y + patch[2].ase_normal * bary.z;				o.ase_texcoord = patch[0].ase_texcoord * bary.x + patch[1].ase_texcoord * bary.y + patch[2].ase_texcoord * bary.z;				o.ase_texcoord1 = patch[0].ase_texcoord1 * bary.x + patch[1].ase_texcoord1 * bary.y + patch[2].ase_texcoord1 * bary.z;				o.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] = o.vertex.xyz - patch[i].ase_normal * (dot(o.vertex.xyz, patch[i].ase_normal) - dot(patch[i].vertex.xyz, patch[i].ase_normal));				float phongStrength = _TessPhongStrength;				o.vertex.xyz = phongStrength * (pp[0]*bary.x + pp[1]*bary.y + pp[2]*bary.z) + (1.0f-phongStrength) * o.vertex.xyz;				#endif				UNITY_TRANSFER_INSTANCE_ID(patch[0], o);				return VertexFunction(o);			}			#else			VertexOutput vert ( VertexInput v )			{				return VertexFunction( v );			}			#endif						half4 frag(VertexOutput IN ) : SV_TARGET			{				SurfaceDescription surfaceDescription = (SurfaceDescription)0;				float cos127 = cos( (0.0 + (_MainTexRotation - 0.0) * (( 2.0 * PI ) - 0.0) / (1.0 - 0.0)) );				float sin127 = sin( (0.0 + (_MainTexRotation - 0.0) * (( 2.0 * PI ) - 0.0) / (1.0 - 0.0)) );				float2 rotator127 = mul( IN.ase_texcoord.xy - float2( 0.5,0.5 ) , float2x2( cos127 , -sin127 , sin127 , cos127 )) + float2( 0.5,0.5 );				float4 texCoord151 = IN.ase_texcoord1;				texCoord151.xy = IN.ase_texcoord1.xy * float2( 1,1 ) + float2( 0,0 );				float2 appendResult154 = (float2(texCoord151.z , texCoord151.w));				float2 uv_MainTex = IN.ase_texcoord.xy * _MainTex_ST.xy + _MainTex_ST.zw;				float2 lerpResult157 = lerp( rotator127 , ( appendResult154 + uv_MainTex ) , round( _CustomDataSwitch ));				float4 tex2DNode33 = tex2D( _MainTex, lerpResult157 );				float4 break92 = ( tex2DNode33 * _MainTexChannel );				float clampResult94 = clamp( ( break92.r + break92.g + break92.b + break92.a ) , 0.0 , 1.0 );				float2 uv_DissolveTex = IN.ase_texcoord.xy * _DissolveTex_ST.xy + _DissolveTex_ST.zw;				float4 texCoord145 = IN.ase_texcoord1;				texCoord145.xy = IN.ase_texcoord1.xy * float2( 1,1 ) + float2( 0,0 );				float2 appendResult143 = (float2(texCoord145.z , texCoord145.w));				float4 tex2DNode66 = tex2D( _DissolveTex, ( uv_DissolveTex + appendResult143 ) );				#ifdef _DISSOLVETEXFLIP_ON				float staticSwitch110 = ( 1.0 - tex2DNode66.r );				#else				float staticSwitch110 = tex2DNode66.r;				#endif				float4 texCoord111 = IN.ase_texcoord1;				texCoord111.xy = IN.ase_texcoord1.xy * float2( 1,1 ) + float2( 0,0 );				float clampResult120 = clamp( ( 1.0 - pow( ( 1.0 - pow( staticSwitch110 , _DissolvePower ) ) , (1.0 + (texCoord111.x - 0.0) * (_DissolveExpReversed - 1.0) / (1.0 - 0.0)) ) ) , 0.0 , 1.0 );				float4 texCoord122 = IN.ase_texcoord1;				texCoord122.xy = IN.ase_texcoord1.xy * float2( 1,1 ) + float2( 0,0 );				float clampResult124 = clamp( ( clampResult120 + (-1.0 + (texCoord122.x - 0.0) * (1.0 - -1.0) / (1.0 - 0.0)) ) , 0.0 , 1.0 );				float lerpResult147 = lerp( clampResult124 , 0.0 , round( _DissolveSwitch ));				float clampResult96 = clamp( ( clampResult94 - lerpResult147 ) , 0.0 , 1.0 );				float2 uv_MaskTex = IN.ase_texcoord.xy * _MaskTex_ST.xy + _MaskTex_ST.zw;				float clampResult100 = clamp( ( clampResult96 * IN.ase_color.a * _OpacityPower * tex2D( _MaskTex, uv_MaskTex ).r ) , 0.0 , 1.0 );								surfaceDescription.Alpha = clampResult100;				surfaceDescription.AlphaClipThreshold = 0.5;				#if _ALPHATEST_ON					float alphaClipThreshold = 0.01f;					#if ALPHA_CLIP_THRESHOLD						alphaClipThreshold = surfaceDescription.AlphaClipThreshold;					#endif					clip(surfaceDescription.Alpha - alphaClipThreshold);				#endif				half4 outColor = half4(_ObjectId, _PassValue, 1.0, 1.0);				return outColor;			}			ENDHLSL        }		        Pass        {			            Name "ScenePickingPass"            Tags { "LightMode"="Picking" }        			HLSLPROGRAM			#pragma multi_compile_instancing			#define _RECEIVE_SHADOWS_OFF 1			#define ASE_SRP_VERSION 999999			#pragma only_renderers d3d11 glcore gles gles3 			#pragma vertex vert			#pragma fragment frag        			#define ATTRIBUTES_NEED_NORMAL			#define ATTRIBUTES_NEED_TANGENT			#define SHADERPASS SHADERPASS_DEPTHONLY						#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.core/ShaderLibrary/TextureStack.hlsl"			#include "Packages/com.unity.render-pipelines.universal/ShaderLibrary/ShaderGraphFunctions.hlsl"			#include "Packages/com.unity.render-pipelines.universal/Editor/ShaderGraph/Includes/ShaderPass.hlsl"        			#pragma shader_feature_local _DISSOLVETEXFLIP_ON			struct VertexInput			{				float4 vertex : POSITION;				float3 ase_normal : NORMAL;				float4 ase_texcoord : TEXCOORD0;				float4 ase_texcoord1 : TEXCOORD1;				float4 ase_color : COLOR;				UNITY_VERTEX_INPUT_INSTANCE_ID			};			struct VertexOutput			{				float4 clipPos : SV_POSITION;				float4 ase_texcoord : TEXCOORD0;				float4 ase_texcoord1 : TEXCOORD1;				float4 ase_color : COLOR;				UNITY_VERTEX_INPUT_INSTANCE_ID				UNITY_VERTEX_OUTPUT_STEREO			};        			CBUFFER_START(UnityPerMaterial)			float4 _MainTex_ST;			float4 _MainTexChannel;			float4 _DissolveTex_ST;			float4 _MaskTex_ST;			float4 _Color;			float _ColorPower;			float _MainTexRotation;			float _CustomDataSwitch;			float _DissolvePower;			float _DissolveExpReversed;			float _DissolveSwitch;			float _OpacityPower;			float _RampDirection;			float _RampPower;			#ifdef TESSELLATION_ON				float _TessPhongStrength;				float _TessValue;				float _TessMin;				float _TessMax;				float _TessEdgeLength;				float _TessMaxDisp;			#endif			CBUFFER_END			sampler2D _MainTex;			sampler2D _DissolveTex;			sampler2D _MaskTex;			        			float4 _SelectionID;        			struct SurfaceDescription			{				float Alpha;				float AlphaClipThreshold;			};        			VertexOutput VertexFunction(VertexInput v  )			{				VertexOutput o;				ZERO_INITIALIZE(VertexOutput, o);				UNITY_SETUP_INSTANCE_ID(v);				UNITY_TRANSFER_INSTANCE_ID(v, o);				UNITY_INITIALIZE_VERTEX_OUTPUT_STEREO(o);				o.ase_texcoord.xy = v.ase_texcoord.xy;				o.ase_texcoord1 = v.ase_texcoord1;				o.ase_color = v.ase_color;								//setting value to unused interpolator channels and avoid initialization warnings				o.ase_texcoord.zw = 0;				#ifdef ASE_ABSOLUTE_VERTEX_POS					float3 defaultVertexValue = v.vertex.xyz;				#else					float3 defaultVertexValue = float3(0, 0, 0);				#endif				float3 vertexValue = defaultVertexValue;				#ifdef ASE_ABSOLUTE_VERTEX_POS					v.vertex.xyz = vertexValue;				#else					v.vertex.xyz += vertexValue;				#endif				v.ase_normal = v.ase_normal;				float3 positionWS = TransformObjectToWorld( v.vertex.xyz );				o.clipPos = TransformWorldToHClip(positionWS);				return o;			}			#if defined(TESSELLATION_ON)			struct VertexControl			{				float4 vertex : INTERNALTESSPOS;				float3 ase_normal : 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 ( VertexInput v )			{				VertexControl o;				UNITY_SETUP_INSTANCE_ID(v);				UNITY_TRANSFER_INSTANCE_ID(v, o);				o.vertex = v.vertex;				o.ase_normal = v.ase_normal;				o.ase_texcoord = v.ase_texcoord;				o.ase_texcoord1 = v.ase_texcoord1;				o.ase_color = v.ase_color;				return o;			}			TessellationFactors TessellationFunction (InputPatch<VertexControl,3> v)			{				TessellationFactors o;				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(v[0].vertex, v[1].vertex, v[2].vertex, tessValue, tessMin, tessMax, GetObjectToWorldMatrix(), _WorldSpaceCameraPos );				#elif defined(ASE_LENGTH_TESSELLATION)				tf = EdgeLengthBasedTess(v[0].vertex, v[1].vertex, v[2].vertex, edgeLength, GetObjectToWorldMatrix(), _WorldSpaceCameraPos, _ScreenParams );				#elif defined(ASE_LENGTH_CULL_TESSELLATION)				tf = EdgeLengthBasedTessCull(v[0].vertex, v[1].vertex, v[2].vertex, edgeLength, tessMaxDisp, GetObjectToWorldMatrix(), _WorldSpaceCameraPos, _ScreenParams, unity_CameraWorldClipPlanes );				#endif				o.edge[0] = tf.x; o.edge[1] = tf.y; o.edge[2] = tf.z; o.inside = tf.w;				return o;			}			[domain("tri")]			[partitioning("fractional_odd")]			[outputtopology("triangle_cw")]			[patchconstantfunc("TessellationFunction")]			[outputcontrolpoints(3)]			VertexControl HullFunction(InputPatch<VertexControl, 3> patch, uint id : SV_OutputControlPointID)			{			   return patch[id];			}			[domain("tri")]			VertexOutput DomainFunction(TessellationFactors factors, OutputPatch<VertexControl, 3> patch, float3 bary : SV_DomainLocation)			{				VertexInput o = (VertexInput) 0;				o.vertex = patch[0].vertex * bary.x + patch[1].vertex * bary.y + patch[2].vertex * bary.z;				o.ase_normal = patch[0].ase_normal * bary.x + patch[1].ase_normal * bary.y + patch[2].ase_normal * bary.z;				o.ase_texcoord = patch[0].ase_texcoord * bary.x + patch[1].ase_texcoord * bary.y + patch[2].ase_texcoord * bary.z;				o.ase_texcoord1 = patch[0].ase_texcoord1 * bary.x + patch[1].ase_texcoord1 * bary.y + patch[2].ase_texcoord1 * bary.z;				o.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] = o.vertex.xyz - patch[i].ase_normal * (dot(o.vertex.xyz, patch[i].ase_normal) - dot(patch[i].vertex.xyz, patch[i].ase_normal));				float phongStrength = _TessPhongStrength;				o.vertex.xyz = phongStrength * (pp[0]*bary.x + pp[1]*bary.y + pp[2]*bary.z) + (1.0f-phongStrength) * o.vertex.xyz;				#endif				UNITY_TRANSFER_INSTANCE_ID(patch[0], o);				return VertexFunction(o);			}			#else			VertexOutput vert ( VertexInput v )			{				return VertexFunction( v );			}			#endif			half4 frag(VertexOutput IN ) : SV_TARGET			{				SurfaceDescription surfaceDescription = (SurfaceDescription)0;				float cos127 = cos( (0.0 + (_MainTexRotation - 0.0) * (( 2.0 * PI ) - 0.0) / (1.0 - 0.0)) );				float sin127 = sin( (0.0 + (_MainTexRotation - 0.0) * (( 2.0 * PI ) - 0.0) / (1.0 - 0.0)) );				float2 rotator127 = mul( IN.ase_texcoord.xy - float2( 0.5,0.5 ) , float2x2( cos127 , -sin127 , sin127 , cos127 )) + float2( 0.5,0.5 );				float4 texCoord151 = IN.ase_texcoord1;				texCoord151.xy = IN.ase_texcoord1.xy * float2( 1,1 ) + float2( 0,0 );				float2 appendResult154 = (float2(texCoord151.z , texCoord151.w));				float2 uv_MainTex = IN.ase_texcoord.xy * _MainTex_ST.xy + _MainTex_ST.zw;				float2 lerpResult157 = lerp( rotator127 , ( appendResult154 + uv_MainTex ) , round( _CustomDataSwitch ));				float4 tex2DNode33 = tex2D( _MainTex, lerpResult157 );				float4 break92 = ( tex2DNode33 * _MainTexChannel );				float clampResult94 = clamp( ( break92.r + break92.g + break92.b + break92.a ) , 0.0 , 1.0 );				float2 uv_DissolveTex = IN.ase_texcoord.xy * _DissolveTex_ST.xy + _DissolveTex_ST.zw;				float4 texCoord145 = IN.ase_texcoord1;				texCoord145.xy = IN.ase_texcoord1.xy * float2( 1,1 ) + float2( 0,0 );				float2 appendResult143 = (float2(texCoord145.z , texCoord145.w));				float4 tex2DNode66 = tex2D( _DissolveTex, ( uv_DissolveTex + appendResult143 ) );				#ifdef _DISSOLVETEXFLIP_ON				float staticSwitch110 = ( 1.0 - tex2DNode66.r );				#else				float staticSwitch110 = tex2DNode66.r;				#endif				float4 texCoord111 = IN.ase_texcoord1;				texCoord111.xy = IN.ase_texcoord1.xy * float2( 1,1 ) + float2( 0,0 );				float clampResult120 = clamp( ( 1.0 - pow( ( 1.0 - pow( staticSwitch110 , _DissolvePower ) ) , (1.0 + (texCoord111.x - 0.0) * (_DissolveExpReversed - 1.0) / (1.0 - 0.0)) ) ) , 0.0 , 1.0 );				float4 texCoord122 = IN.ase_texcoord1;				texCoord122.xy = IN.ase_texcoord1.xy * float2( 1,1 ) + float2( 0,0 );				float clampResult124 = clamp( ( clampResult120 + (-1.0 + (texCoord122.x - 0.0) * (1.0 - -1.0) / (1.0 - 0.0)) ) , 0.0 , 1.0 );				float lerpResult147 = lerp( clampResult124 , 0.0 , round( _DissolveSwitch ));				float clampResult96 = clamp( ( clampResult94 - lerpResult147 ) , 0.0 , 1.0 );				float2 uv_MaskTex = IN.ase_texcoord.xy * _MaskTex_ST.xy + _MaskTex_ST.zw;				float clampResult100 = clamp( ( clampResult96 * IN.ase_color.a * _OpacityPower * tex2D( _MaskTex, uv_MaskTex ).r ) , 0.0 , 1.0 );								surfaceDescription.Alpha = clampResult100;				surfaceDescription.AlphaClipThreshold = 0.5;				#if _ALPHATEST_ON					float alphaClipThreshold = 0.01f;					#if ALPHA_CLIP_THRESHOLD						alphaClipThreshold = surfaceDescription.AlphaClipThreshold;					#endif					clip(surfaceDescription.Alpha - alphaClipThreshold);				#endif				half4 outColor = 0;				outColor = _SelectionID;								return outColor;			}        			ENDHLSL        }				        Pass        {			            Name "DepthNormals"            Tags { "LightMode"="DepthNormalsOnly" }			ZTest LEqual			ZWrite On        			HLSLPROGRAM						#pragma multi_compile_instancing			#define _RECEIVE_SHADOWS_OFF 1			#define ASE_SRP_VERSION 999999						#pragma only_renderers d3d11 glcore gles gles3 			#pragma multi_compile_fog			#pragma instancing_options renderinglayer			#pragma vertex vert			#pragma fragment frag        			#define ATTRIBUTES_NEED_NORMAL			#define ATTRIBUTES_NEED_TANGENT			#define VARYINGS_NEED_NORMAL_WS			#define SHADERPASS SHADERPASS_DEPTHNORMALSONLY			#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.core/ShaderLibrary/TextureStack.hlsl"			#include "Packages/com.unity.render-pipelines.universal/ShaderLibrary/ShaderGraphFunctions.hlsl"			#include "Packages/com.unity.render-pipelines.universal/Editor/ShaderGraph/Includes/ShaderPass.hlsl"        			#pragma shader_feature_local _DISSOLVETEXFLIP_ON			struct VertexInput			{				float4 vertex : POSITION;				float3 ase_normal : NORMAL;				float4 ase_texcoord : TEXCOORD0;				float4 ase_texcoord1 : TEXCOORD1;				float4 ase_color : COLOR;				UNITY_VERTEX_INPUT_INSTANCE_ID			};			struct VertexOutput			{				float4 clipPos : SV_POSITION;				float3 normalWS : TEXCOORD0;				float4 ase_texcoord1 : TEXCOORD1;				float4 ase_texcoord2 : TEXCOORD2;				float4 ase_color : COLOR;				UNITY_VERTEX_INPUT_INSTANCE_ID				UNITY_VERTEX_OUTPUT_STEREO			};        			CBUFFER_START(UnityPerMaterial)			float4 _MainTex_ST;			float4 _MainTexChannel;			float4 _DissolveTex_ST;			float4 _MaskTex_ST;			float4 _Color;			float _ColorPower;			float _MainTexRotation;			float _CustomDataSwitch;			float _DissolvePower;			float _DissolveExpReversed;			float _DissolveSwitch;			float _OpacityPower;			float _RampDirection;			float _RampPower;			#ifdef TESSELLATION_ON				float _TessPhongStrength;				float _TessValue;				float _TessMin;				float _TessMax;				float _TessEdgeLength;				float _TessMaxDisp;			#endif			CBUFFER_END			sampler2D _MainTex;			sampler2D _DissolveTex;			sampler2D _MaskTex;			      			struct SurfaceDescription			{				float Alpha;				float AlphaClipThreshold;			};        			VertexOutput VertexFunction(VertexInput v  )			{				VertexOutput o;				ZERO_INITIALIZE(VertexOutput, o);				UNITY_SETUP_INSTANCE_ID(v);				UNITY_TRANSFER_INSTANCE_ID(v, o);				UNITY_INITIALIZE_VERTEX_OUTPUT_STEREO(o);				o.ase_texcoord1.xy = v.ase_texcoord.xy;				o.ase_texcoord2 = v.ase_texcoord1;				o.ase_color = v.ase_color;								//setting value to unused interpolator channels and avoid initialization warnings				o.ase_texcoord1.zw = 0;				#ifdef ASE_ABSOLUTE_VERTEX_POS					float3 defaultVertexValue = v.vertex.xyz;				#else					float3 defaultVertexValue = float3(0, 0, 0);				#endif				float3 vertexValue = defaultVertexValue;				#ifdef ASE_ABSOLUTE_VERTEX_POS					v.vertex.xyz = vertexValue;				#else					v.vertex.xyz += vertexValue;				#endif				v.ase_normal = v.ase_normal;				float3 positionWS = TransformObjectToWorld( v.vertex.xyz );				float3 normalWS = TransformObjectToWorldNormal(v.ase_normal);				o.clipPos = TransformWorldToHClip(positionWS);				o.normalWS.xyz =  normalWS;				return o;			}			#if defined(TESSELLATION_ON)			struct VertexControl			{				float4 vertex : INTERNALTESSPOS;				float3 ase_normal : 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 ( VertexInput v )			{				VertexControl o;				UNITY_SETUP_INSTANCE_ID(v);				UNITY_TRANSFER_INSTANCE_ID(v, o);				o.vertex = v.vertex;				o.ase_normal = v.ase_normal;				o.ase_texcoord = v.ase_texcoord;				o.ase_texcoord1 = v.ase_texcoord1;				o.ase_color = v.ase_color;				return o;			}			TessellationFactors TessellationFunction (InputPatch<VertexControl,3> v)			{				TessellationFactors o;				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(v[0].vertex, v[1].vertex, v[2].vertex, tessValue, tessMin, tessMax, GetObjectToWorldMatrix(), _WorldSpaceCameraPos );				#elif defined(ASE_LENGTH_TESSELLATION)				tf = EdgeLengthBasedTess(v[0].vertex, v[1].vertex, v[2].vertex, edgeLength, GetObjectToWorldMatrix(), _WorldSpaceCameraPos, _ScreenParams );				#elif defined(ASE_LENGTH_CULL_TESSELLATION)				tf = EdgeLengthBasedTessCull(v[0].vertex, v[1].vertex, v[2].vertex, edgeLength, tessMaxDisp, GetObjectToWorldMatrix(), _WorldSpaceCameraPos, _ScreenParams, unity_CameraWorldClipPlanes );				#endif				o.edge[0] = tf.x; o.edge[1] = tf.y; o.edge[2] = tf.z; o.inside = tf.w;				return o;			}			[domain("tri")]			[partitioning("fractional_odd")]			[outputtopology("triangle_cw")]			[patchconstantfunc("TessellationFunction")]			[outputcontrolpoints(3)]			VertexControl HullFunction(InputPatch<VertexControl, 3> patch, uint id : SV_OutputControlPointID)			{			   return patch[id];			}			[domain("tri")]			VertexOutput DomainFunction(TessellationFactors factors, OutputPatch<VertexControl, 3> patch, float3 bary : SV_DomainLocation)			{				VertexInput o = (VertexInput) 0;				o.vertex = patch[0].vertex * bary.x + patch[1].vertex * bary.y + patch[2].vertex * bary.z;				o.ase_normal = patch[0].ase_normal * bary.x + patch[1].ase_normal * bary.y + patch[2].ase_normal * bary.z;				o.ase_texcoord = patch[0].ase_texcoord * bary.x + patch[1].ase_texcoord * bary.y + patch[2].ase_texcoord * bary.z;				o.ase_texcoord1 = patch[0].ase_texcoord1 * bary.x + patch[1].ase_texcoord1 * bary.y + patch[2].ase_texcoord1 * bary.z;				o.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] = o.vertex.xyz - patch[i].ase_normal * (dot(o.vertex.xyz, patch[i].ase_normal) - dot(patch[i].vertex.xyz, patch[i].ase_normal));				float phongStrength = _TessPhongStrength;				o.vertex.xyz = phongStrength * (pp[0]*bary.x + pp[1]*bary.y + pp[2]*bary.z) + (1.0f-phongStrength) * o.vertex.xyz;				#endif				UNITY_TRANSFER_INSTANCE_ID(patch[0], o);				return VertexFunction(o);			}			#else			VertexOutput vert ( VertexInput v )			{				return VertexFunction( v );			}			#endif			half4 frag(VertexOutput IN ) : SV_TARGET			{				SurfaceDescription surfaceDescription = (SurfaceDescription)0;				float cos127 = cos( (0.0 + (_MainTexRotation - 0.0) * (( 2.0 * PI ) - 0.0) / (1.0 - 0.0)) );				float sin127 = sin( (0.0 + (_MainTexRotation - 0.0) * (( 2.0 * PI ) - 0.0) / (1.0 - 0.0)) );				float2 rotator127 = mul( IN.ase_texcoord1.xy - float2( 0.5,0.5 ) , float2x2( cos127 , -sin127 , sin127 , cos127 )) + float2( 0.5,0.5 );				float4 texCoord151 = IN.ase_texcoord2;				texCoord151.xy = IN.ase_texcoord2.xy * float2( 1,1 ) + float2( 0,0 );				float2 appendResult154 = (float2(texCoord151.z , texCoord151.w));				float2 uv_MainTex = IN.ase_texcoord1.xy * _MainTex_ST.xy + _MainTex_ST.zw;				float2 lerpResult157 = lerp( rotator127 , ( appendResult154 + uv_MainTex ) , round( _CustomDataSwitch ));				float4 tex2DNode33 = tex2D( _MainTex, lerpResult157 );				float4 break92 = ( tex2DNode33 * _MainTexChannel );				float clampResult94 = clamp( ( break92.r + break92.g + break92.b + break92.a ) , 0.0 , 1.0 );				float2 uv_DissolveTex = IN.ase_texcoord1.xy * _DissolveTex_ST.xy + _DissolveTex_ST.zw;				float4 texCoord145 = IN.ase_texcoord2;				texCoord145.xy = IN.ase_texcoord2.xy * float2( 1,1 ) + float2( 0,0 );				float2 appendResult143 = (float2(texCoord145.z , texCoord145.w));				float4 tex2DNode66 = tex2D( _DissolveTex, ( uv_DissolveTex + appendResult143 ) );				#ifdef _DISSOLVETEXFLIP_ON				float staticSwitch110 = ( 1.0 - tex2DNode66.r );				#else				float staticSwitch110 = tex2DNode66.r;				#endif				float4 texCoord111 = IN.ase_texcoord2;				texCoord111.xy = IN.ase_texcoord2.xy * float2( 1,1 ) + float2( 0,0 );				float clampResult120 = clamp( ( 1.0 - pow( ( 1.0 - pow( staticSwitch110 , _DissolvePower ) ) , (1.0 + (texCoord111.x - 0.0) * (_DissolveExpReversed - 1.0) / (1.0 - 0.0)) ) ) , 0.0 , 1.0 );				float4 texCoord122 = IN.ase_texcoord2;				texCoord122.xy = IN.ase_texcoord2.xy * float2( 1,1 ) + float2( 0,0 );				float clampResult124 = clamp( ( clampResult120 + (-1.0 + (texCoord122.x - 0.0) * (1.0 - -1.0) / (1.0 - 0.0)) ) , 0.0 , 1.0 );				float lerpResult147 = lerp( clampResult124 , 0.0 , round( _DissolveSwitch ));				float clampResult96 = clamp( ( clampResult94 - lerpResult147 ) , 0.0 , 1.0 );				float2 uv_MaskTex = IN.ase_texcoord1.xy * _MaskTex_ST.xy + _MaskTex_ST.zw;				float clampResult100 = clamp( ( clampResult96 * IN.ase_color.a * _OpacityPower * tex2D( _MaskTex, uv_MaskTex ).r ) , 0.0 , 1.0 );								surfaceDescription.Alpha = clampResult100;				surfaceDescription.AlphaClipThreshold = 0.5;				#if _ALPHATEST_ON					clip(surfaceDescription.Alpha - surfaceDescription.AlphaClipThreshold);				#endif				#ifdef LOD_FADE_CROSSFADE					LODDitheringTransition( IN.clipPos.xyz, unity_LODFade.x );				#endif				float3 normalWS = IN.normalWS;				return half4(NormalizeNormalPerPixel(normalWS), 0.0);			}        			ENDHLSL        }		        Pass        {			            Name "DepthNormalsOnly"            Tags { "LightMode"="DepthNormalsOnly" }        			ZTest LEqual			ZWrite On                			HLSLPROGRAM        			#pragma multi_compile_instancing			#define _RECEIVE_SHADOWS_OFF 1			#define ASE_SRP_VERSION 999999        			#pragma exclude_renderers glcore gles gles3 			#pragma vertex vert			#pragma fragment frag        			#define ATTRIBUTES_NEED_NORMAL			#define ATTRIBUTES_NEED_TANGENT			#define ATTRIBUTES_NEED_TEXCOORD1			#define VARYINGS_NEED_NORMAL_WS			#define VARYINGS_NEED_TANGENT_WS        			#define SHADERPASS SHADERPASS_DEPTHNORMALSONLY        			#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.core/ShaderLibrary/TextureStack.hlsl"			#include "Packages/com.unity.render-pipelines.universal/ShaderLibrary/ShaderGraphFunctions.hlsl"			#include "Packages/com.unity.render-pipelines.universal/Editor/ShaderGraph/Includes/ShaderPass.hlsl"        			#pragma shader_feature_local _DISSOLVETEXFLIP_ON			struct VertexInput			{				float4 vertex : POSITION;				float3 ase_normal : NORMAL;				float4 ase_texcoord : TEXCOORD0;				float4 ase_texcoord1 : TEXCOORD1;				float4 ase_color : COLOR;				UNITY_VERTEX_INPUT_INSTANCE_ID			};			struct VertexOutput			{				float4 clipPos : SV_POSITION;				float3 normalWS : TEXCOORD0;				float4 ase_texcoord1 : TEXCOORD1;				float4 ase_texcoord2 : TEXCOORD2;				float4 ase_color : COLOR;				UNITY_VERTEX_INPUT_INSTANCE_ID				UNITY_VERTEX_OUTPUT_STEREO			};        			CBUFFER_START(UnityPerMaterial)			float4 _MainTex_ST;			float4 _MainTexChannel;			float4 _DissolveTex_ST;			float4 _MaskTex_ST;			float4 _Color;			float _ColorPower;			float _MainTexRotation;			float _CustomDataSwitch;			float _DissolvePower;			float _DissolveExpReversed;			float _DissolveSwitch;			float _OpacityPower;			float _RampDirection;			float _RampPower;			#ifdef TESSELLATION_ON				float _TessPhongStrength;				float _TessValue;				float _TessMin;				float _TessMax;				float _TessEdgeLength;				float _TessMaxDisp;			#endif			CBUFFER_END			sampler2D _MainTex;			sampler2D _DissolveTex;			sampler2D _MaskTex;						struct SurfaceDescription			{				float Alpha;				float AlphaClipThreshold;			};      			VertexOutput VertexFunction(VertexInput v  )			{				VertexOutput o;				ZERO_INITIALIZE(VertexOutput, o);				UNITY_SETUP_INSTANCE_ID(v);				UNITY_TRANSFER_INSTANCE_ID(v, o);				UNITY_INITIALIZE_VERTEX_OUTPUT_STEREO(o);				o.ase_texcoord1.xy = v.ase_texcoord.xy;				o.ase_texcoord2 = v.ase_texcoord1;				o.ase_color = v.ase_color;								//setting value to unused interpolator channels and avoid initialization warnings				o.ase_texcoord1.zw = 0;				#ifdef ASE_ABSOLUTE_VERTEX_POS					float3 defaultVertexValue = v.vertex.xyz;				#else					float3 defaultVertexValue = float3(0, 0, 0);				#endif				float3 vertexValue = defaultVertexValue;				#ifdef ASE_ABSOLUTE_VERTEX_POS					v.vertex.xyz = vertexValue;				#else					v.vertex.xyz += vertexValue;				#endif				v.ase_normal = v.ase_normal;				float3 positionWS = TransformObjectToWorld( v.vertex.xyz );				float3 normalWS = TransformObjectToWorldNormal(v.ase_normal);				o.clipPos = TransformWorldToHClip(positionWS);				o.normalWS.xyz =  normalWS;				return o;			}			#if defined(TESSELLATION_ON)			struct VertexControl			{				float4 vertex : INTERNALTESSPOS;				float3 ase_normal : 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 ( VertexInput v )			{				VertexControl o;				UNITY_SETUP_INSTANCE_ID(v);				UNITY_TRANSFER_INSTANCE_ID(v, o);				o.vertex = v.vertex;				o.ase_normal = v.ase_normal;				o.ase_texcoord = v.ase_texcoord;				o.ase_texcoord1 = v.ase_texcoord1;				o.ase_color = v.ase_color;				return o;			}			TessellationFactors TessellationFunction (InputPatch<VertexControl,3> v)			{				TessellationFactors o;				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(v[0].vertex, v[1].vertex, v[2].vertex, tessValue, tessMin, tessMax, GetObjectToWorldMatrix(), _WorldSpaceCameraPos );				#elif defined(ASE_LENGTH_TESSELLATION)				tf = EdgeLengthBasedTess(v[0].vertex, v[1].vertex, v[2].vertex, edgeLength, GetObjectToWorldMatrix(), _WorldSpaceCameraPos, _ScreenParams );				#elif defined(ASE_LENGTH_CULL_TESSELLATION)				tf = EdgeLengthBasedTessCull(v[0].vertex, v[1].vertex, v[2].vertex, edgeLength, tessMaxDisp, GetObjectToWorldMatrix(), _WorldSpaceCameraPos, _ScreenParams, unity_CameraWorldClipPlanes );				#endif				o.edge[0] = tf.x; o.edge[1] = tf.y; o.edge[2] = tf.z; o.inside = tf.w;				return o;			}			[domain("tri")]			[partitioning("fractional_odd")]			[outputtopology("triangle_cw")]			[patchconstantfunc("TessellationFunction")]			[outputcontrolpoints(3)]			VertexControl HullFunction(InputPatch<VertexControl, 3> patch, uint id : SV_OutputControlPointID)			{			   return patch[id];			}			[domain("tri")]			VertexOutput DomainFunction(TessellationFactors factors, OutputPatch<VertexControl, 3> patch, float3 bary : SV_DomainLocation)			{				VertexInput o = (VertexInput) 0;				o.vertex = patch[0].vertex * bary.x + patch[1].vertex * bary.y + patch[2].vertex * bary.z;				o.ase_normal = patch[0].ase_normal * bary.x + patch[1].ase_normal * bary.y + patch[2].ase_normal * bary.z;				o.ase_texcoord = patch[0].ase_texcoord * bary.x + patch[1].ase_texcoord * bary.y + patch[2].ase_texcoord * bary.z;				o.ase_texcoord1 = patch[0].ase_texcoord1 * bary.x + patch[1].ase_texcoord1 * bary.y + patch[2].ase_texcoord1 * bary.z;				o.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] = o.vertex.xyz - patch[i].ase_normal * (dot(o.vertex.xyz, patch[i].ase_normal) - dot(patch[i].vertex.xyz, patch[i].ase_normal));				float phongStrength = _TessPhongStrength;				o.vertex.xyz = phongStrength * (pp[0]*bary.x + pp[1]*bary.y + pp[2]*bary.z) + (1.0f-phongStrength) * o.vertex.xyz;				#endif				UNITY_TRANSFER_INSTANCE_ID(patch[0], o);				return VertexFunction(o);			}			#else			VertexOutput vert ( VertexInput v )			{				return VertexFunction( v );			}			#endif			half4 frag(VertexOutput IN ) : SV_TARGET			{				SurfaceDescription surfaceDescription = (SurfaceDescription)0;				float cos127 = cos( (0.0 + (_MainTexRotation - 0.0) * (( 2.0 * PI ) - 0.0) / (1.0 - 0.0)) );				float sin127 = sin( (0.0 + (_MainTexRotation - 0.0) * (( 2.0 * PI ) - 0.0) / (1.0 - 0.0)) );				float2 rotator127 = mul( IN.ase_texcoord1.xy - float2( 0.5,0.5 ) , float2x2( cos127 , -sin127 , sin127 , cos127 )) + float2( 0.5,0.5 );				float4 texCoord151 = IN.ase_texcoord2;				texCoord151.xy = IN.ase_texcoord2.xy * float2( 1,1 ) + float2( 0,0 );				float2 appendResult154 = (float2(texCoord151.z , texCoord151.w));				float2 uv_MainTex = IN.ase_texcoord1.xy * _MainTex_ST.xy + _MainTex_ST.zw;				float2 lerpResult157 = lerp( rotator127 , ( appendResult154 + uv_MainTex ) , round( _CustomDataSwitch ));				float4 tex2DNode33 = tex2D( _MainTex, lerpResult157 );				float4 break92 = ( tex2DNode33 * _MainTexChannel );				float clampResult94 = clamp( ( break92.r + break92.g + break92.b + break92.a ) , 0.0 , 1.0 );				float2 uv_DissolveTex = IN.ase_texcoord1.xy * _DissolveTex_ST.xy + _DissolveTex_ST.zw;				float4 texCoord145 = IN.ase_texcoord2;				texCoord145.xy = IN.ase_texcoord2.xy * float2( 1,1 ) + float2( 0,0 );				float2 appendResult143 = (float2(texCoord145.z , texCoord145.w));				float4 tex2DNode66 = tex2D( _DissolveTex, ( uv_DissolveTex + appendResult143 ) );				#ifdef _DISSOLVETEXFLIP_ON				float staticSwitch110 = ( 1.0 - tex2DNode66.r );				#else				float staticSwitch110 = tex2DNode66.r;				#endif				float4 texCoord111 = IN.ase_texcoord2;				texCoord111.xy = IN.ase_texcoord2.xy * float2( 1,1 ) + float2( 0,0 );				float clampResult120 = clamp( ( 1.0 - pow( ( 1.0 - pow( staticSwitch110 , _DissolvePower ) ) , (1.0 + (texCoord111.x - 0.0) * (_DissolveExpReversed - 1.0) / (1.0 - 0.0)) ) ) , 0.0 , 1.0 );				float4 texCoord122 = IN.ase_texcoord2;				texCoord122.xy = IN.ase_texcoord2.xy * float2( 1,1 ) + float2( 0,0 );				float clampResult124 = clamp( ( clampResult120 + (-1.0 + (texCoord122.x - 0.0) * (1.0 - -1.0) / (1.0 - 0.0)) ) , 0.0 , 1.0 );				float lerpResult147 = lerp( clampResult124 , 0.0 , round( _DissolveSwitch ));				float clampResult96 = clamp( ( clampResult94 - lerpResult147 ) , 0.0 , 1.0 );				float2 uv_MaskTex = IN.ase_texcoord1.xy * _MaskTex_ST.xy + _MaskTex_ST.zw;				float clampResult100 = clamp( ( clampResult96 * IN.ase_color.a * _OpacityPower * tex2D( _MaskTex, uv_MaskTex ).r ) , 0.0 , 1.0 );								surfaceDescription.Alpha = clampResult100;				surfaceDescription.AlphaClipThreshold = 0.5;								#if _ALPHATEST_ON					clip(surfaceDescription.Alpha - surfaceDescription.AlphaClipThreshold);				#endif				#ifdef LOD_FADE_CROSSFADE					LODDitheringTransition( IN.clipPos.xyz, unity_LODFade.x );				#endif				float3 normalWS = IN.normalWS;				return half4(NormalizeNormalPerPixel(normalWS), 0.0);			}			ENDHLSL        }			}		CustomEditor "UnityEditor.ShaderGraphUnlitGUI"	Fallback "Hidden/InternalErrorShader"	}/*ASEBEGINVersion=18935-2025;289;1322;697;7921.5;1055.287;7.141183;True;FalseNode;AmplifyShaderEditor.CommentaryNode;126;-4875.995,1831.975;Inherit;False;3098.323;877.6342;;22;70;66;104;110;76;73;118;119;120;122;123;121;124;105;77;112;113;111;143;144;145;148;溶解;1,1,1,1;0;0Node;AmplifyShaderEditor.TextureCoordinatesNode;145;-4800.079,2289.925;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;4Node;AmplifyShaderEditor.TextureCoordinatesNode;105;-4747.35,1943.516;Inherit;False;0;66;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;4Node;AmplifyShaderEditor.DynamicAppendNode;143;-4511.478,2364.026;Inherit;False;FLOAT2;4;0;FLOAT;0;False;1;FLOAT;0;False;2;FLOAT;0;False;3;FLOAT;0;False;1;FLOAT2;0Node;AmplifyShaderEditor.SimpleAddOpNode;144;-4341.179,2271.725;Inherit;False;2;2;0;FLOAT2;0,0;False;1;FLOAT2;0,0;False;1;FLOAT2;0Node;AmplifyShaderEditor.SamplerNode;66;-4177.373,2244.854;Inherit;True;Property;_DissolveTex;DissolveTex;10;0;Create;True;0;0;0;False;0;False;-1;893077602610eaf4e9b93d85a92b7323;893077602610eaf4e9b93d85a92b7323;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;4Node;AmplifyShaderEditor.OneMinusNode;70;-3860.163,2456.21;Inherit;True;1;0;FLOAT;0;False;1;FLOAT;0Node;AmplifyShaderEditor.CommentaryNode;133;-5117.183,591.9059;Inherit;False;942.2288;543.4;;5;131;128;129;130;127;贴图可旋转;1,1,1,1;0;0Node;AmplifyShaderEditor.CommentaryNode;150;-4809.542,1216.24;Inherit;False;808.6021;543.3561;Comment;6;156;155;154;153;152;151;数据流控制 uv 滚动;1,1,1,1;0;0Node;AmplifyShaderEditor.RangedFloatNode;76;-3608.553,2542.684;Inherit;False;Property;_DissolvePower;DissolvePower;11;0;Create;True;0;0;0;False;0;False;2;2;0;0;0;1;FLOAT;0Node;AmplifyShaderEditor.StaticSwitch;110;-3668.06,2247.026;Inherit;True;Property;_DissolveTexFlip;DissolveTexFlip;12;0;Create;True;0;0;0;False;0;False;0;0;0;True;;Toggle;2;Key0;Key1;Create;True;True;All;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;0Node;AmplifyShaderEditor.RangedFloatNode;128;-5067.183,864.8772;Inherit;False;Property;_MainTexRotation;贴图旋转;8;0;Create;False;0;0;0;False;0;False;0;0;0;1;0;1;FLOAT;0Node;AmplifyShaderEditor.PiNode;131;-4977.257,1024.907;Inherit;False;1;0;FLOAT;2;False;1;FLOAT;0Node;AmplifyShaderEditor.TextureCoordinatesNode;151;-4759.543,1266.24;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;4Node;AmplifyShaderEditor.TFHCRemapNode;130;-4737.256,854.9053;Inherit;True;5;0;FLOAT;0;False;1;FLOAT;0;False;2;FLOAT;1;False;3;FLOAT;0;False;4;FLOAT;1;False;1;FLOAT;0Node;AmplifyShaderEditor.DynamicAppendNode;154;-4493.837,1291.19;Inherit;False;FLOAT2;4;0;FLOAT;0;False;1;FLOAT;0;False;2;FLOAT;0;False;3;FLOAT;0;False;1;FLOAT2;0Node;AmplifyShaderEditor.TextureCoordinatesNode;152;-4518.183,1462.2;Inherit;False;0;33;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;4Node;AmplifyShaderEditor.RangedFloatNode;153;-4544.935,1646.451;Inherit;False;Property;_CustomDataSwitch;数据流控制UVMove;14;0;Create;False;0;0;0;False;0;False;0;1;0;1;0;1;FLOAT;0Node;AmplifyShaderEditor.TexCoordVertexDataNode;129;-4806.257,641.9059;Inherit;False;0;2;0;5;FLOAT2;0;FLOAT;1;FLOAT;2;FLOAT;3;FLOAT;4Node;AmplifyShaderEditor.RangedFloatNode;113;-3352.471,2094.233;Inherit;False;Property;_DissolveExpReversed;DissolveExpReversed;13;0;Create;True;0;0;0;False;0;False;2;2;0;0;0;1;FLOAT;0Node;AmplifyShaderEditor.PowerNode;73;-3383.055,2264.603;Inherit;True;False;2;0;FLOAT;0;False;1;FLOAT;1;False;1;FLOAT;0Node;AmplifyShaderEditor.TextureCoordinatesNode;111;-3403.592,1881.975;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;4Node;AmplifyShaderEditor.OneMinusNode;77;-3152.935,2259.332;Inherit;True;1;0;FLOAT;0;False;1;FLOAT;0Node;AmplifyShaderEditor.SimpleAddOpNode;156;-4294.285,1293.563;Inherit;False;2;2;0;FLOAT2;0,0;False;1;FLOAT2;0,0;False;1;FLOAT2;0Node;AmplifyShaderEditor.TFHCRemapNode;112;-3093.471,1998.233;Inherit;True;5;0;FLOAT;0;False;1;FLOAT;0;False;2;FLOAT;1;False;3;FLOAT;1;False;4;FLOAT;2;False;1;FLOAT;0Node;AmplifyShaderEditor.RotatorNode;127;-4451.155,671.3196;Inherit;True;3;0;FLOAT2;0,0;False;1;FLOAT2;0.5,0.5;False;2;FLOAT;0;False;1;FLOAT2;0Node;AmplifyShaderEditor.RoundOpNode;155;-4152.941,1496.651;Inherit;False;1;0;FLOAT;0;False;1;FLOAT;0Node;AmplifyShaderEditor.PowerNode;118;-2754.471,2113.233;Inherit;True;False;2;0;FLOAT;0;False;1;FLOAT;5.47;False;1;FLOAT;0Node;AmplifyShaderEditor.LerpOp;157;-3439.591,1139.371;Inherit;True;3;0;FLOAT2;0,0;False;1;FLOAT2;0,0;False;2;FLOAT;0;False;1;FLOAT2;0Node;AmplifyShaderEditor.CommentaryNode;95;-2913.277,1229.688;Inherit;False;1134.653;571.8313;;6;93;94;92;33;90;91;贴图通道选择;1,1,1,1;0;0Node;AmplifyShaderEditor.Vector4Node;91;-2774.394,1592.519;Inherit;False;Property;_MainTexChannel;不透明通道选择;7;0;Create;False;0;0;0;False;0;False;1,0,0,0;1,0,0,0;0;5;FLOAT4;0;FLOAT;1;FLOAT;2;FLOAT;3;FLOAT;4Node;AmplifyShaderEditor.TextureCoordinatesNode;122;-2717.471,2424.233;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;4Node;AmplifyShaderEditor.OneMinusNode;119;-2506.471,2121.233;Inherit;True;1;0;FLOAT;0;False;1;FLOAT;0Node;AmplifyShaderEditor.SamplerNode;33;-2863.277,1279.688;Inherit;True;Property;_MainTex;MainTex;6;0;Create;True;0;0;0;False;0;False;-1;None;7211a0f9fb965394c9b04af1d9382b87;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;4Node;AmplifyShaderEditor.ClampOpNode;120;-2323.471,2135.233;Inherit;False;3;0;FLOAT;0;False;1;FLOAT;0;False;2;FLOAT;1;False;1;FLOAT;0Node;AmplifyShaderEditor.SimpleMultiplyOpNode;90;-2416.207,1482.177;Inherit;False;2;2;0;COLOR;0,0,0,0;False;1;FLOAT4;0,0,0,0;False;1;COLOR;0Node;AmplifyShaderEditor.TFHCRemapNode;123;-2494.471,2408.233;Inherit;True;5;0;FLOAT;0;False;1;FLOAT;0;False;2;FLOAT;1;False;3;FLOAT;-1;False;4;FLOAT;1;False;1;FLOAT;0Node;AmplifyShaderEditor.SimpleAddOpNode;121;-2166.471,2203.233;Inherit;True;2;2;0;FLOAT;0;False;1;FLOAT;0;False;1;FLOAT;0Node;AmplifyShaderEditor.BreakToComponentsNode;92;-2256.64,1500.76;Inherit;False;COLOR;1;0;COLOR;0,0,0,0;False;16;FLOAT;0;FLOAT;1;FLOAT;2;FLOAT;3;FLOAT;4;FLOAT;5;FLOAT;6;FLOAT;7;FLOAT;8;FLOAT;9;FLOAT;10;FLOAT;11;FLOAT;12;FLOAT;13;FLOAT;14;FLOAT;15Node;AmplifyShaderEditor.RangedFloatNode;148;-2067.487,2615.879;Inherit;False;Property;_DissolveSwitch;溶解开关;9;0;Create;False;0;0;0;False;0;False;0;1;0;1;0;1;FLOAT;0Node;AmplifyShaderEditor.ClampOpNode;124;-1948.471,2213.233;Inherit;False;3;0;FLOAT;0;False;1;FLOAT;0;False;2;FLOAT;1;False;1;FLOAT;0Node;AmplifyShaderEditor.RangedFloatNode;146;-1928.465,2459.247;Inherit;False;Constant;_Float0;Float 0;13;0;Create;True;0;0;0;False;0;False;0;0;0;0;0;1;FLOAT;0Node;AmplifyShaderEditor.RoundOpNode;149;-1799.889,2631.595;Inherit;False;1;0;FLOAT;0;False;1;FLOAT;0Node;AmplifyShaderEditor.SimpleAddOpNode;93;-2094.29,1499.512;Inherit;False;4;4;0;FLOAT;0;False;1;FLOAT;0;False;2;FLOAT;0;False;3;FLOAT;0;False;1;FLOAT;0Node;AmplifyShaderEditor.LerpOp;147;-1712.821,2304.973;Inherit;True;3;0;FLOAT;0;False;1;FLOAT;0;False;2;FLOAT;0;False;1;FLOAT;0Node;AmplifyShaderEditor.CommentaryNode;101;-1735.79,1605.399;Inherit;False;962.8287;607.9102;;7;72;96;97;98;99;100;158;不透明度;1,1,1,1;0;0Node;AmplifyShaderEditor.ClampOpNode;94;-1949.425,1504.508;Inherit;False;3;0;FLOAT;0;False;1;FLOAT;0;False;2;FLOAT;1;False;1;FLOAT;0Node;AmplifyShaderEditor.SimpleSubtractOpNode;72;-1685.79,1729.16;Inherit;True;2;0;FLOAT;0;False;1;FLOAT;0;False;1;FLOAT;0Node;AmplifyShaderEditor.RangedFloatNode;99;-1430.691,2097.91;Inherit;False;Property;_OpacityPower;OpacityPower;2;0;Create;True;0;0;0;False;0;False;1;2;0;0;0;1;FLOAT;0Node;AmplifyShaderEditor.SamplerNode;158;-1183.102,2026.195;Inherit;True;Property;_MaskTex;MaskTex;15;0;Create;True;0;0;0;False;0;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;4Node;AmplifyShaderEditor.ClampOpNode;96;-1422.582,1752.997;Inherit;False;3;0;FLOAT;0;False;1;FLOAT;0;False;2;FLOAT;1;False;1;FLOAT;0Node;AmplifyShaderEditor.VertexColorNode;98;-1453.28,1899.358;Inherit;False;0;5;COLOR;0;FLOAT;1;FLOAT;2;FLOAT;3;FLOAT;4Node;AmplifyShaderEditor.SimpleMultiplyOpNode;97;-1208.302,1827.955;Inherit;False;4;4;0;FLOAT;0;False;1;FLOAT;0;False;2;FLOAT;0;False;3;FLOAT;0;False;1;FLOAT;0Node;AmplifyShaderEditor.CommentaryNode;64;855.4103,754.5458;Inherit;False;1768.499;823.6578;;6;60;62;61;55;54;63;颜色;1,1,1,1;0;0Node;AmplifyShaderEditor.CommentaryNode;48;-1456.849,609.0362;Inherit;False;2008.187;511.4504;;8;34;38;39;41;44;6;40;35;渐变映射;1,1,1,1;0;0Node;AmplifyShaderEditor.VertexColorNode;61;2036.778,804.5458;Inherit;False;0;5;COLOR;0;FLOAT;1;FLOAT;2;FLOAT;3;FLOAT;4Node;AmplifyShaderEditor.SimpleMultiplyOpNode;63;2461.511,1052.647;Inherit;False;2;2;0;COLOR;0,0,0,0;False;1;COLOR;0,0,0,0;False;1;COLOR;0Node;AmplifyShaderEditor.OneMinusNode;41;-202.1538,795.8334;Inherit;False;1;0;FLOAT;0;False;1;FLOAT;0Node;AmplifyShaderEditor.OneMinusNode;38;-656.5423,731.3303;Inherit;True;1;0;FLOAT;0;False;1;FLOAT;0Node;AmplifyShaderEditor.SimpleMultiplyOpNode;60;2311.036,874.021;Inherit;False;2;2;0;COLOR;0,0,0,0;False;1;FLOAT;0;False;1;COLOR;0Node;AmplifyShaderEditor.ScaleAndOffsetNode;104;-4327.323,1956.321;Inherit;False;3;0;FLOAT;0;False;1;FLOAT;1;False;2;FLOAT;0;False;1;FLOAT;0Node;AmplifyShaderEditor.PowerNode;39;-430.9549,733.6354;Inherit;True;False;2;0;FLOAT;0;False;1;FLOAT;1;False;1;FLOAT;0Node;AmplifyShaderEditor.RangedFloatNode;35;-1375.335,1005.086;Inherit;False;Property;_RampDirection;RampDirection ;4;0;Create;True;0;0;0;False;0;False;0;0;0;1;0;1;FLOAT;0Node;AmplifyShaderEditor.ColorNode;55;930.9643,965.9161;Inherit;False;Property;_Color;Color;0;1;[HDR];Create;True;0;0;0;False;0;False;1,1,1,1;0.9811321,0.7788113,0.7349235,1;True;0;5;COLOR;0;FLOAT;1;FLOAT;2;FLOAT;3;FLOAT;4Node;AmplifyShaderEditor.SimpleMultiplyOpNode;54;1433.246,1019.538;Inherit;False;3;3;0;COLOR;0,0,0,0;False;1;COLOR;0,0,0,0;False;2;COLOR;0,0,0,0;False;1;COLOR;0Node;AmplifyShaderEditor.RangedFloatNode;62;1954.21,993.1076;Inherit;False;Property;_ColorPower;ColorPower;1;0;Create;True;0;0;0;False;0;False;1;3.5;0;20;0;1;FLOAT;0Node;AmplifyShaderEditor.SamplerNode;6;229.7377,659.0362;Inherit;True;Property;_Ramp;Ramp;3;0;Create;True;0;0;0;False;0;False;-1;None;6c4aa65523d00c149afe7e86612536d6;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;4Node;AmplifyShaderEditor.RangedFloatNode;40;-717.051,972.8342;Inherit;False;Property;_RampPower;RampPower;5;0;Create;True;0;0;0;False;0;False;1;0.76;0.2;8;0;1;FLOAT;0Node;AmplifyShaderEditor.ClampOpNode;100;-1026.761,1655.399;Inherit;True;3;0;FLOAT;0;False;1;FLOAT;0;False;2;FLOAT;1;False;1;FLOAT;0Node;AmplifyShaderEditor.DynamicAppendNode;44;37.04702,757.0352;Inherit;False;FLOAT2;4;0;FLOAT;0;False;1;FLOAT;0;False;2;FLOAT;0;False;3;FLOAT;0;False;1;FLOAT2;0Node;AmplifyShaderEditor.LerpOp;34;-976.3518,659.8109;Inherit;True;3;0;FLOAT;0;False;1;FLOAT;0;False;2;FLOAT;0;False;1;FLOAT;0Node;AmplifyShaderEditor.TemplateMultiPassMasterNode;138;3117.402,1672.419;Float;False;False;-1;2;UnityEditor.ShaderGraphUnlitGUI;0;3;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;-1;False;True;0;False;-1;False;False;False;False;False;False;False;False;False;True;False;255;False;-1;255;False;-1;255;False;-1;7;False;-1;1;False;-1;1;False;-1;1;False;-1;7;False;-1;1;False;-1;1;False;-1;1;False;-1;False;False;False;False;True;3;RenderPipeline=UniversalPipeline;RenderType=Opaque=RenderType;Queue=Geometry=Queue=0;True;2;True;17;d3d9;d3d11;glcore;gles;gles3;metal;vulkan;xbox360;xboxone;xboxseries;ps4;playstation;psp2;n3ds;wiiu;switch;nomrt;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;-1;True;3;False;-1;False;True;1;LightMode=DepthNormalsOnly;False;True;15;d3d9;d3d11_9x;d3d11;metal;vulkan;xbox360;xboxone;xboxseries;ps4;playstation;psp2;n3ds;wiiu;switch;nomrt;0;Hidden/InternalErrorShader;0;0;Standard;0;False;0Node;AmplifyShaderEditor.TemplateMultiPassMasterNode;137;3117.402,1672.419;Float;False;False;-1;2;UnityEditor.ShaderGraphUnlitGUI;0;3;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;-1;False;True;0;False;-1;False;False;False;False;False;False;False;False;False;True;False;255;False;-1;255;False;-1;255;False;-1;7;False;-1;1;False;-1;1;False;-1;1;False;-1;7;False;-1;1;False;-1;1;False;-1;1;False;-1;False;False;False;False;True;3;RenderPipeline=UniversalPipeline;RenderType=Opaque=RenderType;Queue=Geometry=Queue=0;True;2;True;17;d3d9;d3d11;glcore;gles;gles3;metal;vulkan;xbox360;xboxone;xboxseries;ps4;playstation;psp2;n3ds;wiiu;switch;nomrt;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;-1;True;3;False;-1;False;True;1;LightMode=DepthNormalsOnly;False;True;4;d3d11;glcore;gles;gles3;0;Hidden/InternalErrorShader;0;0;Standard;0;False;0Node;AmplifyShaderEditor.TemplateMultiPassMasterNode;135;3117.402,1672.419;Float;False;False;-1;2;UnityEditor.ShaderGraphUnlitGUI;0;3;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;-1;False;True;0;False;-1;False;False;False;False;False;False;False;False;False;True;False;255;False;-1;255;False;-1;255;False;-1;7;False;-1;1;False;-1;1;False;-1;1;False;-1;7;False;-1;1;False;-1;1;False;-1;1;False;-1;False;False;False;False;True;3;RenderPipeline=UniversalPipeline;RenderType=Opaque=RenderType;Queue=Geometry=Queue=0;True;2;True;17;d3d9;d3d11;glcore;gles;gles3;metal;vulkan;xbox360;xboxone;xboxseries;ps4;playstation;psp2;n3ds;wiiu;switch;nomrt;0;False;False;False;False;False;False;False;False;False;False;False;False;False;False;True;2;False;-1;False;False;False;False;False;False;False;False;False;False;False;False;False;False;True;1;LightMode=SceneSelectionPass;False;True;4;d3d11;glcore;gles;gles3;0;Hidden/InternalErrorShader;0;0;Standard;0;False;0Node;AmplifyShaderEditor.TemplateMultiPassMasterNode;4;0,0;Float;False;False;-1;2;UnityEditor.ShaderGraphUnlitGUI;0;3;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;-1;False;True;0;False;-1;False;False;False;False;False;False;False;False;False;True;False;255;False;-1;255;False;-1;255;False;-1;7;False;-1;1;False;-1;1;False;-1;1;False;-1;7;False;-1;1;False;-1;1;False;-1;1;False;-1;False;False;False;False;True;3;RenderPipeline=UniversalPipeline;RenderType=Opaque=RenderType;Queue=Geometry=Queue=0;True;2;True;17;d3d9;d3d11;glcore;gles;gles3;metal;vulkan;xbox360;xboxone;xboxseries;ps4;playstation;psp2;n3ds;wiiu;switch;nomrt;0;False;False;False;False;False;False;False;False;False;False;False;False;False;False;True;2;False;-1;False;False;False;False;False;False;False;False;False;False;False;False;False;False;True;1;LightMode=Meta;False;False;0;Hidden/InternalErrorShader;0;0;Standard;0;False;0Node;AmplifyShaderEditor.TemplateMultiPassMasterNode;2;0,0;Float;False;False;-1;2;UnityEditor.ShaderGraphUnlitGUI;0;3;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;-1;False;True;0;False;-1;False;False;False;False;False;False;False;False;False;True;False;255;False;-1;255;False;-1;255;False;-1;7;False;-1;1;False;-1;1;False;-1;1;False;-1;7;False;-1;1;False;-1;1;False;-1;1;False;-1;False;False;False;False;True;3;RenderPipeline=UniversalPipeline;RenderType=Opaque=RenderType;Queue=Geometry=Queue=0;True;2;True;17;d3d9;d3d11;glcore;gles;gles3;metal;vulkan;xbox360;xboxone;xboxseries;ps4;playstation;psp2;n3ds;wiiu;switch;nomrt;0;False;False;False;False;False;False;False;False;False;False;False;False;True;0;False;-1;False;False;False;True;False;False;False;False;0;False;-1;False;False;False;False;False;False;False;False;False;True;1;False;-1;True;3;False;-1;False;True;1;LightMode=ShadowCaster;False;False;0;Hidden/InternalErrorShader;0;0;Standard;0;False;0Node;AmplifyShaderEditor.TemplateMultiPassMasterNode;134;3117.402,1672.419;Float;False;False;-1;2;UnityEditor.ShaderGraphUnlitGUI;0;3;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;-1;False;True;0;False;-1;False;False;False;False;False;False;False;False;False;True;False;255;False;-1;255;False;-1;255;False;-1;7;False;-1;1;False;-1;1;False;-1;1;False;-1;7;False;-1;1;False;-1;1;False;-1;1;False;-1;False;False;False;False;True;3;RenderPipeline=UniversalPipeline;RenderType=Opaque=RenderType;Queue=Geometry=Queue=0;True;2;True;17;d3d9;d3d11;glcore;gles;gles3;metal;vulkan;xbox360;xboxone;xboxseries;ps4;playstation;psp2;n3ds;wiiu;switch;nomrt;0;False;True;1;5;False;-1;10;False;-1;1;1;False;-1;10;False;-1;False;False;False;False;False;False;False;False;False;False;False;False;False;False;True;True;True;True;True;0;False;-1;False;False;False;False;False;False;False;True;False;255;False;-1;255;False;-1;255;False;-1;7;False;-1;1;False;-1;1;False;-1;1;False;-1;7;False;-1;1;False;-1;1;False;-1;1;False;-1;False;True;2;False;-1;True;3;False;-1;True;True;-1;False;-1;0;False;-1;True;1;LightMode=Universal2D;False;False;0;Hidden/InternalErrorShader;0;0;Standard;0;False;0Node;AmplifyShaderEditor.TemplateMultiPassMasterNode;0;0,0;Float;False;False;-1;2;UnityEditor.ShaderGraphUnlitGUI;0;3;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;-1;False;True;0;False;-1;False;False;False;False;False;False;False;False;False;True;False;255;False;-1;255;False;-1;255;False;-1;7;False;-1;1;False;-1;1;False;-1;1;False;-1;7;False;-1;1;False;-1;1;False;-1;1;False;-1;False;False;False;False;True;3;RenderPipeline=UniversalPipeline;RenderType=Opaque=RenderType;Queue=Geometry=Queue=0;True;2;True;17;d3d9;d3d11;glcore;gles;gles3;metal;vulkan;xbox360;xboxone;xboxseries;ps4;playstation;psp2;n3ds;wiiu;switch;nomrt;0;False;True;1;1;False;-1;0;False;-1;0;1;False;-1;0;False;-1;False;False;False;False;False;False;False;False;False;False;False;False;True;0;False;-1;False;True;True;True;True;True;0;False;-1;False;False;False;False;False;False;False;True;False;255;False;-1;255;False;-1;255;False;-1;7;False;-1;1;False;-1;1;False;-1;1;False;-1;7;False;-1;1;False;-1;1;False;-1;1;False;-1;False;True;1;False;-1;True;3;False;-1;True;True;0;False;-1;0;False;-1;True;0;False;False;0;Hidden/InternalErrorShader;0;0;Standard;0;False;0Node;AmplifyShaderEditor.TemplateMultiPassMasterNode;3;0,0;Float;False;False;-1;2;UnityEditor.ShaderGraphUnlitGUI;0;3;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;-1;False;True;0;False;-1;False;False;False;False;False;False;False;False;False;True;False;255;False;-1;255;False;-1;255;False;-1;7;False;-1;1;False;-1;1;False;-1;1;False;-1;7;False;-1;1;False;-1;1;False;-1;1;False;-1;False;False;False;False;True;3;RenderPipeline=UniversalPipeline;RenderType=Opaque=RenderType;Queue=Geometry=Queue=0;True;2;True;17;d3d9;d3d11;glcore;gles;gles3;metal;vulkan;xbox360;xboxone;xboxseries;ps4;playstation;psp2;n3ds;wiiu;switch;nomrt;0;False;False;False;False;False;False;False;False;False;False;False;False;True;0;False;-1;False;False;False;True;False;False;False;False;0;False;-1;False;False;False;False;False;False;False;False;False;True;1;False;-1;False;False;True;1;LightMode=DepthOnly;False;False;0;Hidden/InternalErrorShader;0;0;Standard;0;False;0Node;AmplifyShaderEditor.TemplateMultiPassMasterNode;136;3117.402,1672.419;Float;False;False;-1;2;UnityEditor.ShaderGraphUnlitGUI;0;3;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;-1;False;True;0;False;-1;False;False;False;False;False;False;False;False;False;True;False;255;False;-1;255;False;-1;255;False;-1;7;False;-1;1;False;-1;1;False;-1;1;False;-1;7;False;-1;1;False;-1;1;False;-1;1;False;-1;False;False;False;False;True;3;RenderPipeline=UniversalPipeline;RenderType=Opaque=RenderType;Queue=Geometry=Queue=0;True;2;True;17;d3d9;d3d11;glcore;gles;gles3;metal;vulkan;xbox360;xboxone;xboxseries;ps4;playstation;psp2;n3ds;wiiu;switch;nomrt;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;False;False;False;True;1;LightMode=Picking;False;True;4;d3d11;glcore;gles;gles3;0;Hidden/InternalErrorShader;0;0;Standard;0;False;0Node;AmplifyShaderEditor.TemplateMultiPassMasterNode;1;2983.416,1995.033;Float;False;True;-1;2;UnityEditor.ShaderGraphUnlitGUI;0;3;LT/DissolveSample;2992e84f91cbeb14eab234972e07ea9d;True;Forward;0;1;Forward;8;False;False;False;False;False;False;False;False;False;False;False;False;True;0;False;-1;False;True;2;False;-1;False;False;False;False;False;False;False;False;False;True;False;255;False;-1;255;False;-1;255;False;-1;7;False;-1;1;False;-1;1;False;-1;1;False;-1;7;False;-1;1;False;-1;1;False;-1;1;False;-1;False;False;False;False;True;3;RenderPipeline=UniversalPipeline;RenderType=Opaque=RenderType;Queue=Transparent=Queue=0;True;2;True;8;d3d9;d3d11;glcore;gles;gles3;metal;vulkan;nomrt;0;False;True;1;5;False;-1;10;False;-1;1;1;False;-1;10;False;-1;False;False;False;False;False;False;False;False;False;False;False;False;False;False;True;True;True;True;True;0;False;-1;False;False;False;False;False;False;False;True;False;255;False;-1;255;False;-1;255;False;-1;7;False;-1;1;False;-1;1;False;-1;1;False;-1;7;False;-1;1;False;-1;1;False;-1;1;False;-1;True;True;2;False;-1;True;3;False;-1;True;True;-1;False;-1;0;False;-1;True;2;LightMode=UniversalForward;=;False;False;0;Hidden/InternalErrorShader;0;0;Standard;22;Surface;1;637757611261979016;  Blend;0;0;Two Sided;0;637759134089118442;Cast Shadows;0;637757611280070069;  Use Shadow Threshold;0;0;Receive Shadows;0;637757611291408736;GPU Instancing;1;0;LOD CrossFade;0;0;Built-in Fog;0;0;DOTS Instancing;0;0;Meta Pass;0;0;Extra Pre Pass;0;0;Tessellation;0;0;  Phong;0;0;  Strength;0.5,False,-1;0;  Type;0;0;  Tess;16,False,-1;0;  Min;10,False,-1;0;  Max;25,False,-1;0;  Edge Length;16,False,-1;0;  Max Displacement;25,False,-1;0;Vertex Position,InvertActionOnDeselection;1;0;0;10;False;True;False;True;False;True;True;True;True;True;False;;False;0WireConnection;143;0;145;3WireConnection;143;1;145;4WireConnection;144;0;105;0WireConnection;144;1;143;0WireConnection;66;1;144;0WireConnection;70;0;66;1WireConnection;110;1;66;1WireConnection;110;0;70;0WireConnection;130;0;128;0WireConnection;130;4;131;0WireConnection;154;0;151;3WireConnection;154;1;151;4WireConnection;73;0;110;0WireConnection;73;1;76;0WireConnection;77;0;73;0WireConnection;156;0;154;0WireConnection;156;1;152;0WireConnection;112;0;111;1WireConnection;112;4;113;0WireConnection;127;0;129;0WireConnection;127;2;130;0WireConnection;155;0;153;0WireConnection;118;0;77;0WireConnection;118;1;112;0WireConnection;157;0;127;0WireConnection;157;1;156;0WireConnection;157;2;155;0WireConnection;119;0;118;0WireConnection;33;1;157;0WireConnection;120;0;119;0WireConnection;90;0;33;0WireConnection;90;1;91;0WireConnection;123;0;122;1WireConnection;121;0;120;0WireConnection;121;1;123;0WireConnection;92;0;90;0WireConnection;124;0;121;0WireConnection;149;0;148;0WireConnection;93;0;92;0WireConnection;93;1;92;1WireConnection;93;2;92;2WireConnection;93;3;92;3WireConnection;147;0;124;0WireConnection;147;1;146;0WireConnection;147;2;149;0WireConnection;94;0;93;0WireConnection;72;0;94;0WireConnection;72;1;147;0WireConnection;96;0;72;0WireConnection;97;0;96;0WireConnection;97;1;98;4WireConnection;97;2;99;0WireConnection;97;3;158;1WireConnection;63;0;60;0WireConnection;63;1;54;0WireConnection;41;0;39;0WireConnection;38;0;34;0WireConnection;60;0;61;0WireConnection;60;1;62;0WireConnection;39;0;38;0WireConnection;39;1;40;0WireConnection;54;0;6;0WireConnection;54;1;55;0WireConnection;54;2;33;0WireConnection;6;1;44;0WireConnection;100;0;97;0WireConnection;44;0;41;0WireConnection;34;0;94;0WireConnection;34;1;100;0WireConnection;34;2;35;0WireConnection;1;2;63;0WireConnection;1;3;100;0ASEEND*///CHKSM=FB3466C5E8C244B4FD598BF5C44537F73D3B81C2
 |