AlphaMoveTurbDissolve.shader 82 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563156415651566156715681569157015711572157315741575157615771578157915801581158215831584158515861587158815891590159115921593159415951596159715981599160016011602160316041605160616071608160916101611161216131614161516161617161816191620162116221623162416251626162716281629163016311632163316341635163616371638163916401641164216431644164516461647164816491650165116521653165416551656165716581659166016611662166316641665166616671668166916701671167216731674167516761677167816791680168116821683168416851686168716881689169016911692169316941695169616971698169917001701170217031704170517061707170817091710171117121713171417151716171717181719172017211722172317241725172617271728172917301731173217331734173517361737173817391740174117421743174417451746174717481749175017511752175317541755175617571758175917601761176217631764176517661767176817691770177117721773177417751776177717781779178017811782178317841785178617871788178917901791179217931794179517961797179817991800180118021803180418051806180718081809181018111812181318141815181618171818181918201821182218231824182518261827182818291830183118321833183418351836183718381839184018411842184318441845184618471848184918501851185218531854185518561857185818591860186118621863186418651866186718681869187018711872187318741875187618771878187918801881188218831884188518861887188818891890189118921893189418951896189718981899190019011902190319041905190619071908190919101911191219131914191519161917191819191920192119221923192419251926192719281929193019311932193319341935193619371938193919401941194219431944194519461947194819491950195119521953195419551956
  1. // Made with Amplify Shader Editor v1.9.8.1
  2. // Available at the Unity Asset Store - http://u3d.as/y3X
  3. Shader "LT/AlphaMoveTurbDissolve"
  4. {
  5. Properties
  6. {
  7. [HideInInspector] _EmissionColor("Emission Color", Color) = (1,1,1,1)
  8. [HideInInspector] _AlphaCutoff("Alpha Cutoff ", Range(0, 1)) = 0.5
  9. _CTime("_CTime", Float) = 1
  10. [HDR]_Main_Color("Main_Color", Color) = (1,1,1,1)
  11. _light("亮度", Float) = 1
  12. _Alpha("Alpha", Range( 0 , 1)) = 1
  13. _Main_Tex("Main_Tex", 2D) = "white" {}
  14. _Main_UV("Main_UV", Vector) = (0,0,0,0)
  15. _CustomDataMainUV("CustomDataMainUV", Range( 0 , 1)) = 0
  16. _Turb_Noise("Turb_Noise", 2D) = "white" {}
  17. _Turb_Value("Turb_Value", Float) = 0
  18. _Turb_UV("Turb_UV", Vector) = (0,0,0,0)
  19. _dissolve("dissolve", 2D) = "white" {}
  20. _Diss_value("Diss_value", Float) = 0
  21. _Soft_value("Soft_value", Float) = 0
  22. _CustomDataDissolve("CustomDataDissolve", Range( 0 , 1)) = 0
  23. _Diss_UV("Diss_UV", Vector) = (0,0,0,0)
  24. _Mask("Mask", 2D) = "white" {}
  25. _Mask_UV("Mask_UV", Vector) = (0,0,0,0)
  26. _ca("_ca", Float) = 1
  27. //_TessPhongStrength( "Tess Phong Strength", Range( 0, 1 ) ) = 0.5
  28. //_TessValue( "Tess Max Tessellation", Range( 1, 32 ) ) = 16
  29. //_TessMin( "Tess Min Distance", Float ) = 10
  30. //_TessMax( "Tess Max Distance", Float ) = 25
  31. //_TessEdgeLength ( "Tess Edge length", Range( 2, 50 ) ) = 16
  32. //_TessMaxDisp( "Tess Max Displacement", Float ) = 25
  33. [HideInInspector] _QueueOffset("_QueueOffset", Float) = 0
  34. [HideInInspector] _QueueControl("_QueueControl", Float) = -1
  35. [HideInInspector][NoScaleOffset] unity_Lightmaps("unity_Lightmaps", 2DArray) = "" {}
  36. [HideInInspector][NoScaleOffset] unity_LightmapsInd("unity_LightmapsInd", 2DArray) = "" {}
  37. [HideInInspector][NoScaleOffset] unity_ShadowMasks("unity_ShadowMasks", 2DArray) = "" {}
  38. [HideInInspector][ToggleOff] _ReceiveShadows("Receive Shadows", Float) = 1.0
  39. }
  40. SubShader
  41. {
  42. LOD 0
  43. Tags { "RenderPipeline"="UniversalPipeline" "RenderType"="Transparent" "Queue"="Transparent" "UniversalMaterialType"="Unlit" }
  44. Cull Off
  45. AlphaToMask Off
  46. HLSLINCLUDE
  47. #pragma target 4.5
  48. #pragma prefer_hlslcc gles
  49. #pragma exclude_renderers xboxone xboxseries playstation ps4 switch // ensure rendering platforms toggle list is visible
  50. #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/Common.hlsl"
  51. #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/Filtering.hlsl"
  52. #ifndef ASE_TESS_FUNCS
  53. #define ASE_TESS_FUNCS
  54. float4 FixedTess( float tessValue )
  55. {
  56. return tessValue;
  57. }
  58. float CalcDistanceTessFactor (float4 vertex, float minDist, float maxDist, float tess, float4x4 o2w, float3 cameraPos )
  59. {
  60. float3 wpos = mul(o2w,vertex).xyz;
  61. float dist = distance (wpos, cameraPos);
  62. float f = clamp(1.0 - (dist - minDist) / (maxDist - minDist), 0.01, 1.0) * tess;
  63. return f;
  64. }
  65. float4 CalcTriEdgeTessFactors (float3 triVertexFactors)
  66. {
  67. float4 tess;
  68. tess.x = 0.5 * (triVertexFactors.y + triVertexFactors.z);
  69. tess.y = 0.5 * (triVertexFactors.x + triVertexFactors.z);
  70. tess.z = 0.5 * (triVertexFactors.x + triVertexFactors.y);
  71. tess.w = (triVertexFactors.x + triVertexFactors.y + triVertexFactors.z) / 3.0f;
  72. return tess;
  73. }
  74. float CalcEdgeTessFactor (float3 wpos0, float3 wpos1, float edgeLen, float3 cameraPos, float4 scParams )
  75. {
  76. float dist = distance (0.5 * (wpos0+wpos1), cameraPos);
  77. float len = distance(wpos0, wpos1);
  78. float f = max(len * scParams.y / (edgeLen * dist), 1.0);
  79. return f;
  80. }
  81. float DistanceFromPlane (float3 pos, float4 plane)
  82. {
  83. float d = dot (float4(pos,1.0f), plane);
  84. return d;
  85. }
  86. bool WorldViewFrustumCull (float3 wpos0, float3 wpos1, float3 wpos2, float cullEps, float4 planes[6] )
  87. {
  88. float4 planeTest;
  89. planeTest.x = (( DistanceFromPlane(wpos0, planes[0]) > -cullEps) ? 1.0f : 0.0f ) +
  90. (( DistanceFromPlane(wpos1, planes[0]) > -cullEps) ? 1.0f : 0.0f ) +
  91. (( DistanceFromPlane(wpos2, planes[0]) > -cullEps) ? 1.0f : 0.0f );
  92. planeTest.y = (( DistanceFromPlane(wpos0, planes[1]) > -cullEps) ? 1.0f : 0.0f ) +
  93. (( DistanceFromPlane(wpos1, planes[1]) > -cullEps) ? 1.0f : 0.0f ) +
  94. (( DistanceFromPlane(wpos2, planes[1]) > -cullEps) ? 1.0f : 0.0f );
  95. planeTest.z = (( DistanceFromPlane(wpos0, planes[2]) > -cullEps) ? 1.0f : 0.0f ) +
  96. (( DistanceFromPlane(wpos1, planes[2]) > -cullEps) ? 1.0f : 0.0f ) +
  97. (( DistanceFromPlane(wpos2, planes[2]) > -cullEps) ? 1.0f : 0.0f );
  98. planeTest.w = (( DistanceFromPlane(wpos0, planes[3]) > -cullEps) ? 1.0f : 0.0f ) +
  99. (( DistanceFromPlane(wpos1, planes[3]) > -cullEps) ? 1.0f : 0.0f ) +
  100. (( DistanceFromPlane(wpos2, planes[3]) > -cullEps) ? 1.0f : 0.0f );
  101. return !all (planeTest);
  102. }
  103. float4 DistanceBasedTess( float4 v0, float4 v1, float4 v2, float tess, float minDist, float maxDist, float4x4 o2w, float3 cameraPos )
  104. {
  105. float3 f;
  106. f.x = CalcDistanceTessFactor (v0,minDist,maxDist,tess,o2w,cameraPos);
  107. f.y = CalcDistanceTessFactor (v1,minDist,maxDist,tess,o2w,cameraPos);
  108. f.z = CalcDistanceTessFactor (v2,minDist,maxDist,tess,o2w,cameraPos);
  109. return CalcTriEdgeTessFactors (f);
  110. }
  111. float4 EdgeLengthBasedTess( float4 v0, float4 v1, float4 v2, float edgeLength, float4x4 o2w, float3 cameraPos, float4 scParams )
  112. {
  113. float3 pos0 = mul(o2w,v0).xyz;
  114. float3 pos1 = mul(o2w,v1).xyz;
  115. float3 pos2 = mul(o2w,v2).xyz;
  116. float4 tess;
  117. tess.x = CalcEdgeTessFactor (pos1, pos2, edgeLength, cameraPos, scParams);
  118. tess.y = CalcEdgeTessFactor (pos2, pos0, edgeLength, cameraPos, scParams);
  119. tess.z = CalcEdgeTessFactor (pos0, pos1, edgeLength, cameraPos, scParams);
  120. tess.w = (tess.x + tess.y + tess.z) / 3.0f;
  121. return tess;
  122. }
  123. float4 EdgeLengthBasedTessCull( float4 v0, float4 v1, float4 v2, float edgeLength, float maxDisplacement, float4x4 o2w, float3 cameraPos, float4 scParams, float4 planes[6] )
  124. {
  125. float3 pos0 = mul(o2w,v0).xyz;
  126. float3 pos1 = mul(o2w,v1).xyz;
  127. float3 pos2 = mul(o2w,v2).xyz;
  128. float4 tess;
  129. if (WorldViewFrustumCull(pos0, pos1, pos2, maxDisplacement, planes))
  130. {
  131. tess = 0.0f;
  132. }
  133. else
  134. {
  135. tess.x = CalcEdgeTessFactor (pos1, pos2, edgeLength, cameraPos, scParams);
  136. tess.y = CalcEdgeTessFactor (pos2, pos0, edgeLength, cameraPos, scParams);
  137. tess.z = CalcEdgeTessFactor (pos0, pos1, edgeLength, cameraPos, scParams);
  138. tess.w = (tess.x + tess.y + tess.z) / 3.0f;
  139. }
  140. return tess;
  141. }
  142. #endif //ASE_TESS_FUNCS
  143. ENDHLSL
  144. Pass
  145. {
  146. Name "Forward"
  147. Tags { "LightMode"="UniversalForwardOnly" }
  148. Blend SrcAlpha OneMinusSrcAlpha, One OneMinusSrcAlpha
  149. ZWrite Off
  150. ZTest LEqual
  151. Offset 0 , 0
  152. ColorMask RGBA
  153. HLSLPROGRAM
  154. #pragma multi_compile_instancing
  155. #pragma instancing_options renderinglayer
  156. #define _SURFACE_TYPE_TRANSPARENT 1
  157. #define ASE_VERSION 19801
  158. #define ASE_SRP_VERSION 140011
  159. #pragma multi_compile_fragment _ _SCREEN_SPACE_OCCLUSION
  160. #pragma multi_compile_fragment _ _DBUFFER_MRT1 _DBUFFER_MRT2 _DBUFFER_MRT3
  161. #pragma multi_compile _ DIRLIGHTMAP_COMBINED
  162. #pragma multi_compile _ LIGHTMAP_ON
  163. #pragma multi_compile _ DYNAMICLIGHTMAP_ON
  164. #pragma multi_compile_fragment _ DEBUG_DISPLAY
  165. #pragma vertex vert
  166. #pragma fragment frag
  167. #define SHADERPASS SHADERPASS_UNLIT
  168. #if ASE_SRP_VERSION >=140007
  169. #include_with_pragmas "Packages/com.unity.render-pipelines.universal/ShaderLibrary/DOTS.hlsl"
  170. #endif
  171. #if ASE_SRP_VERSION >=140007
  172. #include_with_pragmas "Packages/com.unity.render-pipelines.universal/ShaderLibrary/RenderingLayers.hlsl"
  173. #endif
  174. #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/Color.hlsl"
  175. #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/Texture.hlsl"
  176. #include "Packages/com.unity.render-pipelines.universal/ShaderLibrary/Core.hlsl"
  177. #include "Packages/com.unity.render-pipelines.universal/ShaderLibrary/Lighting.hlsl"
  178. #include "Packages/com.unity.render-pipelines.universal/ShaderLibrary/Input.hlsl"
  179. #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/TextureStack.hlsl"
  180. #if ASE_SRP_VERSION >=140010
  181. #include_with_pragmas "Packages/com.unity.render-pipelines.core/ShaderLibrary/FoveatedRenderingKeywords.hlsl"
  182. #endif
  183. #include "Packages/com.unity.render-pipelines.universal/ShaderLibrary/ShaderGraphFunctions.hlsl"
  184. #include "Packages/com.unity.render-pipelines.universal/ShaderLibrary/DBuffer.hlsl"
  185. #include "Packages/com.unity.render-pipelines.universal/Editor/ShaderGraph/Includes/ShaderPass.hlsl"
  186. #include "Packages/com.unity.render-pipelines.universal/ShaderLibrary/Debug/Debugging3D.hlsl"
  187. #include "Packages/com.unity.render-pipelines.universal/ShaderLibrary/SurfaceData.hlsl"
  188. #if defined(LOD_FADE_CROSSFADE)
  189. #include "Packages/com.unity.render-pipelines.universal/ShaderLibrary/LODCrossFade.hlsl"
  190. #endif
  191. #define ASE_NEEDS_FRAG_COLOR
  192. #if defined(ASE_EARLY_Z_DEPTH_OPTIMIZE) && (SHADER_TARGET >= 45)
  193. #define ASE_SV_DEPTH SV_DepthLessEqual
  194. #define ASE_SV_POSITION_QUALIFIERS linear noperspective centroid
  195. #else
  196. #define ASE_SV_DEPTH SV_Depth
  197. #define ASE_SV_POSITION_QUALIFIERS
  198. #endif
  199. struct Attributes
  200. {
  201. float4 positionOS : POSITION;
  202. float3 normalOS : NORMAL;
  203. float4 texcoord : TEXCOORD0;
  204. float4 texcoord1 : TEXCOORD1;
  205. float4 texcoord2 : TEXCOORD2;
  206. float4 ase_color : COLOR;
  207. UNITY_VERTEX_INPUT_INSTANCE_ID
  208. };
  209. struct PackedVaryings
  210. {
  211. ASE_SV_POSITION_QUALIFIERS float4 positionCS : SV_POSITION;
  212. float4 clipPosV : TEXCOORD0;
  213. float3 positionWS : TEXCOORD1;
  214. #if defined(ASE_FOG) || defined(_ADDITIONAL_LIGHTS_VERTEX)
  215. half4 fogFactorAndVertexLight : TEXCOORD2;
  216. #endif
  217. #if defined(REQUIRES_VERTEX_SHADOW_COORD_INTERPOLATOR) && defined(ASE_NEEDS_FRAG_SHADOWCOORDS)
  218. float4 shadowCoord : TEXCOORD3;
  219. #endif
  220. #if defined(LIGHTMAP_ON)
  221. float4 lightmapUVOrVertexSH : TEXCOORD4;
  222. #endif
  223. #if defined(DYNAMICLIGHTMAP_ON)
  224. float2 dynamicLightmapUV : TEXCOORD5;
  225. #endif
  226. float4 ase_texcoord6 : TEXCOORD6;
  227. float4 ase_texcoord7 : TEXCOORD7;
  228. float4 ase_color : COLOR;
  229. UNITY_VERTEX_INPUT_INSTANCE_ID
  230. UNITY_VERTEX_OUTPUT_STEREO
  231. };
  232. CBUFFER_START(UnityPerMaterial)
  233. float4 _Mask_ST;
  234. float4 _dissolve_ST;
  235. float4 _Turb_Noise_ST;
  236. float4 _Main_Tex_ST;
  237. float4 _Main_Color;
  238. float2 _Diss_UV;
  239. float2 _Mask_UV;
  240. float2 _Turb_UV;
  241. float2 _Main_UV;
  242. float _ca;
  243. float _Diss_value;
  244. float _CustomDataDissolve;
  245. float _Soft_value;
  246. float _Turb_Value;
  247. float _CTime;
  248. float _Alpha;
  249. float _CustomDataMainUV;
  250. float _light;
  251. #ifdef ASE_TESSELLATION
  252. float _TessPhongStrength;
  253. float _TessValue;
  254. float _TessMin;
  255. float _TessMax;
  256. float _TessEdgeLength;
  257. float _TessMaxDisp;
  258. #endif
  259. CBUFFER_END
  260. sampler2D _Main_Tex;
  261. sampler2D _Turb_Noise;
  262. sampler2D _dissolve;
  263. sampler2D _Mask;
  264. PackedVaryings VertexFunction( Attributes input )
  265. {
  266. PackedVaryings output = (PackedVaryings)0;
  267. UNITY_SETUP_INSTANCE_ID(input);
  268. UNITY_TRANSFER_INSTANCE_ID(input, output);
  269. UNITY_INITIALIZE_VERTEX_OUTPUT_STEREO(output);
  270. output.ase_texcoord6.xy = input.texcoord.xy;
  271. output.ase_texcoord7 = input.texcoord1;
  272. output.ase_color = input.ase_color;
  273. //setting value to unused interpolator channels and avoid initialization warnings
  274. output.ase_texcoord6.zw = 0;
  275. #ifdef ASE_ABSOLUTE_VERTEX_POS
  276. float3 defaultVertexValue = input.positionOS.xyz;
  277. #else
  278. float3 defaultVertexValue = float3(0, 0, 0);
  279. #endif
  280. float3 vertexValue = defaultVertexValue;
  281. #ifdef ASE_ABSOLUTE_VERTEX_POS
  282. input.positionOS.xyz = vertexValue;
  283. #else
  284. input.positionOS.xyz += vertexValue;
  285. #endif
  286. input.normalOS = input.normalOS;
  287. VertexPositionInputs vertexInput = GetVertexPositionInputs( input.positionOS.xyz );
  288. #if defined(LIGHTMAP_ON)
  289. OUTPUT_LIGHTMAP_UV(input.texcoord1, unity_LightmapST, output.lightmapUVOrVertexSH.xy);
  290. #endif
  291. #if defined(DYNAMICLIGHTMAP_ON)
  292. output.dynamicLightmapUV.xy = input.texcoord2.xy * unity_DynamicLightmapST.xy + unity_DynamicLightmapST.zw;
  293. #endif
  294. #if defined(ASE_FOG) || defined(_ADDITIONAL_LIGHTS_VERTEX)
  295. output.fogFactorAndVertexLight = 0;
  296. #if defined(ASE_FOG) && !defined(_FOG_FRAGMENT)
  297. output.fogFactorAndVertexLight.x = ComputeFogFactor(vertexInput.positionCS.z);
  298. #endif
  299. #ifdef _ADDITIONAL_LIGHTS_VERTEX
  300. half3 vertexLight = VertexLighting( vertexInput.positionWS, normalInput.normalWS );
  301. output.fogFactorAndVertexLight.yzw = vertexLight;
  302. #endif
  303. #endif
  304. #if defined(REQUIRES_VERTEX_SHADOW_COORD_INTERPOLATOR) && defined(ASE_NEEDS_FRAG_SHADOWCOORDS)
  305. output.shadowCoord = GetShadowCoord( vertexInput );
  306. #endif
  307. output.positionCS = vertexInput.positionCS;
  308. output.clipPosV = vertexInput.positionCS;
  309. output.positionWS = vertexInput.positionWS;
  310. return output;
  311. }
  312. #if defined(ASE_TESSELLATION)
  313. struct VertexControl
  314. {
  315. float4 positionOS : INTERNALTESSPOS;
  316. float3 normalOS : NORMAL;
  317. float4 ase_color : COLOR;
  318. UNITY_VERTEX_INPUT_INSTANCE_ID
  319. };
  320. struct TessellationFactors
  321. {
  322. float edge[3] : SV_TessFactor;
  323. float inside : SV_InsideTessFactor;
  324. };
  325. VertexControl vert ( Attributes input )
  326. {
  327. VertexControl output;
  328. UNITY_SETUP_INSTANCE_ID(input);
  329. UNITY_TRANSFER_INSTANCE_ID(input, output);
  330. output.positionOS = input.positionOS;
  331. output.normalOS = input.normalOS;
  332. output.ase_color = input.ase_color;
  333. return output;
  334. }
  335. TessellationFactors TessellationFunction (InputPatch<VertexControl,3> input)
  336. {
  337. TessellationFactors output;
  338. float4 tf = 1;
  339. float tessValue = _TessValue; float tessMin = _TessMin; float tessMax = _TessMax;
  340. float edgeLength = _TessEdgeLength; float tessMaxDisp = _TessMaxDisp;
  341. #if defined(ASE_FIXED_TESSELLATION)
  342. tf = FixedTess( tessValue );
  343. #elif defined(ASE_DISTANCE_TESSELLATION)
  344. tf = DistanceBasedTess(input[0].positionOS, input[1].positionOS, input[2].positionOS, tessValue, tessMin, tessMax, GetObjectToWorldMatrix(), _WorldSpaceCameraPos );
  345. #elif defined(ASE_LENGTH_TESSELLATION)
  346. tf = EdgeLengthBasedTess(input[0].positionOS, input[1].positionOS, input[2].positionOS, edgeLength, GetObjectToWorldMatrix(), _WorldSpaceCameraPos, _ScreenParams );
  347. #elif defined(ASE_LENGTH_CULL_TESSELLATION)
  348. tf = EdgeLengthBasedTessCull(input[0].positionOS, input[1].positionOS, input[2].positionOS, edgeLength, tessMaxDisp, GetObjectToWorldMatrix(), _WorldSpaceCameraPos, _ScreenParams, unity_CameraWorldClipPlanes );
  349. #endif
  350. output.edge[0] = tf.x; output.edge[1] = tf.y; output.edge[2] = tf.z; output.inside = tf.w;
  351. return output;
  352. }
  353. [domain("tri")]
  354. [partitioning("fractional_odd")]
  355. [outputtopology("triangle_cw")]
  356. [patchconstantfunc("TessellationFunction")]
  357. [outputcontrolpoints(3)]
  358. VertexControl HullFunction(InputPatch<VertexControl, 3> patch, uint id : SV_OutputControlPointID)
  359. {
  360. return patch[id];
  361. }
  362. [domain("tri")]
  363. PackedVaryings DomainFunction(TessellationFactors factors, OutputPatch<VertexControl, 3> patch, float3 bary : SV_DomainLocation)
  364. {
  365. Attributes output = (Attributes) 0;
  366. output.positionOS = patch[0].positionOS * bary.x + patch[1].positionOS * bary.y + patch[2].positionOS * bary.z;
  367. output.normalOS = patch[0].normalOS * bary.x + patch[1].normalOS * bary.y + patch[2].normalOS * bary.z;
  368. output.ase_color = patch[0].ase_color * bary.x + patch[1].ase_color * bary.y + patch[2].ase_color * bary.z;
  369. #if defined(ASE_PHONG_TESSELLATION)
  370. float3 pp[3];
  371. for (int i = 0; i < 3; ++i)
  372. pp[i] = output.positionOS.xyz - patch[i].normalOS * (dot(output.positionOS.xyz, patch[i].normalOS) - dot(patch[i].positionOS.xyz, patch[i].normalOS));
  373. float phongStrength = _TessPhongStrength;
  374. output.positionOS.xyz = phongStrength * (pp[0]*bary.x + pp[1]*bary.y + pp[2]*bary.z) + (1.0f-phongStrength) * output.positionOS.xyz;
  375. #endif
  376. UNITY_TRANSFER_INSTANCE_ID(patch[0], output);
  377. return VertexFunction(output);
  378. }
  379. #else
  380. PackedVaryings vert ( Attributes input )
  381. {
  382. return VertexFunction( input );
  383. }
  384. #endif
  385. half4 frag ( PackedVaryings input
  386. #ifdef ASE_DEPTH_WRITE_ON
  387. ,out float outputDepth : ASE_SV_DEPTH
  388. #endif
  389. #ifdef _WRITE_RENDERING_LAYERS
  390. , out float4 outRenderingLayers : SV_Target1
  391. #endif
  392. ) : SV_Target
  393. {
  394. UNITY_SETUP_INSTANCE_ID(input);
  395. UNITY_SETUP_STEREO_EYE_INDEX_POST_VERTEX(input);
  396. #if defined(LOD_FADE_CROSSFADE)
  397. LODFadeCrossFade( input.positionCS );
  398. #endif
  399. float3 WorldPosition = input.positionWS;
  400. float3 WorldViewDirection = GetWorldSpaceNormalizeViewDir( WorldPosition );
  401. float4 ShadowCoords = float4( 0, 0, 0, 0 );
  402. float4 ClipPos = input.clipPosV;
  403. float4 ScreenPos = ComputeScreenPos( input.clipPosV );
  404. float2 NormalizedScreenSpaceUV = GetNormalizedScreenSpaceUV(input.positionCS);
  405. #if defined(ASE_NEEDS_FRAG_SHADOWCOORDS)
  406. #if defined(REQUIRES_VERTEX_SHADOW_COORD_INTERPOLATOR)
  407. ShadowCoords = input.shadowCoord;
  408. #elif defined(MAIN_LIGHT_CALCULATE_SHADOWS)
  409. ShadowCoords = TransformWorldToShadowCoord( WorldPosition );
  410. #endif
  411. #endif
  412. float2 uv_Turb_Noise = input.ase_texcoord6.xy * _Turb_Noise_ST.xy + _Turb_Noise_ST.zw;
  413. float2 panner12 = ( 1.0 * _Time.y * ( _Turb_UV * _CTime ) + uv_Turb_Noise);
  414. float2 uv_Main_Tex = input.ase_texcoord6.xy * _Main_Tex_ST.xy + _Main_Tex_ST.zw;
  415. float2 panner19 = ( 1.0 * _Time.y * _Main_UV + uv_Main_Tex);
  416. float4 texCoord45 = input.ase_texcoord7;
  417. texCoord45.xy = input.ase_texcoord7.xy * float2( 1,1 ) + float2( 0,0 );
  418. float2 appendResult44 = (float2(texCoord45.z , texCoord45.w));
  419. float2 lerpResult46 = lerp( panner19 , ( appendResult44 + uv_Main_Tex ) , round( _CustomDataMainUV ));
  420. float4 tex2DNode10 = tex2D( _Main_Tex, ( ( tex2D( _Turb_Noise, panner12 ).r * _Turb_Value ) + lerpResult46 ) );
  421. float4 texCoord48 = input.ase_texcoord7;
  422. texCoord48.xy = input.ase_texcoord7.xy * float2( 1,1 ) + float2( 0,0 );
  423. float lerpResult69 = lerp( _Diss_value , texCoord48.x , _CustomDataDissolve);
  424. float lerpResult50 = lerp( _Diss_value , texCoord48.x , round( _CustomDataDissolve ));
  425. float2 uv_dissolve = input.ase_texcoord6.xy * _dissolve_ST.xy + _dissolve_ST.zw;
  426. float2 panner31 = ( 1.0 * _Time.y * ( _Diss_UV * _CTime ) + uv_dissolve);
  427. float smoothstepResult33 = smoothstep( lerpResult69 , ( lerpResult50 + _Soft_value ) , tex2D( _dissolve, panner31 ).r);
  428. float2 uv_Mask = input.ase_texcoord6.xy * _Mask_ST.xy + _Mask_ST.zw;
  429. float2 panner65 = ( 1.0 * _Time.y * ( _Mask_UV * _CTime ) + uv_Mask);
  430. float3 BakedAlbedo = 0;
  431. float3 BakedEmission = 0;
  432. float3 Color = ( ( tex2DNode10 * _Main_Color * input.ase_color ) * _light ).rgb;
  433. float Alpha = ( _ca * ( smoothstepResult33 * _Alpha * tex2DNode10.a * input.ase_color.a * _Main_Color.a * tex2D( _Mask, panner65 ).r ) );
  434. float AlphaClipThreshold = 0.5;
  435. float AlphaClipThresholdShadow = 0.5;
  436. #ifdef ASE_DEPTH_WRITE_ON
  437. float DepthValue = input.positionCS.z;
  438. #endif
  439. #ifdef _ALPHATEST_ON
  440. clip(Alpha - AlphaClipThreshold);
  441. #endif
  442. InputData inputData = (InputData)0;
  443. inputData.positionWS = WorldPosition;
  444. inputData.viewDirectionWS = WorldViewDirection;
  445. #ifdef ASE_FOG
  446. inputData.fogCoord = InitializeInputDataFog(float4(inputData.positionWS, 1.0), input.fogFactorAndVertexLight.x);
  447. #endif
  448. #ifdef _ADDITIONAL_LIGHTS_VERTEX
  449. inputData.vertexLighting = input.fogFactorAndVertexLight.yzw;
  450. #endif
  451. inputData.normalizedScreenSpaceUV = NormalizedScreenSpaceUV;
  452. #if defined(_DBUFFER)
  453. ApplyDecalToBaseColor(input.positionCS, Color);
  454. #endif
  455. #ifdef ASE_FOG
  456. #ifdef TERRAIN_SPLAT_ADDPASS
  457. Color.rgb = MixFogColor(Color.rgb, half3(0,0,0), inputData.fogCoord);
  458. #else
  459. Color.rgb = MixFog(Color.rgb, inputData.fogCoord);
  460. #endif
  461. #endif
  462. #ifdef ASE_DEPTH_WRITE_ON
  463. outputDepth = DepthValue;
  464. #endif
  465. #ifdef _WRITE_RENDERING_LAYERS
  466. uint renderingLayers = GetMeshRenderingLayer();
  467. outRenderingLayers = float4( EncodeMeshRenderingLayer( renderingLayers ), 0, 0, 0 );
  468. #endif
  469. return half4( Color, Alpha );
  470. }
  471. ENDHLSL
  472. }
  473. Pass
  474. {
  475. Name "DepthOnly"
  476. Tags { "LightMode"="DepthOnly" }
  477. ZWrite On
  478. ColorMask 0
  479. AlphaToMask Off
  480. HLSLPROGRAM
  481. #pragma multi_compile_instancing
  482. #define _SURFACE_TYPE_TRANSPARENT 1
  483. #define ASE_VERSION 19801
  484. #define ASE_SRP_VERSION 140011
  485. #pragma vertex vert
  486. #pragma fragment frag
  487. #if ASE_SRP_VERSION >=140007
  488. #include_with_pragmas "Packages/com.unity.render-pipelines.universal/ShaderLibrary/DOTS.hlsl"
  489. #endif
  490. #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/Color.hlsl"
  491. #include "Packages/com.unity.render-pipelines.universal/ShaderLibrary/Core.hlsl"
  492. #include "Packages/com.unity.render-pipelines.universal/ShaderLibrary/Lighting.hlsl"
  493. #include "Packages/com.unity.render-pipelines.universal/ShaderLibrary/ShaderGraphFunctions.hlsl"
  494. #if defined(LOD_FADE_CROSSFADE)
  495. #include "Packages/com.unity.render-pipelines.universal/ShaderLibrary/LODCrossFade.hlsl"
  496. #endif
  497. #if defined(ASE_EARLY_Z_DEPTH_OPTIMIZE) && (SHADER_TARGET >= 45)
  498. #define ASE_SV_DEPTH SV_DepthLessEqual
  499. #define ASE_SV_POSITION_QUALIFIERS linear noperspective centroid
  500. #else
  501. #define ASE_SV_DEPTH SV_Depth
  502. #define ASE_SV_POSITION_QUALIFIERS
  503. #endif
  504. struct Attributes
  505. {
  506. float4 positionOS : POSITION;
  507. float3 normalOS : NORMAL;
  508. float4 ase_texcoord1 : TEXCOORD1;
  509. float4 ase_texcoord : TEXCOORD0;
  510. float4 ase_color : COLOR;
  511. UNITY_VERTEX_INPUT_INSTANCE_ID
  512. };
  513. struct PackedVaryings
  514. {
  515. ASE_SV_POSITION_QUALIFIERS float4 positionCS : SV_POSITION;
  516. float4 clipPosV : TEXCOORD0;
  517. #if defined(ASE_NEEDS_FRAG_WORLD_POSITION)
  518. float3 positionWS : TEXCOORD1;
  519. #endif
  520. #if defined(REQUIRES_VERTEX_SHADOW_COORD_INTERPOLATOR) && defined(ASE_NEEDS_FRAG_SHADOWCOORDS)
  521. float4 shadowCoord : TEXCOORD2;
  522. #endif
  523. float4 ase_texcoord3 : TEXCOORD3;
  524. float4 ase_texcoord4 : TEXCOORD4;
  525. float4 ase_color : COLOR;
  526. UNITY_VERTEX_INPUT_INSTANCE_ID
  527. UNITY_VERTEX_OUTPUT_STEREO
  528. };
  529. CBUFFER_START(UnityPerMaterial)
  530. float4 _Mask_ST;
  531. float4 _dissolve_ST;
  532. float4 _Turb_Noise_ST;
  533. float4 _Main_Tex_ST;
  534. float4 _Main_Color;
  535. float2 _Diss_UV;
  536. float2 _Mask_UV;
  537. float2 _Turb_UV;
  538. float2 _Main_UV;
  539. float _ca;
  540. float _Diss_value;
  541. float _CustomDataDissolve;
  542. float _Soft_value;
  543. float _Turb_Value;
  544. float _CTime;
  545. float _Alpha;
  546. float _CustomDataMainUV;
  547. float _light;
  548. #ifdef ASE_TESSELLATION
  549. float _TessPhongStrength;
  550. float _TessValue;
  551. float _TessMin;
  552. float _TessMax;
  553. float _TessEdgeLength;
  554. float _TessMaxDisp;
  555. #endif
  556. CBUFFER_END
  557. sampler2D _dissolve;
  558. sampler2D _Main_Tex;
  559. sampler2D _Turb_Noise;
  560. sampler2D _Mask;
  561. PackedVaryings VertexFunction( Attributes input )
  562. {
  563. PackedVaryings output = (PackedVaryings)0;
  564. UNITY_SETUP_INSTANCE_ID(input);
  565. UNITY_TRANSFER_INSTANCE_ID(input, output);
  566. UNITY_INITIALIZE_VERTEX_OUTPUT_STEREO(output);
  567. output.ase_texcoord3 = input.ase_texcoord1;
  568. output.ase_texcoord4.xy = input.ase_texcoord.xy;
  569. output.ase_color = input.ase_color;
  570. //setting value to unused interpolator channels and avoid initialization warnings
  571. output.ase_texcoord4.zw = 0;
  572. #ifdef ASE_ABSOLUTE_VERTEX_POS
  573. float3 defaultVertexValue = input.positionOS.xyz;
  574. #else
  575. float3 defaultVertexValue = float3(0, 0, 0);
  576. #endif
  577. float3 vertexValue = defaultVertexValue;
  578. #ifdef ASE_ABSOLUTE_VERTEX_POS
  579. input.positionOS.xyz = vertexValue;
  580. #else
  581. input.positionOS.xyz += vertexValue;
  582. #endif
  583. input.normalOS = input.normalOS;
  584. VertexPositionInputs vertexInput = GetVertexPositionInputs( input.positionOS.xyz );
  585. #if defined(ASE_NEEDS_FRAG_WORLD_POSITION)
  586. output.positionWS = vertexInput.positionWS;
  587. #endif
  588. #if defined(REQUIRES_VERTEX_SHADOW_COORD_INTERPOLATOR) && defined(ASE_NEEDS_FRAG_SHADOWCOORDS)
  589. output.shadowCoord = GetShadowCoord( vertexInput );
  590. #endif
  591. output.positionCS = vertexInput.positionCS;
  592. output.clipPosV = vertexInput.positionCS;
  593. return output;
  594. }
  595. #if defined(ASE_TESSELLATION)
  596. struct VertexControl
  597. {
  598. float4 positionOS : INTERNALTESSPOS;
  599. float3 normalOS : NORMAL;
  600. float4 ase_texcoord1 : TEXCOORD1;
  601. float4 ase_texcoord : TEXCOORD0;
  602. float4 ase_color : COLOR;
  603. UNITY_VERTEX_INPUT_INSTANCE_ID
  604. };
  605. struct TessellationFactors
  606. {
  607. float edge[3] : SV_TessFactor;
  608. float inside : SV_InsideTessFactor;
  609. };
  610. VertexControl vert ( Attributes input )
  611. {
  612. VertexControl output;
  613. UNITY_SETUP_INSTANCE_ID(input);
  614. UNITY_TRANSFER_INSTANCE_ID(input, output);
  615. output.positionOS = input.positionOS;
  616. output.normalOS = input.normalOS;
  617. output.ase_texcoord1 = input.ase_texcoord1;
  618. output.ase_texcoord = input.ase_texcoord;
  619. output.ase_color = input.ase_color;
  620. return output;
  621. }
  622. TessellationFactors TessellationFunction (InputPatch<VertexControl,3> input)
  623. {
  624. TessellationFactors output;
  625. float4 tf = 1;
  626. float tessValue = _TessValue; float tessMin = _TessMin; float tessMax = _TessMax;
  627. float edgeLength = _TessEdgeLength; float tessMaxDisp = _TessMaxDisp;
  628. #if defined(ASE_FIXED_TESSELLATION)
  629. tf = FixedTess( tessValue );
  630. #elif defined(ASE_DISTANCE_TESSELLATION)
  631. tf = DistanceBasedTess(input[0].positionOS, input[1].positionOS, input[2].positionOS, tessValue, tessMin, tessMax, GetObjectToWorldMatrix(), _WorldSpaceCameraPos );
  632. #elif defined(ASE_LENGTH_TESSELLATION)
  633. tf = EdgeLengthBasedTess(input[0].positionOS, input[1].positionOS, input[2].positionOS, edgeLength, GetObjectToWorldMatrix(), _WorldSpaceCameraPos, _ScreenParams );
  634. #elif defined(ASE_LENGTH_CULL_TESSELLATION)
  635. tf = EdgeLengthBasedTessCull(input[0].positionOS, input[1].positionOS, input[2].positionOS, edgeLength, tessMaxDisp, GetObjectToWorldMatrix(), _WorldSpaceCameraPos, _ScreenParams, unity_CameraWorldClipPlanes );
  636. #endif
  637. output.edge[0] = tf.x; output.edge[1] = tf.y; output.edge[2] = tf.z; output.inside = tf.w;
  638. return output;
  639. }
  640. [domain("tri")]
  641. [partitioning("fractional_odd")]
  642. [outputtopology("triangle_cw")]
  643. [patchconstantfunc("TessellationFunction")]
  644. [outputcontrolpoints(3)]
  645. VertexControl HullFunction(InputPatch<VertexControl, 3> patch, uint id : SV_OutputControlPointID)
  646. {
  647. return patch[id];
  648. }
  649. [domain("tri")]
  650. PackedVaryings DomainFunction(TessellationFactors factors, OutputPatch<VertexControl, 3> patch, float3 bary : SV_DomainLocation)
  651. {
  652. Attributes output = (Attributes) 0;
  653. output.positionOS = patch[0].positionOS * bary.x + patch[1].positionOS * bary.y + patch[2].positionOS * bary.z;
  654. output.normalOS = patch[0].normalOS * bary.x + patch[1].normalOS * bary.y + patch[2].normalOS * bary.z;
  655. output.ase_texcoord1 = patch[0].ase_texcoord1 * bary.x + patch[1].ase_texcoord1 * bary.y + patch[2].ase_texcoord1 * bary.z;
  656. output.ase_texcoord = patch[0].ase_texcoord * bary.x + patch[1].ase_texcoord * bary.y + patch[2].ase_texcoord * bary.z;
  657. output.ase_color = patch[0].ase_color * bary.x + patch[1].ase_color * bary.y + patch[2].ase_color * bary.z;
  658. #if defined(ASE_PHONG_TESSELLATION)
  659. float3 pp[3];
  660. for (int i = 0; i < 3; ++i)
  661. pp[i] = output.positionOS.xyz - patch[i].normalOS * (dot(output.positionOS.xyz, patch[i].normalOS) - dot(patch[i].positionOS.xyz, patch[i].normalOS));
  662. float phongStrength = _TessPhongStrength;
  663. output.positionOS.xyz = phongStrength * (pp[0]*bary.x + pp[1]*bary.y + pp[2]*bary.z) + (1.0f-phongStrength) * output.positionOS.xyz;
  664. #endif
  665. UNITY_TRANSFER_INSTANCE_ID(patch[0], output);
  666. return VertexFunction(output);
  667. }
  668. #else
  669. PackedVaryings vert ( Attributes input )
  670. {
  671. return VertexFunction( input );
  672. }
  673. #endif
  674. half4 frag(PackedVaryings input
  675. #ifdef ASE_DEPTH_WRITE_ON
  676. ,out float outputDepth : ASE_SV_DEPTH
  677. #endif
  678. ) : SV_Target
  679. {
  680. UNITY_SETUP_INSTANCE_ID(input);
  681. UNITY_SETUP_STEREO_EYE_INDEX_POST_VERTEX( input );
  682. #if defined(ASE_NEEDS_FRAG_WORLD_POSITION)
  683. float3 WorldPosition = input.positionWS;
  684. #endif
  685. float4 ShadowCoords = float4( 0, 0, 0, 0 );
  686. float4 ClipPos = input.clipPosV;
  687. float4 ScreenPos = ComputeScreenPos( input.clipPosV );
  688. #if defined(ASE_NEEDS_FRAG_SHADOWCOORDS)
  689. #if defined(REQUIRES_VERTEX_SHADOW_COORD_INTERPOLATOR)
  690. ShadowCoords = input.shadowCoord;
  691. #elif defined(MAIN_LIGHT_CALCULATE_SHADOWS)
  692. ShadowCoords = TransformWorldToShadowCoord( WorldPosition );
  693. #endif
  694. #endif
  695. float4 texCoord48 = input.ase_texcoord3;
  696. texCoord48.xy = input.ase_texcoord3.xy * float2( 1,1 ) + float2( 0,0 );
  697. float lerpResult69 = lerp( _Diss_value , texCoord48.x , _CustomDataDissolve);
  698. float lerpResult50 = lerp( _Diss_value , texCoord48.x , round( _CustomDataDissolve ));
  699. float2 uv_dissolve = input.ase_texcoord4.xy * _dissolve_ST.xy + _dissolve_ST.zw;
  700. float2 panner31 = ( 1.0 * _Time.y * ( _Diss_UV * _CTime ) + uv_dissolve);
  701. float smoothstepResult33 = smoothstep( lerpResult69 , ( lerpResult50 + _Soft_value ) , tex2D( _dissolve, panner31 ).r);
  702. float2 uv_Turb_Noise = input.ase_texcoord4.xy * _Turb_Noise_ST.xy + _Turb_Noise_ST.zw;
  703. float2 panner12 = ( 1.0 * _Time.y * ( _Turb_UV * _CTime ) + uv_Turb_Noise);
  704. float2 uv_Main_Tex = input.ase_texcoord4.xy * _Main_Tex_ST.xy + _Main_Tex_ST.zw;
  705. float2 panner19 = ( 1.0 * _Time.y * _Main_UV + uv_Main_Tex);
  706. float4 texCoord45 = input.ase_texcoord3;
  707. texCoord45.xy = input.ase_texcoord3.xy * float2( 1,1 ) + float2( 0,0 );
  708. float2 appendResult44 = (float2(texCoord45.z , texCoord45.w));
  709. float2 lerpResult46 = lerp( panner19 , ( appendResult44 + uv_Main_Tex ) , round( _CustomDataMainUV ));
  710. float4 tex2DNode10 = tex2D( _Main_Tex, ( ( tex2D( _Turb_Noise, panner12 ).r * _Turb_Value ) + lerpResult46 ) );
  711. float2 uv_Mask = input.ase_texcoord4.xy * _Mask_ST.xy + _Mask_ST.zw;
  712. float2 panner65 = ( 1.0 * _Time.y * ( _Mask_UV * _CTime ) + uv_Mask);
  713. float Alpha = ( _ca * ( smoothstepResult33 * _Alpha * tex2DNode10.a * input.ase_color.a * _Main_Color.a * tex2D( _Mask, panner65 ).r ) );
  714. float AlphaClipThreshold = 0.5;
  715. #ifdef ASE_DEPTH_WRITE_ON
  716. float DepthValue = input.positionCS.z;
  717. #endif
  718. #ifdef _ALPHATEST_ON
  719. clip(Alpha - AlphaClipThreshold);
  720. #endif
  721. #if defined(LOD_FADE_CROSSFADE)
  722. LODFadeCrossFade( input.positionCS );
  723. #endif
  724. #ifdef ASE_DEPTH_WRITE_ON
  725. outputDepth = DepthValue;
  726. #endif
  727. return 0;
  728. }
  729. ENDHLSL
  730. }
  731. Pass
  732. {
  733. Name "SceneSelectionPass"
  734. Tags { "LightMode"="SceneSelectionPass" }
  735. Cull Off
  736. AlphaToMask Off
  737. HLSLPROGRAM
  738. #define _SURFACE_TYPE_TRANSPARENT 1
  739. #define ASE_VERSION 19801
  740. #define ASE_SRP_VERSION 140011
  741. #pragma vertex vert
  742. #pragma fragment frag
  743. #define ATTRIBUTES_NEED_NORMAL
  744. #define ATTRIBUTES_NEED_TANGENT
  745. #define SHADERPASS SHADERPASS_DEPTHONLY
  746. #if ASE_SRP_VERSION >=140007
  747. #include_with_pragmas "Packages/com.unity.render-pipelines.universal/ShaderLibrary/DOTS.hlsl"
  748. #endif
  749. #if ASE_SRP_VERSION >=140007
  750. #include_with_pragmas "Packages/com.unity.render-pipelines.universal/ShaderLibrary/RenderingLayers.hlsl"
  751. #endif
  752. #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/Color.hlsl"
  753. #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/Texture.hlsl"
  754. #include "Packages/com.unity.render-pipelines.universal/ShaderLibrary/Core.hlsl"
  755. #include "Packages/com.unity.render-pipelines.universal/ShaderLibrary/Lighting.hlsl"
  756. #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/TextureStack.hlsl"
  757. #if ASE_SRP_VERSION >=140010
  758. #include_with_pragmas "Packages/com.unity.render-pipelines.core/ShaderLibrary/FoveatedRenderingKeywords.hlsl"
  759. #endif
  760. #include "Packages/com.unity.render-pipelines.universal/ShaderLibrary/ShaderGraphFunctions.hlsl"
  761. #include "Packages/com.unity.render-pipelines.universal/Editor/ShaderGraph/Includes/ShaderPass.hlsl"
  762. struct Attributes
  763. {
  764. float4 positionOS : POSITION;
  765. float3 normalOS : NORMAL;
  766. float4 ase_texcoord1 : TEXCOORD1;
  767. float4 ase_texcoord : TEXCOORD0;
  768. float4 ase_color : COLOR;
  769. UNITY_VERTEX_INPUT_INSTANCE_ID
  770. };
  771. struct PackedVaryings
  772. {
  773. float4 positionCS : SV_POSITION;
  774. float4 ase_texcoord : TEXCOORD0;
  775. float4 ase_texcoord1 : TEXCOORD1;
  776. float4 ase_color : COLOR;
  777. UNITY_VERTEX_INPUT_INSTANCE_ID
  778. UNITY_VERTEX_OUTPUT_STEREO
  779. };
  780. CBUFFER_START(UnityPerMaterial)
  781. float4 _Mask_ST;
  782. float4 _dissolve_ST;
  783. float4 _Turb_Noise_ST;
  784. float4 _Main_Tex_ST;
  785. float4 _Main_Color;
  786. float2 _Diss_UV;
  787. float2 _Mask_UV;
  788. float2 _Turb_UV;
  789. float2 _Main_UV;
  790. float _ca;
  791. float _Diss_value;
  792. float _CustomDataDissolve;
  793. float _Soft_value;
  794. float _Turb_Value;
  795. float _CTime;
  796. float _Alpha;
  797. float _CustomDataMainUV;
  798. float _light;
  799. #ifdef ASE_TESSELLATION
  800. float _TessPhongStrength;
  801. float _TessValue;
  802. float _TessMin;
  803. float _TessMax;
  804. float _TessEdgeLength;
  805. float _TessMaxDisp;
  806. #endif
  807. CBUFFER_END
  808. sampler2D _dissolve;
  809. sampler2D _Main_Tex;
  810. sampler2D _Turb_Noise;
  811. sampler2D _Mask;
  812. int _ObjectId;
  813. int _PassValue;
  814. struct SurfaceDescription
  815. {
  816. float Alpha;
  817. float AlphaClipThreshold;
  818. };
  819. PackedVaryings VertexFunction(Attributes input )
  820. {
  821. PackedVaryings output;
  822. ZERO_INITIALIZE(PackedVaryings, output);
  823. UNITY_SETUP_INSTANCE_ID(input);
  824. UNITY_TRANSFER_INSTANCE_ID(input, output);
  825. UNITY_INITIALIZE_VERTEX_OUTPUT_STEREO(output);
  826. output.ase_texcoord = input.ase_texcoord1;
  827. output.ase_texcoord1.xy = input.ase_texcoord.xy;
  828. output.ase_color = input.ase_color;
  829. //setting value to unused interpolator channels and avoid initialization warnings
  830. output.ase_texcoord1.zw = 0;
  831. #ifdef ASE_ABSOLUTE_VERTEX_POS
  832. float3 defaultVertexValue = input.positionOS.xyz;
  833. #else
  834. float3 defaultVertexValue = float3(0, 0, 0);
  835. #endif
  836. float3 vertexValue = defaultVertexValue;
  837. #ifdef ASE_ABSOLUTE_VERTEX_POS
  838. input.positionOS.xyz = vertexValue;
  839. #else
  840. input.positionOS.xyz += vertexValue;
  841. #endif
  842. input.normalOS = input.normalOS;
  843. float3 positionWS = TransformObjectToWorld( input.positionOS.xyz );
  844. output.positionCS = TransformWorldToHClip(positionWS);
  845. return output;
  846. }
  847. #if defined(ASE_TESSELLATION)
  848. struct VertexControl
  849. {
  850. float4 positionOS : INTERNALTESSPOS;
  851. float3 normalOS : NORMAL;
  852. float4 ase_texcoord1 : TEXCOORD1;
  853. float4 ase_texcoord : TEXCOORD0;
  854. float4 ase_color : COLOR;
  855. UNITY_VERTEX_INPUT_INSTANCE_ID
  856. };
  857. struct TessellationFactors
  858. {
  859. float edge[3] : SV_TessFactor;
  860. float inside : SV_InsideTessFactor;
  861. };
  862. VertexControl vert ( Attributes input )
  863. {
  864. VertexControl output;
  865. UNITY_SETUP_INSTANCE_ID(input);
  866. UNITY_TRANSFER_INSTANCE_ID(input, output);
  867. output.positionOS = input.positionOS;
  868. output.normalOS = input.normalOS;
  869. output.ase_texcoord1 = input.ase_texcoord1;
  870. output.ase_texcoord = input.ase_texcoord;
  871. output.ase_color = input.ase_color;
  872. return output;
  873. }
  874. TessellationFactors TessellationFunction (InputPatch<VertexControl,3> input)
  875. {
  876. TessellationFactors output;
  877. float4 tf = 1;
  878. float tessValue = _TessValue; float tessMin = _TessMin; float tessMax = _TessMax;
  879. float edgeLength = _TessEdgeLength; float tessMaxDisp = _TessMaxDisp;
  880. #if defined(ASE_FIXED_TESSELLATION)
  881. tf = FixedTess( tessValue );
  882. #elif defined(ASE_DISTANCE_TESSELLATION)
  883. tf = DistanceBasedTess(input[0].positionOS, input[1].positionOS, input[2].positionOS, tessValue, tessMin, tessMax, GetObjectToWorldMatrix(), _WorldSpaceCameraPos );
  884. #elif defined(ASE_LENGTH_TESSELLATION)
  885. tf = EdgeLengthBasedTess(input[0].positionOS, input[1].positionOS, input[2].positionOS, edgeLength, GetObjectToWorldMatrix(), _WorldSpaceCameraPos, _ScreenParams );
  886. #elif defined(ASE_LENGTH_CULL_TESSELLATION)
  887. tf = EdgeLengthBasedTessCull(input[0].positionOS, input[1].positionOS, input[2].positionOS, edgeLength, tessMaxDisp, GetObjectToWorldMatrix(), _WorldSpaceCameraPos, _ScreenParams, unity_CameraWorldClipPlanes );
  888. #endif
  889. output.edge[0] = tf.x; output.edge[1] = tf.y; output.edge[2] = tf.z; output.inside = tf.w;
  890. return output;
  891. }
  892. [domain("tri")]
  893. [partitioning("fractional_odd")]
  894. [outputtopology("triangle_cw")]
  895. [patchconstantfunc("TessellationFunction")]
  896. [outputcontrolpoints(3)]
  897. VertexControl HullFunction(InputPatch<VertexControl, 3> patch, uint id : SV_OutputControlPointID)
  898. {
  899. return patch[id];
  900. }
  901. [domain("tri")]
  902. PackedVaryings DomainFunction(TessellationFactors factors, OutputPatch<VertexControl, 3> patch, float3 bary : SV_DomainLocation)
  903. {
  904. Attributes output = (Attributes) 0;
  905. output.positionOS = patch[0].positionOS * bary.x + patch[1].positionOS * bary.y + patch[2].positionOS * bary.z;
  906. output.normalOS = patch[0].normalOS * bary.x + patch[1].normalOS * bary.y + patch[2].normalOS * bary.z;
  907. output.ase_texcoord1 = patch[0].ase_texcoord1 * bary.x + patch[1].ase_texcoord1 * bary.y + patch[2].ase_texcoord1 * bary.z;
  908. output.ase_texcoord = patch[0].ase_texcoord * bary.x + patch[1].ase_texcoord * bary.y + patch[2].ase_texcoord * bary.z;
  909. output.ase_color = patch[0].ase_color * bary.x + patch[1].ase_color * bary.y + patch[2].ase_color * bary.z;
  910. #if defined(ASE_PHONG_TESSELLATION)
  911. float3 pp[3];
  912. for (int i = 0; i < 3; ++i)
  913. pp[i] = output.positionOS.xyz - patch[i].normalOS * (dot(output.positionOS.xyz, patch[i].normalOS) - dot(patch[i].positionOS.xyz, patch[i].normalOS));
  914. float phongStrength = _TessPhongStrength;
  915. output.positionOS.xyz = phongStrength * (pp[0]*bary.x + pp[1]*bary.y + pp[2]*bary.z) + (1.0f-phongStrength) * output.positionOS.xyz;
  916. #endif
  917. UNITY_TRANSFER_INSTANCE_ID(patch[0], output);
  918. return VertexFunction(output);
  919. }
  920. #else
  921. PackedVaryings vert ( Attributes input )
  922. {
  923. return VertexFunction( input );
  924. }
  925. #endif
  926. half4 frag(PackedVaryings input ) : SV_Target
  927. {
  928. SurfaceDescription surfaceDescription = (SurfaceDescription)0;
  929. float4 texCoord48 = input.ase_texcoord;
  930. texCoord48.xy = input.ase_texcoord.xy * float2( 1,1 ) + float2( 0,0 );
  931. float lerpResult69 = lerp( _Diss_value , texCoord48.x , _CustomDataDissolve);
  932. float lerpResult50 = lerp( _Diss_value , texCoord48.x , round( _CustomDataDissolve ));
  933. float2 uv_dissolve = input.ase_texcoord1.xy * _dissolve_ST.xy + _dissolve_ST.zw;
  934. float2 panner31 = ( 1.0 * _Time.y * ( _Diss_UV * _CTime ) + uv_dissolve);
  935. float smoothstepResult33 = smoothstep( lerpResult69 , ( lerpResult50 + _Soft_value ) , tex2D( _dissolve, panner31 ).r);
  936. float2 uv_Turb_Noise = input.ase_texcoord1.xy * _Turb_Noise_ST.xy + _Turb_Noise_ST.zw;
  937. float2 panner12 = ( 1.0 * _Time.y * ( _Turb_UV * _CTime ) + uv_Turb_Noise);
  938. float2 uv_Main_Tex = input.ase_texcoord1.xy * _Main_Tex_ST.xy + _Main_Tex_ST.zw;
  939. float2 panner19 = ( 1.0 * _Time.y * _Main_UV + uv_Main_Tex);
  940. float4 texCoord45 = input.ase_texcoord;
  941. texCoord45.xy = input.ase_texcoord.xy * float2( 1,1 ) + float2( 0,0 );
  942. float2 appendResult44 = (float2(texCoord45.z , texCoord45.w));
  943. float2 lerpResult46 = lerp( panner19 , ( appendResult44 + uv_Main_Tex ) , round( _CustomDataMainUV ));
  944. float4 tex2DNode10 = tex2D( _Main_Tex, ( ( tex2D( _Turb_Noise, panner12 ).r * _Turb_Value ) + lerpResult46 ) );
  945. float2 uv_Mask = input.ase_texcoord1.xy * _Mask_ST.xy + _Mask_ST.zw;
  946. float2 panner65 = ( 1.0 * _Time.y * ( _Mask_UV * _CTime ) + uv_Mask);
  947. surfaceDescription.Alpha = ( _ca * ( smoothstepResult33 * _Alpha * tex2DNode10.a * input.ase_color.a * _Main_Color.a * tex2D( _Mask, panner65 ).r ) );
  948. surfaceDescription.AlphaClipThreshold = 0.5;
  949. #if _ALPHATEST_ON
  950. float alphaClipThreshold = 0.01f;
  951. #if ALPHA_CLIP_THRESHOLD
  952. alphaClipThreshold = surfaceDescription.AlphaClipThreshold;
  953. #endif
  954. clip(surfaceDescription.Alpha - alphaClipThreshold);
  955. #endif
  956. half4 outColor = half4(_ObjectId, _PassValue, 1.0, 1.0);
  957. return outColor;
  958. }
  959. ENDHLSL
  960. }
  961. Pass
  962. {
  963. Name "ScenePickingPass"
  964. Tags { "LightMode"="Picking" }
  965. AlphaToMask Off
  966. HLSLPROGRAM
  967. #define _SURFACE_TYPE_TRANSPARENT 1
  968. #define ASE_VERSION 19801
  969. #define ASE_SRP_VERSION 140011
  970. #pragma vertex vert
  971. #pragma fragment frag
  972. #define ATTRIBUTES_NEED_NORMAL
  973. #define ATTRIBUTES_NEED_TANGENT
  974. #define SHADERPASS SHADERPASS_DEPTHONLY
  975. #if ASE_SRP_VERSION >=140007
  976. #include_with_pragmas "Packages/com.unity.render-pipelines.universal/ShaderLibrary/DOTS.hlsl"
  977. #endif
  978. #if ASE_SRP_VERSION >=140007
  979. #include_with_pragmas "Packages/com.unity.render-pipelines.universal/ShaderLibrary/RenderingLayers.hlsl"
  980. #endif
  981. #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/Color.hlsl"
  982. #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/Texture.hlsl"
  983. #include "Packages/com.unity.render-pipelines.universal/ShaderLibrary/Core.hlsl"
  984. #include "Packages/com.unity.render-pipelines.universal/ShaderLibrary/Lighting.hlsl"
  985. #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/TextureStack.hlsl"
  986. #if ASE_SRP_VERSION >=140010
  987. #include_with_pragmas "Packages/com.unity.render-pipelines.core/ShaderLibrary/FoveatedRenderingKeywords.hlsl"
  988. #endif
  989. #include "Packages/com.unity.render-pipelines.universal/ShaderLibrary/ShaderGraphFunctions.hlsl"
  990. #include "Packages/com.unity.render-pipelines.universal/Editor/ShaderGraph/Includes/ShaderPass.hlsl"
  991. #if defined(LOD_FADE_CROSSFADE)
  992. #include "Packages/com.unity.render-pipelines.universal/ShaderLibrary/LODCrossFade.hlsl"
  993. #endif
  994. struct Attributes
  995. {
  996. float4 positionOS : POSITION;
  997. float3 normalOS : NORMAL;
  998. float4 ase_texcoord1 : TEXCOORD1;
  999. float4 ase_texcoord : TEXCOORD0;
  1000. float4 ase_color : COLOR;
  1001. UNITY_VERTEX_INPUT_INSTANCE_ID
  1002. };
  1003. struct PackedVaryings
  1004. {
  1005. float4 positionCS : SV_POSITION;
  1006. float4 ase_texcoord : TEXCOORD0;
  1007. float4 ase_texcoord1 : TEXCOORD1;
  1008. float4 ase_color : COLOR;
  1009. UNITY_VERTEX_INPUT_INSTANCE_ID
  1010. UNITY_VERTEX_OUTPUT_STEREO
  1011. };
  1012. CBUFFER_START(UnityPerMaterial)
  1013. float4 _Mask_ST;
  1014. float4 _dissolve_ST;
  1015. float4 _Turb_Noise_ST;
  1016. float4 _Main_Tex_ST;
  1017. float4 _Main_Color;
  1018. float2 _Diss_UV;
  1019. float2 _Mask_UV;
  1020. float2 _Turb_UV;
  1021. float2 _Main_UV;
  1022. float _ca;
  1023. float _Diss_value;
  1024. float _CustomDataDissolve;
  1025. float _Soft_value;
  1026. float _Turb_Value;
  1027. float _CTime;
  1028. float _Alpha;
  1029. float _CustomDataMainUV;
  1030. float _light;
  1031. #ifdef ASE_TESSELLATION
  1032. float _TessPhongStrength;
  1033. float _TessValue;
  1034. float _TessMin;
  1035. float _TessMax;
  1036. float _TessEdgeLength;
  1037. float _TessMaxDisp;
  1038. #endif
  1039. CBUFFER_END
  1040. sampler2D _dissolve;
  1041. sampler2D _Main_Tex;
  1042. sampler2D _Turb_Noise;
  1043. sampler2D _Mask;
  1044. float4 _SelectionID;
  1045. struct SurfaceDescription
  1046. {
  1047. float Alpha;
  1048. float AlphaClipThreshold;
  1049. };
  1050. PackedVaryings VertexFunction(Attributes input )
  1051. {
  1052. PackedVaryings output;
  1053. ZERO_INITIALIZE(PackedVaryings, output);
  1054. UNITY_SETUP_INSTANCE_ID(input);
  1055. UNITY_TRANSFER_INSTANCE_ID(input, output);
  1056. UNITY_INITIALIZE_VERTEX_OUTPUT_STEREO(output);
  1057. output.ase_texcoord = input.ase_texcoord1;
  1058. output.ase_texcoord1.xy = input.ase_texcoord.xy;
  1059. output.ase_color = input.ase_color;
  1060. //setting value to unused interpolator channels and avoid initialization warnings
  1061. output.ase_texcoord1.zw = 0;
  1062. #ifdef ASE_ABSOLUTE_VERTEX_POS
  1063. float3 defaultVertexValue = input.positionOS.xyz;
  1064. #else
  1065. float3 defaultVertexValue = float3(0, 0, 0);
  1066. #endif
  1067. float3 vertexValue = defaultVertexValue;
  1068. #ifdef ASE_ABSOLUTE_VERTEX_POS
  1069. input.positionOS.xyz = vertexValue;
  1070. #else
  1071. input.positionOS.xyz += vertexValue;
  1072. #endif
  1073. input.normalOS = input.normalOS;
  1074. float3 positionWS = TransformObjectToWorld( input.positionOS.xyz );
  1075. output.positionCS = TransformWorldToHClip(positionWS);
  1076. return output;
  1077. }
  1078. #if defined(ASE_TESSELLATION)
  1079. struct VertexControl
  1080. {
  1081. float4 positionOS : INTERNALTESSPOS;
  1082. float3 normalOS : NORMAL;
  1083. float4 ase_texcoord1 : TEXCOORD1;
  1084. float4 ase_texcoord : TEXCOORD0;
  1085. float4 ase_color : COLOR;
  1086. UNITY_VERTEX_INPUT_INSTANCE_ID
  1087. };
  1088. struct TessellationFactors
  1089. {
  1090. float edge[3] : SV_TessFactor;
  1091. float inside : SV_InsideTessFactor;
  1092. };
  1093. VertexControl vert ( Attributes input )
  1094. {
  1095. VertexControl output;
  1096. UNITY_SETUP_INSTANCE_ID(input);
  1097. UNITY_TRANSFER_INSTANCE_ID(input, output);
  1098. output.positionOS = input.positionOS;
  1099. output.normalOS = input.normalOS;
  1100. output.ase_texcoord1 = input.ase_texcoord1;
  1101. output.ase_texcoord = input.ase_texcoord;
  1102. output.ase_color = input.ase_color;
  1103. return output;
  1104. }
  1105. TessellationFactors TessellationFunction (InputPatch<VertexControl,3> input)
  1106. {
  1107. TessellationFactors output;
  1108. float4 tf = 1;
  1109. float tessValue = _TessValue; float tessMin = _TessMin; float tessMax = _TessMax;
  1110. float edgeLength = _TessEdgeLength; float tessMaxDisp = _TessMaxDisp;
  1111. #if defined(ASE_FIXED_TESSELLATION)
  1112. tf = FixedTess( tessValue );
  1113. #elif defined(ASE_DISTANCE_TESSELLATION)
  1114. tf = DistanceBasedTess(input[0].positionOS, input[1].positionOS, input[2].positionOS, tessValue, tessMin, tessMax, GetObjectToWorldMatrix(), _WorldSpaceCameraPos );
  1115. #elif defined(ASE_LENGTH_TESSELLATION)
  1116. tf = EdgeLengthBasedTess(input[0].positionOS, input[1].positionOS, input[2].positionOS, edgeLength, GetObjectToWorldMatrix(), _WorldSpaceCameraPos, _ScreenParams );
  1117. #elif defined(ASE_LENGTH_CULL_TESSELLATION)
  1118. tf = EdgeLengthBasedTessCull(input[0].positionOS, input[1].positionOS, input[2].positionOS, edgeLength, tessMaxDisp, GetObjectToWorldMatrix(), _WorldSpaceCameraPos, _ScreenParams, unity_CameraWorldClipPlanes );
  1119. #endif
  1120. output.edge[0] = tf.x; output.edge[1] = tf.y; output.edge[2] = tf.z; output.inside = tf.w;
  1121. return output;
  1122. }
  1123. [domain("tri")]
  1124. [partitioning("fractional_odd")]
  1125. [outputtopology("triangle_cw")]
  1126. [patchconstantfunc("TessellationFunction")]
  1127. [outputcontrolpoints(3)]
  1128. VertexControl HullFunction(InputPatch<VertexControl, 3> patch, uint id : SV_OutputControlPointID)
  1129. {
  1130. return patch[id];
  1131. }
  1132. [domain("tri")]
  1133. PackedVaryings DomainFunction(TessellationFactors factors, OutputPatch<VertexControl, 3> patch, float3 bary : SV_DomainLocation)
  1134. {
  1135. Attributes output = (Attributes) 0;
  1136. output.positionOS = patch[0].positionOS * bary.x + patch[1].positionOS * bary.y + patch[2].positionOS * bary.z;
  1137. output.normalOS = patch[0].normalOS * bary.x + patch[1].normalOS * bary.y + patch[2].normalOS * bary.z;
  1138. output.ase_texcoord1 = patch[0].ase_texcoord1 * bary.x + patch[1].ase_texcoord1 * bary.y + patch[2].ase_texcoord1 * bary.z;
  1139. output.ase_texcoord = patch[0].ase_texcoord * bary.x + patch[1].ase_texcoord * bary.y + patch[2].ase_texcoord * bary.z;
  1140. output.ase_color = patch[0].ase_color * bary.x + patch[1].ase_color * bary.y + patch[2].ase_color * bary.z;
  1141. #if defined(ASE_PHONG_TESSELLATION)
  1142. float3 pp[3];
  1143. for (int i = 0; i < 3; ++i)
  1144. pp[i] = output.positionOS.xyz - patch[i].normalOS * (dot(output.positionOS.xyz, patch[i].normalOS) - dot(patch[i].positionOS.xyz, patch[i].normalOS));
  1145. float phongStrength = _TessPhongStrength;
  1146. output.positionOS.xyz = phongStrength * (pp[0]*bary.x + pp[1]*bary.y + pp[2]*bary.z) + (1.0f-phongStrength) * output.positionOS.xyz;
  1147. #endif
  1148. UNITY_TRANSFER_INSTANCE_ID(patch[0], output);
  1149. return VertexFunction(output);
  1150. }
  1151. #else
  1152. PackedVaryings vert ( Attributes input )
  1153. {
  1154. return VertexFunction( input );
  1155. }
  1156. #endif
  1157. half4 frag(PackedVaryings input ) : SV_Target
  1158. {
  1159. SurfaceDescription surfaceDescription = (SurfaceDescription)0;
  1160. float4 texCoord48 = input.ase_texcoord;
  1161. texCoord48.xy = input.ase_texcoord.xy * float2( 1,1 ) + float2( 0,0 );
  1162. float lerpResult69 = lerp( _Diss_value , texCoord48.x , _CustomDataDissolve);
  1163. float lerpResult50 = lerp( _Diss_value , texCoord48.x , round( _CustomDataDissolve ));
  1164. float2 uv_dissolve = input.ase_texcoord1.xy * _dissolve_ST.xy + _dissolve_ST.zw;
  1165. float2 panner31 = ( 1.0 * _Time.y * ( _Diss_UV * _CTime ) + uv_dissolve);
  1166. float smoothstepResult33 = smoothstep( lerpResult69 , ( lerpResult50 + _Soft_value ) , tex2D( _dissolve, panner31 ).r);
  1167. float2 uv_Turb_Noise = input.ase_texcoord1.xy * _Turb_Noise_ST.xy + _Turb_Noise_ST.zw;
  1168. float2 panner12 = ( 1.0 * _Time.y * ( _Turb_UV * _CTime ) + uv_Turb_Noise);
  1169. float2 uv_Main_Tex = input.ase_texcoord1.xy * _Main_Tex_ST.xy + _Main_Tex_ST.zw;
  1170. float2 panner19 = ( 1.0 * _Time.y * _Main_UV + uv_Main_Tex);
  1171. float4 texCoord45 = input.ase_texcoord;
  1172. texCoord45.xy = input.ase_texcoord.xy * float2( 1,1 ) + float2( 0,0 );
  1173. float2 appendResult44 = (float2(texCoord45.z , texCoord45.w));
  1174. float2 lerpResult46 = lerp( panner19 , ( appendResult44 + uv_Main_Tex ) , round( _CustomDataMainUV ));
  1175. float4 tex2DNode10 = tex2D( _Main_Tex, ( ( tex2D( _Turb_Noise, panner12 ).r * _Turb_Value ) + lerpResult46 ) );
  1176. float2 uv_Mask = input.ase_texcoord1.xy * _Mask_ST.xy + _Mask_ST.zw;
  1177. float2 panner65 = ( 1.0 * _Time.y * ( _Mask_UV * _CTime ) + uv_Mask);
  1178. surfaceDescription.Alpha = ( _ca * ( smoothstepResult33 * _Alpha * tex2DNode10.a * input.ase_color.a * _Main_Color.a * tex2D( _Mask, panner65 ).r ) );
  1179. surfaceDescription.AlphaClipThreshold = 0.5;
  1180. #if _ALPHATEST_ON
  1181. float alphaClipThreshold = 0.01f;
  1182. #if ALPHA_CLIP_THRESHOLD
  1183. alphaClipThreshold = surfaceDescription.AlphaClipThreshold;
  1184. #endif
  1185. clip(surfaceDescription.Alpha - alphaClipThreshold);
  1186. #endif
  1187. half4 outColor = 0;
  1188. outColor = _SelectionID;
  1189. return outColor;
  1190. }
  1191. ENDHLSL
  1192. }
  1193. Pass
  1194. {
  1195. Name "DepthNormals"
  1196. Tags { "LightMode"="DepthNormalsOnly" }
  1197. ZTest LEqual
  1198. ZWrite On
  1199. HLSLPROGRAM
  1200. #pragma multi_compile_instancing
  1201. #define _SURFACE_TYPE_TRANSPARENT 1
  1202. #define ASE_VERSION 19801
  1203. #define ASE_SRP_VERSION 140011
  1204. #pragma multi_compile_fragment _ _GBUFFER_NORMALS_OCT
  1205. #pragma vertex vert
  1206. #pragma fragment frag
  1207. #define ATTRIBUTES_NEED_NORMAL
  1208. #define ATTRIBUTES_NEED_TANGENT
  1209. #define VARYINGS_NEED_NORMAL_WS
  1210. #define SHADERPASS SHADERPASS_DEPTHNORMALSONLY
  1211. #if ASE_SRP_VERSION >=140007
  1212. #include_with_pragmas "Packages/com.unity.render-pipelines.universal/ShaderLibrary/DOTS.hlsl"
  1213. #endif
  1214. #if ASE_SRP_VERSION >=140007
  1215. #include_with_pragmas "Packages/com.unity.render-pipelines.universal/ShaderLibrary/RenderingLayers.hlsl"
  1216. #endif
  1217. #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/Color.hlsl"
  1218. #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/Texture.hlsl"
  1219. #include "Packages/com.unity.render-pipelines.universal/ShaderLibrary/Core.hlsl"
  1220. #include "Packages/com.unity.render-pipelines.universal/ShaderLibrary/Lighting.hlsl"
  1221. #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/TextureStack.hlsl"
  1222. #if ASE_SRP_VERSION >=140010
  1223. #include_with_pragmas "Packages/com.unity.render-pipelines.core/ShaderLibrary/FoveatedRenderingKeywords.hlsl"
  1224. #endif
  1225. #include "Packages/com.unity.render-pipelines.universal/ShaderLibrary/ShaderGraphFunctions.hlsl"
  1226. #include "Packages/com.unity.render-pipelines.universal/Editor/ShaderGraph/Includes/ShaderPass.hlsl"
  1227. #if defined(LOD_FADE_CROSSFADE)
  1228. #include "Packages/com.unity.render-pipelines.universal/ShaderLibrary/LODCrossFade.hlsl"
  1229. #endif
  1230. #if defined(ASE_EARLY_Z_DEPTH_OPTIMIZE) && (SHADER_TARGET >= 45)
  1231. #define ASE_SV_DEPTH SV_DepthLessEqual
  1232. #define ASE_SV_POSITION_QUALIFIERS linear noperspective centroid
  1233. #else
  1234. #define ASE_SV_DEPTH SV_Depth
  1235. #define ASE_SV_POSITION_QUALIFIERS
  1236. #endif
  1237. struct Attributes
  1238. {
  1239. float4 positionOS : POSITION;
  1240. float3 normalOS : NORMAL;
  1241. float4 ase_texcoord1 : TEXCOORD1;
  1242. float4 ase_texcoord : TEXCOORD0;
  1243. float4 ase_color : COLOR;
  1244. UNITY_VERTEX_INPUT_INSTANCE_ID
  1245. };
  1246. struct PackedVaryings
  1247. {
  1248. ASE_SV_POSITION_QUALIFIERS float4 positionCS : SV_POSITION;
  1249. float4 clipPosV : TEXCOORD0;
  1250. float3 positionWS : TEXCOORD1;
  1251. float3 normalWS : TEXCOORD2;
  1252. float4 ase_texcoord3 : TEXCOORD3;
  1253. float4 ase_texcoord4 : TEXCOORD4;
  1254. float4 ase_color : COLOR;
  1255. UNITY_VERTEX_INPUT_INSTANCE_ID
  1256. UNITY_VERTEX_OUTPUT_STEREO
  1257. };
  1258. CBUFFER_START(UnityPerMaterial)
  1259. float4 _Mask_ST;
  1260. float4 _dissolve_ST;
  1261. float4 _Turb_Noise_ST;
  1262. float4 _Main_Tex_ST;
  1263. float4 _Main_Color;
  1264. float2 _Diss_UV;
  1265. float2 _Mask_UV;
  1266. float2 _Turb_UV;
  1267. float2 _Main_UV;
  1268. float _ca;
  1269. float _Diss_value;
  1270. float _CustomDataDissolve;
  1271. float _Soft_value;
  1272. float _Turb_Value;
  1273. float _CTime;
  1274. float _Alpha;
  1275. float _CustomDataMainUV;
  1276. float _light;
  1277. #ifdef ASE_TESSELLATION
  1278. float _TessPhongStrength;
  1279. float _TessValue;
  1280. float _TessMin;
  1281. float _TessMax;
  1282. float _TessEdgeLength;
  1283. float _TessMaxDisp;
  1284. #endif
  1285. CBUFFER_END
  1286. sampler2D _dissolve;
  1287. sampler2D _Main_Tex;
  1288. sampler2D _Turb_Noise;
  1289. sampler2D _Mask;
  1290. struct SurfaceDescription
  1291. {
  1292. float Alpha;
  1293. float AlphaClipThreshold;
  1294. };
  1295. PackedVaryings VertexFunction( Attributes input )
  1296. {
  1297. PackedVaryings output;
  1298. ZERO_INITIALIZE(PackedVaryings, output);
  1299. UNITY_SETUP_INSTANCE_ID(input);
  1300. UNITY_TRANSFER_INSTANCE_ID(input, output);
  1301. UNITY_INITIALIZE_VERTEX_OUTPUT_STEREO(output);
  1302. output.ase_texcoord3 = input.ase_texcoord1;
  1303. output.ase_texcoord4.xy = input.ase_texcoord.xy;
  1304. output.ase_color = input.ase_color;
  1305. //setting value to unused interpolator channels and avoid initialization warnings
  1306. output.ase_texcoord4.zw = 0;
  1307. #ifdef ASE_ABSOLUTE_VERTEX_POS
  1308. float3 defaultVertexValue = input.positionOS.xyz;
  1309. #else
  1310. float3 defaultVertexValue = float3(0, 0, 0);
  1311. #endif
  1312. float3 vertexValue = defaultVertexValue;
  1313. #ifdef ASE_ABSOLUTE_VERTEX_POS
  1314. input.positionOS.xyz = vertexValue;
  1315. #else
  1316. input.positionOS.xyz += vertexValue;
  1317. #endif
  1318. input.normalOS = input.normalOS;
  1319. VertexPositionInputs vertexInput = GetVertexPositionInputs( input.positionOS.xyz );
  1320. output.positionCS = vertexInput.positionCS;
  1321. output.clipPosV = vertexInput.positionCS;
  1322. output.positionWS = vertexInput.positionWS;
  1323. output.normalWS = TransformObjectToWorldNormal( input.normalOS );
  1324. return output;
  1325. }
  1326. #if defined(ASE_TESSELLATION)
  1327. struct VertexControl
  1328. {
  1329. float4 positionOS : INTERNALTESSPOS;
  1330. float3 normalOS : NORMAL;
  1331. float4 ase_texcoord1 : TEXCOORD1;
  1332. float4 ase_texcoord : TEXCOORD0;
  1333. float4 ase_color : COLOR;
  1334. UNITY_VERTEX_INPUT_INSTANCE_ID
  1335. };
  1336. struct TessellationFactors
  1337. {
  1338. float edge[3] : SV_TessFactor;
  1339. float inside : SV_InsideTessFactor;
  1340. };
  1341. VertexControl vert ( Attributes input )
  1342. {
  1343. VertexControl output;
  1344. UNITY_SETUP_INSTANCE_ID(input);
  1345. UNITY_TRANSFER_INSTANCE_ID(input, output);
  1346. output.positionOS = input.positionOS;
  1347. output.normalOS = input.normalOS;
  1348. output.ase_texcoord1 = input.ase_texcoord1;
  1349. output.ase_texcoord = input.ase_texcoord;
  1350. output.ase_color = input.ase_color;
  1351. return output;
  1352. }
  1353. TessellationFactors TessellationFunction (InputPatch<VertexControl,3> input)
  1354. {
  1355. TessellationFactors output;
  1356. float4 tf = 1;
  1357. float tessValue = _TessValue; float tessMin = _TessMin; float tessMax = _TessMax;
  1358. float edgeLength = _TessEdgeLength; float tessMaxDisp = _TessMaxDisp;
  1359. #if defined(ASE_FIXED_TESSELLATION)
  1360. tf = FixedTess( tessValue );
  1361. #elif defined(ASE_DISTANCE_TESSELLATION)
  1362. tf = DistanceBasedTess(input[0].positionOS, input[1].positionOS, input[2].positionOS, tessValue, tessMin, tessMax, GetObjectToWorldMatrix(), _WorldSpaceCameraPos );
  1363. #elif defined(ASE_LENGTH_TESSELLATION)
  1364. tf = EdgeLengthBasedTess(input[0].positionOS, input[1].positionOS, input[2].positionOS, edgeLength, GetObjectToWorldMatrix(), _WorldSpaceCameraPos, _ScreenParams );
  1365. #elif defined(ASE_LENGTH_CULL_TESSELLATION)
  1366. tf = EdgeLengthBasedTessCull(input[0].positionOS, input[1].positionOS, input[2].positionOS, edgeLength, tessMaxDisp, GetObjectToWorldMatrix(), _WorldSpaceCameraPos, _ScreenParams, unity_CameraWorldClipPlanes );
  1367. #endif
  1368. output.edge[0] = tf.x; output.edge[1] = tf.y; output.edge[2] = tf.z; output.inside = tf.w;
  1369. return output;
  1370. }
  1371. [domain("tri")]
  1372. [partitioning("fractional_odd")]
  1373. [outputtopology("triangle_cw")]
  1374. [patchconstantfunc("TessellationFunction")]
  1375. [outputcontrolpoints(3)]
  1376. VertexControl HullFunction(InputPatch<VertexControl, 3> patch, uint id : SV_OutputControlPointID)
  1377. {
  1378. return patch[id];
  1379. }
  1380. [domain("tri")]
  1381. PackedVaryings DomainFunction(TessellationFactors factors, OutputPatch<VertexControl, 3> patch, float3 bary : SV_DomainLocation)
  1382. {
  1383. Attributes output = (Attributes) 0;
  1384. output.positionOS = patch[0].positionOS * bary.x + patch[1].positionOS * bary.y + patch[2].positionOS * bary.z;
  1385. output.normalOS = patch[0].normalOS * bary.x + patch[1].normalOS * bary.y + patch[2].normalOS * bary.z;
  1386. output.ase_texcoord1 = patch[0].ase_texcoord1 * bary.x + patch[1].ase_texcoord1 * bary.y + patch[2].ase_texcoord1 * bary.z;
  1387. output.ase_texcoord = patch[0].ase_texcoord * bary.x + patch[1].ase_texcoord * bary.y + patch[2].ase_texcoord * bary.z;
  1388. output.ase_color = patch[0].ase_color * bary.x + patch[1].ase_color * bary.y + patch[2].ase_color * bary.z;
  1389. #if defined(ASE_PHONG_TESSELLATION)
  1390. float3 pp[3];
  1391. for (int i = 0; i < 3; ++i)
  1392. pp[i] = output.positionOS.xyz - patch[i].normalOS * (dot(output.positionOS.xyz, patch[i].normalOS) - dot(patch[i].positionOS.xyz, patch[i].normalOS));
  1393. float phongStrength = _TessPhongStrength;
  1394. output.positionOS.xyz = phongStrength * (pp[0]*bary.x + pp[1]*bary.y + pp[2]*bary.z) + (1.0f-phongStrength) * output.positionOS.xyz;
  1395. #endif
  1396. UNITY_TRANSFER_INSTANCE_ID(patch[0], output);
  1397. return VertexFunction(output);
  1398. }
  1399. #else
  1400. PackedVaryings vert ( Attributes input )
  1401. {
  1402. return VertexFunction( input );
  1403. }
  1404. #endif
  1405. void frag(PackedVaryings input
  1406. , out half4 outNormalWS : SV_Target0
  1407. #ifdef ASE_DEPTH_WRITE_ON
  1408. ,out float outputDepth : ASE_SV_DEPTH
  1409. #endif
  1410. #ifdef _WRITE_RENDERING_LAYERS
  1411. , out float4 outRenderingLayers : SV_Target1
  1412. #endif
  1413. )
  1414. {
  1415. UNITY_SETUP_INSTANCE_ID(input);
  1416. UNITY_SETUP_STEREO_EYE_INDEX_POST_VERTEX( input );
  1417. float3 WorldPosition = input.positionWS;
  1418. float3 WorldNormal = input.normalWS;
  1419. float4 ClipPos = input.clipPosV;
  1420. float4 ScreenPos = ComputeScreenPos( input.clipPosV );
  1421. float4 texCoord48 = input.ase_texcoord3;
  1422. texCoord48.xy = input.ase_texcoord3.xy * float2( 1,1 ) + float2( 0,0 );
  1423. float lerpResult69 = lerp( _Diss_value , texCoord48.x , _CustomDataDissolve);
  1424. float lerpResult50 = lerp( _Diss_value , texCoord48.x , round( _CustomDataDissolve ));
  1425. float2 uv_dissolve = input.ase_texcoord4.xy * _dissolve_ST.xy + _dissolve_ST.zw;
  1426. float2 panner31 = ( 1.0 * _Time.y * ( _Diss_UV * _CTime ) + uv_dissolve);
  1427. float smoothstepResult33 = smoothstep( lerpResult69 , ( lerpResult50 + _Soft_value ) , tex2D( _dissolve, panner31 ).r);
  1428. float2 uv_Turb_Noise = input.ase_texcoord4.xy * _Turb_Noise_ST.xy + _Turb_Noise_ST.zw;
  1429. float2 panner12 = ( 1.0 * _Time.y * ( _Turb_UV * _CTime ) + uv_Turb_Noise);
  1430. float2 uv_Main_Tex = input.ase_texcoord4.xy * _Main_Tex_ST.xy + _Main_Tex_ST.zw;
  1431. float2 panner19 = ( 1.0 * _Time.y * _Main_UV + uv_Main_Tex);
  1432. float4 texCoord45 = input.ase_texcoord3;
  1433. texCoord45.xy = input.ase_texcoord3.xy * float2( 1,1 ) + float2( 0,0 );
  1434. float2 appendResult44 = (float2(texCoord45.z , texCoord45.w));
  1435. float2 lerpResult46 = lerp( panner19 , ( appendResult44 + uv_Main_Tex ) , round( _CustomDataMainUV ));
  1436. float4 tex2DNode10 = tex2D( _Main_Tex, ( ( tex2D( _Turb_Noise, panner12 ).r * _Turb_Value ) + lerpResult46 ) );
  1437. float2 uv_Mask = input.ase_texcoord4.xy * _Mask_ST.xy + _Mask_ST.zw;
  1438. float2 panner65 = ( 1.0 * _Time.y * ( _Mask_UV * _CTime ) + uv_Mask);
  1439. float Alpha = ( _ca * ( smoothstepResult33 * _Alpha * tex2DNode10.a * input.ase_color.a * _Main_Color.a * tex2D( _Mask, panner65 ).r ) );
  1440. float AlphaClipThreshold = 0.5;
  1441. #ifdef ASE_DEPTH_WRITE_ON
  1442. float DepthValue = input.positionCS.z;
  1443. #endif
  1444. #ifdef _ALPHATEST_ON
  1445. clip(Alpha - AlphaClipThreshold);
  1446. #endif
  1447. #if defined(LOD_FADE_CROSSFADE)
  1448. LODFadeCrossFade( input.positionCS );
  1449. #endif
  1450. #ifdef ASE_DEPTH_WRITE_ON
  1451. outputDepth = DepthValue;
  1452. #endif
  1453. #if defined(_GBUFFER_NORMALS_OCT)
  1454. float3 normalWS = normalize(input.normalWS);
  1455. float2 octNormalWS = PackNormalOctQuadEncode(normalWS);
  1456. float2 remappedOctNormalWS = saturate(octNormalWS * 0.5 + 0.5);
  1457. half3 packedNormalWS = PackFloat2To888(remappedOctNormalWS);
  1458. outNormalWS = half4(packedNormalWS, 0.0);
  1459. #else
  1460. float3 normalWS = input.normalWS;
  1461. outNormalWS = half4(NormalizeNormalPerPixel(normalWS), 0.0);
  1462. #endif
  1463. #ifdef _WRITE_RENDERING_LAYERS
  1464. uint renderingLayers = GetMeshRenderingLayer();
  1465. outRenderingLayers = float4(EncodeMeshRenderingLayer(renderingLayers), 0, 0, 0);
  1466. #endif
  1467. }
  1468. ENDHLSL
  1469. }
  1470. }
  1471. CustomEditor "UnityEditor.ShaderGraphUnlitGUI"
  1472. FallBack "Hidden/Shader Graph/FallbackError"
  1473. Fallback "Hidden/InternalErrorShader"
  1474. }
  1475. /*ASEBEGIN
  1476. Version=19801
  1477. Node;AmplifyShaderEditor.CommentaryNode;22;-2105.63,-240.8798;Inherit;False;1495.365;1020.31;Comment;15;16;18;19;17;14;11;15;12;20;13;46;59;60;61;62;;1,1,1,1;0;0
  1478. Node;AmplifyShaderEditor.CommentaryNode;39;-2211.743,831.0613;Inherit;False;808.6021;543.3561;Comment;6;45;44;43;42;41;40;数据流控制 uv 滚动;1,1,1,1;0;0
  1479. Node;AmplifyShaderEditor.Vector2Node;13;-2000.162,-9.00322;Float;False;Property;_Turb_UV;Turb_UV;10;0;Create;True;0;0;0;False;0;False;0,0;0,0;0;3;FLOAT2;0;FLOAT;1;FLOAT;2
  1480. Node;AmplifyShaderEditor.FunctionNode;62;-2033.332,143.8488;Inherit;False;CombatTiem;0;;2;1401d2ae4598ff34b8dfd9c35ce782b0;0;0;1;FLOAT;0
  1481. Node;AmplifyShaderEditor.CommentaryNode;56;-1380.696,1089.031;Inherit;False;641.1201;500.7061;Comment;6;51;49;48;32;50;69;;1,1,1,1;0;0
  1482. Node;AmplifyShaderEditor.TextureCoordinatesNode;45;-2161.742,881.0615;Inherit;False;1;-1;4;3;2;SAMPLER2D;;False;0;FLOAT2;1,1;False;1;FLOAT2;0,0;False;5;FLOAT4;0;FLOAT;1;FLOAT;2;FLOAT;3;FLOAT;4
  1483. Node;AmplifyShaderEditor.SimpleMultiplyOpNode;61;-1844.332,71.8488;Inherit;False;2;2;0;FLOAT2;0,0;False;1;FLOAT;0;False;1;FLOAT2;0
  1484. Node;AmplifyShaderEditor.TextureCoordinatesNode;14;-2055.63,-190.8798;Inherit;False;0;11;2;3;2;SAMPLER2D;;False;0;FLOAT2;1,1;False;1;FLOAT2;0,0;False;5;FLOAT2;0;FLOAT;1;FLOAT;2;FLOAT;3;FLOAT;4
  1485. Node;AmplifyShaderEditor.Vector2Node;20;-1956.617,546.7686;Float;False;Property;_Main_UV;Main_UV;6;0;Create;True;0;0;0;False;0;False;0,0;0,-0.2;0;3;FLOAT2;0;FLOAT;1;FLOAT;2
  1486. Node;AmplifyShaderEditor.DynamicAppendNode;44;-1896.038,906.0115;Inherit;False;FLOAT2;4;0;FLOAT;0;False;1;FLOAT;0;False;2;FLOAT;0;False;3;FLOAT;0;False;1;FLOAT2;0
  1487. Node;AmplifyShaderEditor.RangedFloatNode;51;-1330.696,1474.337;Inherit;False;Property;_CustomDataDissolve;CustomDataDissolve;14;0;Create;True;0;0;0;False;0;False;0;1;0;1;0;1;FLOAT;0
  1488. Node;AmplifyShaderEditor.RangedFloatNode;40;-1953.16,1262.573;Inherit;False;Property;_CustomDataMainUV;CustomDataMainUV;7;0;Create;True;0;0;0;False;0;False;0;0;0;1;0;1;FLOAT;0
  1489. Node;AmplifyShaderEditor.TextureCoordinatesNode;42;-1920.383,1077.022;Inherit;False;0;10;2;3;2;SAMPLER2D;;False;0;FLOAT2;1,1;False;1;FLOAT2;0,0;False;5;FLOAT2;0;FLOAT;1;FLOAT;2;FLOAT;3;FLOAT;4
  1490. Node;AmplifyShaderEditor.Vector2Node;30;-1315.274,898.8879;Float;False;Property;_Diss_UV;Diss_UV;15;0;Create;True;0;0;0;False;0;False;0,0;0,0;0;3;FLOAT2;0;FLOAT;1;FLOAT;2
  1491. Node;AmplifyShaderEditor.FunctionNode;63;-1323.475,1023.969;Inherit;False;CombatTiem;0;;4;1401d2ae4598ff34b8dfd9c35ce782b0;0;0;1;FLOAT;0
  1492. Node;AmplifyShaderEditor.PannerNode;12;-1709.95,-39.18789;Inherit;False;3;0;FLOAT2;0,0;False;2;FLOAT2;0,0;False;1;FLOAT;1;False;1;FLOAT2;0
  1493. Node;AmplifyShaderEditor.TextureCoordinatesNode;18;-1919.318,402.2365;Inherit;False;0;10;2;3;2;SAMPLER2D;;False;0;FLOAT2;1,1;False;1;FLOAT2;0,0;False;5;FLOAT2;0;FLOAT;1;FLOAT;2;FLOAT;3;FLOAT;4
  1494. Node;AmplifyShaderEditor.TextureCoordinatesNode;48;-1221.662,1253.969;Inherit;False;1;-1;4;3;2;SAMPLER2D;;False;0;FLOAT2;1,1;False;1;FLOAT2;0,0;False;5;FLOAT4;0;FLOAT;1;FLOAT;2;FLOAT;3;FLOAT;4
  1495. Node;AmplifyShaderEditor.RangedFloatNode;32;-1110.199,1139.031;Float;False;Property;_Diss_value;Diss_value;12;0;Create;True;0;0;0;False;0;False;0;0;0;0;0;1;FLOAT;0
  1496. Node;AmplifyShaderEditor.RoundOpNode;49;-1025.297,1492.184;Inherit;False;1;0;FLOAT;0;False;1;FLOAT;0
  1497. Node;AmplifyShaderEditor.PannerNode;19;-1621.324,464.6074;Inherit;False;3;0;FLOAT2;0,0;False;2;FLOAT2;0,0;False;1;FLOAT;1;False;1;FLOAT2;0
  1498. Node;AmplifyShaderEditor.RangedFloatNode;16;-1363.593,179.8082;Float;False;Property;_Turb_Value;Turb_Value;9;0;Create;True;0;0;0;False;0;False;0;0;0;0;0;1;FLOAT;0
  1499. Node;AmplifyShaderEditor.SamplerNode;11;-1454.453,-68.04037;Inherit;True;Property;_Turb_Noise;Turb_Noise;8;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;6;COLOR;0;FLOAT;1;FLOAT;2;FLOAT;3;FLOAT;4;FLOAT3;5
  1500. Node;AmplifyShaderEditor.SimpleAddOpNode;41;-1696.486,908.3846;Inherit;False;2;2;0;FLOAT2;0,0;False;1;FLOAT2;0,0;False;1;FLOAT2;0
  1501. Node;AmplifyShaderEditor.TextureCoordinatesNode;29;-1294,776.9401;Inherit;False;0;28;2;3;2;SAMPLER2D;;False;0;FLOAT2;1,1;False;1;FLOAT2;0,0;False;5;FLOAT2;0;FLOAT;1;FLOAT;2;FLOAT;3;FLOAT;4
  1502. Node;AmplifyShaderEditor.RoundOpNode;43;-1555.143,1109.573;Inherit;False;1;0;FLOAT;0;False;1;FLOAT;0
  1503. Node;AmplifyShaderEditor.SimpleMultiplyOpNode;64;-1136.475,947.9694;Inherit;False;2;2;0;FLOAT2;0,0;False;1;FLOAT;0;False;1;FLOAT2;0
  1504. Node;AmplifyShaderEditor.Vector2Node;68;-397.7529,1621.273;Float;False;Property;_Mask_UV;Mask_UV;17;0;Create;False;0;0;0;False;0;False;0,0;0,0;0;3;FLOAT2;0;FLOAT;1;FLOAT;2
  1505. Node;AmplifyShaderEditor.FunctionNode;66;-495.3539,1826.354;Inherit;False;CombatTiem;0;;5;1401d2ae4598ff34b8dfd9c35ce782b0;0;0;1;FLOAT;0
  1506. Node;AmplifyShaderEditor.TextureCoordinatesNode;38;-380.9393,1440.796;Inherit;False;0;37;2;3;2;SAMPLER2D;;False;0;FLOAT2;1,1;False;1;FLOAT2;0,0;False;5;FLOAT2;0;FLOAT;1;FLOAT;2;FLOAT;3;FLOAT;4
  1507. Node;AmplifyShaderEditor.LerpOp;46;-1209.387,515.3032;Inherit;False;3;0;FLOAT2;0,0;False;1;FLOAT2;0,0;False;2;FLOAT;0;False;1;FLOAT2;0
  1508. Node;AmplifyShaderEditor.PannerNode;31;-988.3259,835.3927;Inherit;False;3;0;FLOAT2;0,0;False;2;FLOAT2;0,0;False;1;FLOAT;1;False;1;FLOAT2;0
  1509. Node;AmplifyShaderEditor.SimpleMultiplyOpNode;15;-1140.439,22.43915;Inherit;True;2;2;0;FLOAT;0;False;1;FLOAT;0;False;1;FLOAT;0
  1510. Node;AmplifyShaderEditor.LerpOp;50;-873.476,1428.276;Inherit;False;3;0;FLOAT;0;False;1;FLOAT;0;False;2;FLOAT;0;False;1;FLOAT;0
  1511. Node;AmplifyShaderEditor.RangedFloatNode;34;-646.1521,1415.687;Float;False;Property;_Soft_value;Soft_value;13;0;Create;True;0;0;0;False;0;False;0;0;0;0;0;1;FLOAT;0
  1512. Node;AmplifyShaderEditor.SimpleMultiplyOpNode;67;-219.9539,1672.354;Inherit;False;2;2;0;FLOAT2;0,0;False;1;FLOAT;0;False;1;FLOAT2;0
  1513. Node;AmplifyShaderEditor.LerpOp;69;-889.1187,1142.983;Inherit;False;3;0;FLOAT;0;False;1;FLOAT;0;False;2;FLOAT;0;False;1;FLOAT;0
  1514. Node;AmplifyShaderEditor.SimpleAddOpNode;17;-845.2657,43.11723;Inherit;True;2;2;0;FLOAT;0;False;1;FLOAT2;0,0;False;1;FLOAT2;0
  1515. Node;AmplifyShaderEditor.SimpleAddOpNode;35;-461.4336,1272.171;Inherit;False;2;2;0;FLOAT;0;False;1;FLOAT;0;False;1;FLOAT;0
  1516. Node;AmplifyShaderEditor.SamplerNode;28;-780.1833,832.465;Inherit;True;Property;_dissolve;dissolve;11;0;Create;True;0;0;0;False;0;False;-1;None;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;6;COLOR;0;FLOAT;1;FLOAT;2;FLOAT;3;FLOAT;4;FLOAT3;5
  1517. Node;AmplifyShaderEditor.PannerNode;65;-152.8869,1533.327;Inherit;False;3;0;FLOAT2;0,0;False;2;FLOAT2;0,0;False;1;FLOAT;1;False;1;FLOAT2;0
  1518. Node;AmplifyShaderEditor.SmoothstepOpNode;33;-259.1566,927.1394;Inherit;True;3;0;FLOAT;0;False;1;FLOAT;0;False;2;FLOAT;1;False;1;FLOAT;0
  1519. Node;AmplifyShaderEditor.RangedFloatNode;25;-218.4993,1165.523;Inherit;False;Property;_Alpha;Alpha;4;0;Create;True;0;0;0;False;0;False;1;0.6;0;1;0;1;FLOAT;0
  1520. Node;AmplifyShaderEditor.ColorNode;26;-478.6241,211.8819;Float;False;Property;_Main_Color;Main_Color;2;1;[HDR];Create;True;0;0;0;False;0;False;1,1,1,1;1,1,1,1;True;True;0;6;COLOR;0;FLOAT;1;FLOAT;2;FLOAT;3;FLOAT;4;FLOAT3;5
  1521. Node;AmplifyShaderEditor.SamplerNode;37;77.79703,1622.423;Inherit;True;Property;_Mask;Mask;16;0;Create;True;0;0;0;False;0;False;-1;None;d934f6a6df9022a43981f28151507b74;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;6;COLOR;0;FLOAT;1;FLOAT;2;FLOAT;3;FLOAT;4;FLOAT3;5
  1522. Node;AmplifyShaderEditor.VertexColorNode;27;-457.5723,413.3982;Inherit;False;0;5;COLOR;0;FLOAT;1;FLOAT;2;FLOAT;3;FLOAT;4
  1523. Node;AmplifyShaderEditor.SamplerNode;10;-534.1013,-26.0769;Inherit;True;Property;_Main_Tex;Main_Tex;5;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;6;COLOR;0;FLOAT;1;FLOAT;2;FLOAT;3;FLOAT;4;FLOAT3;5
  1524. Node;AmplifyShaderEditor.SimpleMultiplyOpNode;36;159.732,861.6415;Inherit;False;6;6;0;FLOAT;0;False;1;FLOAT;0;False;2;FLOAT;0;False;3;FLOAT;0;False;4;FLOAT;0;False;5;FLOAT;0;False;1;FLOAT;0
  1525. Node;AmplifyShaderEditor.RangedFloatNode;72;50.47083,522.2477;Inherit;False;Property;_ca;_ca;18;0;Create;True;0;0;0;False;0;False;1;0;0;0;0;1;FLOAT;0
  1526. Node;AmplifyShaderEditor.FunctionNode;59;-1957.849,684.8309;Inherit;False;CombatTiem;0;;6;1401d2ae4598ff34b8dfd9c35ce782b0;0;0;1;FLOAT;0
  1527. Node;AmplifyShaderEditor.SimpleMultiplyOpNode;60;-1744.325,610.8806;Inherit;False;2;2;0;FLOAT2;0,0;False;1;FLOAT;0;False;1;FLOAT2;0
  1528. Node;AmplifyShaderEditor.SimpleMultiplyOpNode;23;-177.6045,131.307;Inherit;True;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;0
  1529. Node;AmplifyShaderEditor.RangedFloatNode;71;24.25736,336.1679;Inherit;False;Property;_light;亮度;3;0;Create;False;0;0;0;False;0;False;1;1;0;0;0;1;FLOAT;0
  1530. Node;AmplifyShaderEditor.SimpleMultiplyOpNode;70;172.4574,198.368;Inherit;False;2;2;0;COLOR;0,0,0,0;False;1;FLOAT;0;False;1;COLOR;0
  1531. Node;AmplifyShaderEditor.SimpleMultiplyOpNode;73;194.4708,495.2477;Inherit;False;2;2;0;FLOAT;0;False;1;FLOAT;0;False;1;FLOAT;0
  1532. Node;AmplifyShaderEditor.TemplateMultiPassMasterNode;6;0,0;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;;False;True;0;False;;False;False;False;False;False;False;False;False;False;True;False;255;False;;255;False;;255;False;;7;False;;1;False;;1;False;;1;False;;7;False;;1;False;;1;False;;1;False;;False;False;False;False;True;4;RenderPipeline=UniversalPipeline;RenderType=Opaque=RenderType;Queue=Geometry=Queue=0;UniversalMaterialType=Unlit;True;5;True;12;all;0;False;False;False;False;False;False;False;False;False;False;False;False;True;0;False;;False;True;2;False;;False;False;False;False;False;False;False;False;False;False;False;False;False;False;True;1;LightMode=SceneSelectionPass;False;False;0;Hidden/InternalErrorShader;0;0;Standard;0;False;0
  1533. Node;AmplifyShaderEditor.TemplateMultiPassMasterNode;8;0,0;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;;False;True;0;False;;False;False;False;False;False;False;False;False;False;True;False;255;False;;255;False;;255;False;;7;False;;1;False;;1;False;;1;False;;7;False;;1;False;;1;False;;1;False;;False;False;False;False;True;4;RenderPipeline=UniversalPipeline;RenderType=Opaque=RenderType;Queue=Geometry=Queue=0;UniversalMaterialType=Unlit;True;5;True;12;all;0;False;False;False;False;False;False;False;False;False;False;False;False;False;False;False;False;False;False;False;False;False;False;False;False;False;False;True;1;False;;True;3;False;;False;True;1;LightMode=DepthNormalsOnly;False;False;0;Hidden/InternalErrorShader;0;0;Standard;0;False;0
  1534. Node;AmplifyShaderEditor.TemplateMultiPassMasterNode;0;0,118.6854;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;;False;True;0;False;;False;False;False;False;False;False;False;False;False;True;False;255;False;;255;False;;255;False;;7;False;;1;False;;1;False;;1;False;;7;False;;1;False;;1;False;;1;False;;False;False;False;False;True;4;RenderPipeline=UniversalPipeline;RenderType=Opaque=RenderType;Queue=Geometry=Queue=0;UniversalMaterialType=Unlit;True;5;True;12;all;0;False;True;1;1;False;;0;False;;0;1;False;;0;False;;False;False;False;False;False;False;False;False;False;False;False;False;True;0;False;;False;True;True;True;True;True;0;False;;False;False;False;False;False;False;False;True;False;255;False;;255;False;;255;False;;7;False;;1;False;;1;False;;1;False;;7;False;;1;False;;1;False;;1;False;;False;True;1;False;;True;3;False;;True;True;0;False;;0;False;;True;0;False;False;0;Hidden/InternalErrorShader;0;0;Standard;0;False;0
  1535. Node;AmplifyShaderEditor.TemplateMultiPassMasterNode;9;0,0;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;;False;True;0;False;;False;False;False;False;False;False;False;False;False;True;False;255;False;;255;False;;255;False;;7;False;;1;False;;1;False;;1;False;;7;False;;1;False;;1;False;;1;False;;False;False;False;False;True;4;RenderPipeline=UniversalPipeline;RenderType=Opaque=RenderType;Queue=Geometry=Queue=0;UniversalMaterialType=Unlit;True;5;True;12;all;0;False;False;False;False;False;False;False;False;False;False;False;False;False;False;False;False;False;False;False;False;False;False;False;False;False;False;True;1;False;;True;3;False;;False;True;1;LightMode=DepthNormalsOnly;False;True;9;d3d11;metal;vulkan;xboxone;xboxseries;playstation;ps4;ps5;switch;0;Hidden/InternalErrorShader;0;0;Standard;0;False;0
  1536. Node;AmplifyShaderEditor.TemplateMultiPassMasterNode;7;0,0;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;;False;True;0;False;;False;False;False;False;False;False;False;False;False;True;False;255;False;;255;False;;255;False;;7;False;;1;False;;1;False;;1;False;;7;False;;1;False;;1;False;;1;False;;False;False;False;False;True;4;RenderPipeline=UniversalPipeline;RenderType=Opaque=RenderType;Queue=Geometry=Queue=0;UniversalMaterialType=Unlit;True;5;True;12;all;0;False;False;False;False;False;False;False;False;False;False;False;False;True;0;False;;False;False;False;False;False;False;False;False;False;False;False;False;False;False;False;False;True;1;LightMode=Picking;False;False;0;Hidden/InternalErrorShader;0;0;Standard;0;False;0
  1537. Node;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;;False;True;0;False;;False;False;False;False;False;False;False;False;False;True;False;255;False;;255;False;;255;False;;7;False;;1;False;;1;False;;1;False;;7;False;;1;False;;1;False;;1;False;;False;False;False;False;True;4;RenderPipeline=UniversalPipeline;RenderType=Opaque=RenderType;Queue=Geometry=Queue=0;UniversalMaterialType=Unlit;True;5;True;12;all;0;False;False;False;False;False;False;False;False;False;False;False;False;True;0;False;;False;False;False;True;False;False;False;False;0;False;;False;False;False;False;False;False;False;False;False;True;1;False;;True;3;False;;False;True;1;LightMode=ShadowCaster;False;False;0;Hidden/InternalErrorShader;0;0;Standard;0;False;0
  1538. Node;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;;False;True;0;False;;False;False;False;False;False;False;False;False;False;True;False;255;False;;255;False;;255;False;;7;False;;1;False;;1;False;;1;False;;7;False;;1;False;;1;False;;1;False;;False;False;False;False;True;4;RenderPipeline=UniversalPipeline;RenderType=Opaque=RenderType;Queue=Geometry=Queue=0;UniversalMaterialType=Unlit;True;5;True;12;all;0;False;False;False;False;False;False;False;False;False;False;False;False;True;0;False;;False;False;False;True;False;False;False;False;0;False;;False;False;False;False;False;False;False;False;False;True;1;False;;False;False;True;1;LightMode=DepthOnly;False;False;0;Hidden/InternalErrorShader;0;0;Standard;0;False;0
  1539. Node;AmplifyShaderEditor.TemplateMultiPassMasterNode;1;398.8127,118.6854;Float;False;True;-1;2;UnityEditor.ShaderGraphUnlitGUI;0;13;LT/AlphaMoveTurbDissolve;2992e84f91cbeb14eab234972e07ea9d;True;Forward;0;1;Forward;9;False;False;False;False;False;False;False;False;False;False;False;False;True;0;False;;False;True;2;False;;False;False;False;False;False;False;False;False;False;True;False;255;False;;255;False;;255;False;;7;False;;1;False;;1;False;;1;False;;7;False;;1;False;;1;False;;1;False;;False;False;False;False;True;4;RenderPipeline=UniversalPipeline;RenderType=Transparent=RenderType;Queue=Transparent=Queue=0;UniversalMaterialType=Unlit;True;5;True;7;d3d11;glcore;gles;gles3;metal;vulkan;ps5;0;False;True;1;5;False;;10;False;;1;1;False;;10;False;;False;False;False;False;False;False;False;False;False;False;False;False;False;False;True;True;True;True;True;0;False;;False;False;False;False;False;False;False;True;False;255;False;;255;False;;255;False;;7;False;;1;False;;1;False;;1;False;;7;False;;1;False;;1;False;;1;False;;False;True;2;False;;True;3;False;;True;True;0;False;;0;False;;True;1;LightMode=UniversalForwardOnly;False;False;0;Hidden/InternalErrorShader;0;0;Standard;25;Surface;1;637910504726801164; Blend;0;0;Two Sided;0;637919111376163442;Alpha Clipping;0;638816009414693181; Use Shadow Threshold;0;0;Forward Only;0;0;Cast Shadows;0;637910503133663964;Receive Shadows;0;637910503141455090;GPU Instancing;1;0;LOD CrossFade;0;0;Built-in Fog;0;0;Meta Pass;0;0;Extra Pre Pass;0;0;Tessellation;0;0; Phong;0;0; Strength;0.5,False,;0; Type;0;0; Tess;16,False,;0; Min;10,False,;0; Max;25,False,;0; Edge Length;16,False,;0; Max Displacement;25,False,;0;Write Depth;0;0; Early Z;0;0;Vertex Position,InvertActionOnDeselection;1;0;0;10;False;True;False;True;False;False;True;True;True;False;False;;False;0
  1540. Node;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;;False;True;0;False;;False;False;False;False;False;False;False;False;False;True;False;255;False;;255;False;;255;False;;7;False;;1;False;;1;False;;1;False;;7;False;;1;False;;1;False;;1;False;;False;False;False;False;True;4;RenderPipeline=UniversalPipeline;RenderType=Opaque=RenderType;Queue=Geometry=Queue=0;UniversalMaterialType=Unlit;True;5;True;12;all;0;False;False;False;False;False;False;False;False;False;False;False;False;False;False;True;2;False;;False;False;False;False;False;False;False;False;False;False;False;False;False;False;True;1;LightMode=Meta;False;False;0;Hidden/InternalErrorShader;0;0;Standard;0;False;0
  1541. Node;AmplifyShaderEditor.TemplateMultiPassMasterNode;5;0,0;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;;False;True;0;False;;False;False;False;False;False;False;False;False;False;True;False;255;False;;255;False;;255;False;;7;False;;1;False;;1;False;;1;False;;7;False;;1;False;;1;False;;1;False;;False;False;False;False;True;4;RenderPipeline=UniversalPipeline;RenderType=Opaque=RenderType;Queue=Geometry=Queue=0;UniversalMaterialType=Unlit;True;5;True;12;all;0;False;True;1;5;False;;10;False;;1;1;False;;10;False;;False;False;False;False;False;False;False;False;False;False;False;False;False;False;True;True;True;True;True;0;False;;False;False;False;False;False;False;False;True;False;255;False;;255;False;;255;False;;7;False;;1;False;;1;False;;1;False;;7;False;;1;False;;1;False;;1;False;;False;True;2;False;;True;3;False;;True;True;0;False;;0;False;;True;1;LightMode=Universal2D;False;False;0;Hidden/InternalErrorShader;0;0;Standard;0;False;0
  1542. WireConnection;61;0;13;0
  1543. WireConnection;61;1;62;0
  1544. WireConnection;44;0;45;3
  1545. WireConnection;44;1;45;4
  1546. WireConnection;12;0;14;0
  1547. WireConnection;12;2;61;0
  1548. WireConnection;49;0;51;0
  1549. WireConnection;19;0;18;0
  1550. WireConnection;19;2;20;0
  1551. WireConnection;11;1;12;0
  1552. WireConnection;41;0;44;0
  1553. WireConnection;41;1;42;0
  1554. WireConnection;43;0;40;0
  1555. WireConnection;64;0;30;0
  1556. WireConnection;64;1;63;0
  1557. WireConnection;46;0;19;0
  1558. WireConnection;46;1;41;0
  1559. WireConnection;46;2;43;0
  1560. WireConnection;31;0;29;0
  1561. WireConnection;31;2;64;0
  1562. WireConnection;15;0;11;1
  1563. WireConnection;15;1;16;0
  1564. WireConnection;50;0;32;0
  1565. WireConnection;50;1;48;1
  1566. WireConnection;50;2;49;0
  1567. WireConnection;67;0;68;0
  1568. WireConnection;67;1;66;0
  1569. WireConnection;69;0;32;0
  1570. WireConnection;69;1;48;1
  1571. WireConnection;69;2;51;0
  1572. WireConnection;17;0;15;0
  1573. WireConnection;17;1;46;0
  1574. WireConnection;35;0;50;0
  1575. WireConnection;35;1;34;0
  1576. WireConnection;28;1;31;0
  1577. WireConnection;65;0;38;0
  1578. WireConnection;65;2;67;0
  1579. WireConnection;33;0;28;1
  1580. WireConnection;33;1;69;0
  1581. WireConnection;33;2;35;0
  1582. WireConnection;37;1;65;0
  1583. WireConnection;10;1;17;0
  1584. WireConnection;36;0;33;0
  1585. WireConnection;36;1;25;0
  1586. WireConnection;36;2;10;4
  1587. WireConnection;36;3;27;4
  1588. WireConnection;36;4;26;4
  1589. WireConnection;36;5;37;1
  1590. WireConnection;60;0;20;0
  1591. WireConnection;60;1;59;0
  1592. WireConnection;23;0;10;0
  1593. WireConnection;23;1;26;0
  1594. WireConnection;23;2;27;0
  1595. WireConnection;70;0;23;0
  1596. WireConnection;70;1;71;0
  1597. WireConnection;73;0;72;0
  1598. WireConnection;73;1;36;0
  1599. WireConnection;1;2;70;0
  1600. WireConnection;1;3;73;0
  1601. ASEEND*/
  1602. //CHKSM=81A9822BB8037BD1DC56B7E994FDC5C19E7374B9