AddMoveTurbDissolveYmask.shader 83 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563156415651566156715681569157015711572157315741575157615771578157915801581158215831584158515861587158815891590159115921593159415951596159715981599160016011602160316041605160616071608160916101611161216131614161516161617161816191620162116221623162416251626162716281629163016311632163316341635163616371638163916401641164216431644164516461647164816491650165116521653165416551656165716581659166016611662166316641665166616671668166916701671167216731674167516761677167816791680168116821683168416851686168716881689169016911692169316941695169616971698169917001701170217031704170517061707170817091710171117121713171417151716171717181719172017211722172317241725172617271728172917301731173217331734173517361737173817391740174117421743174417451746174717481749175017511752175317541755175617571758175917601761176217631764176517661767176817691770177117721773177417751776177717781779178017811782178317841785178617871788178917901791179217931794179517961797179817991800180118021803180418051806180718081809181018111812181318141815181618171818181918201821182218231824182518261827182818291830183118321833183418351836183718381839184018411842184318441845184618471848184918501851185218531854185518561857185818591860186118621863186418651866186718681869187018711872187318741875187618771878187918801881188218831884188518861887188818891890189118921893189418951896189718981899190019011902190319041905190619071908190919101911191219131914191519161917191819191920192119221923192419251926192719281929193019311932193319341935193619371938193919401941194219431944194519461947194819491950195119521953195419551956195719581959196019611962196319641965196619671968196919701971197219731974197519761977197819791980198119821983198419851986198719881989199019911992199319941995199619971998199920002001200220032004200520062007200820092010201120122013201420152016201720182019202020212022202320242025202620272028202920302031203220332034203520362037203820392040204120422043204420452046204720482049205020512052205320542055205620572058205920602061206220632064206520662067206820692070207120722073207420752076207720782079208020812082208320842085208620872088208920902091
  1. // Made with Amplify Shader Editor
  2. // Available at the Unity Asset Store - http://u3d.as/y3X
  3. Shader "LT/AddMoveTurbDissolveYmask"
  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. [ASEBegin]_CTime("_CTime", Float) = 1
  10. [HDR]_Main_Color("Main_Color", Color) = (1,1,1,1)
  11. _Alpha("Alpha", Range( 0 , 1)) = 1
  12. _Main_Tex("Main_Tex", 2D) = "white" {}
  13. _MainAlpha("MainAlpha", Range( 0 , 1)) = 0
  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. _DissSoft("DissSoft", Float) = 0
  22. _Diss_UV("Diss_UV", Vector) = (0,0,0,0)
  23. _CustomDataDissolve("CustomDataDissolve", Range( 0 , 1)) = 0
  24. _Mask("Mask", 2D) = "white" {}
  25. _MaskUVSpeed("MaskUVSpeed", Vector) = (0,0,0,0)
  26. _Ymask("Ymask", Float) = 0.21
  27. _YmaskExp("Ymask硬吗", Range( 1 , 10)) = 1
  28. [ASEEnd]_ca("_ca", Float) = 1
  29. [HideInInspector]_QueueOffset("_QueueOffset", Float) = 0
  30. [HideInInspector]_QueueControl("_QueueControl", Float) = -1
  31. [HideInInspector][NoScaleOffset]unity_Lightmaps("unity_Lightmaps", 2DArray) = "" {}
  32. [HideInInspector][NoScaleOffset]unity_LightmapsInd("unity_LightmapsInd", 2DArray) = "" {}
  33. [HideInInspector][NoScaleOffset]unity_ShadowMasks("unity_ShadowMasks", 2DArray) = "" {}
  34. //_TessPhongStrength( "Tess Phong Strength", Range( 0, 1 ) ) = 0.5
  35. //_TessValue( "Tess Max Tessellation", Range( 1, 32 ) ) = 16
  36. //_TessMin( "Tess Min Distance", Float ) = 10
  37. //_TessMax( "Tess Max Distance", Float ) = 25
  38. //_TessEdgeLength ( "Tess Edge length", Range( 2, 50 ) ) = 16
  39. //_TessMaxDisp( "Tess Max Displacement", Float ) = 25
  40. }
  41. SubShader
  42. {
  43. LOD 0
  44. Tags { "RenderPipeline"="UniversalPipeline" "RenderType"="Transparent" "Queue"="Transparent" }
  45. Cull Off
  46. AlphaToMask Off
  47. HLSLINCLUDE
  48. #pragma target 3.0
  49. #pragma prefer_hlslcc gles
  50. #pragma only_renderers d3d9 d3d11 glcore gles gles3 metal vulkan nomrt
  51. #ifndef ASE_TESS_FUNCS
  52. #define ASE_TESS_FUNCS
  53. float4 FixedTess( float tessValue )
  54. {
  55. return tessValue;
  56. }
  57. float CalcDistanceTessFactor (float4 vertex, float minDist, float maxDist, float tess, float4x4 o2w, float3 cameraPos )
  58. {
  59. float3 wpos = mul(o2w,vertex).xyz;
  60. float dist = distance (wpos, cameraPos);
  61. float f = clamp(1.0 - (dist - minDist) / (maxDist - minDist), 0.01, 1.0) * tess;
  62. return f;
  63. }
  64. float4 CalcTriEdgeTessFactors (float3 triVertexFactors)
  65. {
  66. float4 tess;
  67. tess.x = 0.5 * (triVertexFactors.y + triVertexFactors.z);
  68. tess.y = 0.5 * (triVertexFactors.x + triVertexFactors.z);
  69. tess.z = 0.5 * (triVertexFactors.x + triVertexFactors.y);
  70. tess.w = (triVertexFactors.x + triVertexFactors.y + triVertexFactors.z) / 3.0f;
  71. return tess;
  72. }
  73. float CalcEdgeTessFactor (float3 wpos0, float3 wpos1, float edgeLen, float3 cameraPos, float4 scParams )
  74. {
  75. float dist = distance (0.5 * (wpos0+wpos1), cameraPos);
  76. float len = distance(wpos0, wpos1);
  77. float f = max(len * scParams.y / (edgeLen * dist), 1.0);
  78. return f;
  79. }
  80. float DistanceFromPlane (float3 pos, float4 plane)
  81. {
  82. float d = dot (float4(pos,1.0f), plane);
  83. return d;
  84. }
  85. bool WorldViewFrustumCull (float3 wpos0, float3 wpos1, float3 wpos2, float cullEps, float4 planes[6] )
  86. {
  87. float4 planeTest;
  88. planeTest.x = (( DistanceFromPlane(wpos0, planes[0]) > -cullEps) ? 1.0f : 0.0f ) +
  89. (( DistanceFromPlane(wpos1, planes[0]) > -cullEps) ? 1.0f : 0.0f ) +
  90. (( DistanceFromPlane(wpos2, planes[0]) > -cullEps) ? 1.0f : 0.0f );
  91. planeTest.y = (( DistanceFromPlane(wpos0, planes[1]) > -cullEps) ? 1.0f : 0.0f ) +
  92. (( DistanceFromPlane(wpos1, planes[1]) > -cullEps) ? 1.0f : 0.0f ) +
  93. (( DistanceFromPlane(wpos2, planes[1]) > -cullEps) ? 1.0f : 0.0f );
  94. planeTest.z = (( DistanceFromPlane(wpos0, planes[2]) > -cullEps) ? 1.0f : 0.0f ) +
  95. (( DistanceFromPlane(wpos1, planes[2]) > -cullEps) ? 1.0f : 0.0f ) +
  96. (( DistanceFromPlane(wpos2, planes[2]) > -cullEps) ? 1.0f : 0.0f );
  97. planeTest.w = (( DistanceFromPlane(wpos0, planes[3]) > -cullEps) ? 1.0f : 0.0f ) +
  98. (( DistanceFromPlane(wpos1, planes[3]) > -cullEps) ? 1.0f : 0.0f ) +
  99. (( DistanceFromPlane(wpos2, planes[3]) > -cullEps) ? 1.0f : 0.0f );
  100. return !all (planeTest);
  101. }
  102. float4 DistanceBasedTess( float4 v0, float4 v1, float4 v2, float tess, float minDist, float maxDist, float4x4 o2w, float3 cameraPos )
  103. {
  104. float3 f;
  105. f.x = CalcDistanceTessFactor (v0,minDist,maxDist,tess,o2w,cameraPos);
  106. f.y = CalcDistanceTessFactor (v1,minDist,maxDist,tess,o2w,cameraPos);
  107. f.z = CalcDistanceTessFactor (v2,minDist,maxDist,tess,o2w,cameraPos);
  108. return CalcTriEdgeTessFactors (f);
  109. }
  110. float4 EdgeLengthBasedTess( float4 v0, float4 v1, float4 v2, float edgeLength, float4x4 o2w, float3 cameraPos, float4 scParams )
  111. {
  112. float3 pos0 = mul(o2w,v0).xyz;
  113. float3 pos1 = mul(o2w,v1).xyz;
  114. float3 pos2 = mul(o2w,v2).xyz;
  115. float4 tess;
  116. tess.x = CalcEdgeTessFactor (pos1, pos2, edgeLength, cameraPos, scParams);
  117. tess.y = CalcEdgeTessFactor (pos2, pos0, edgeLength, cameraPos, scParams);
  118. tess.z = CalcEdgeTessFactor (pos0, pos1, edgeLength, cameraPos, scParams);
  119. tess.w = (tess.x + tess.y + tess.z) / 3.0f;
  120. return tess;
  121. }
  122. float4 EdgeLengthBasedTessCull( float4 v0, float4 v1, float4 v2, float edgeLength, float maxDisplacement, float4x4 o2w, float3 cameraPos, float4 scParams, float4 planes[6] )
  123. {
  124. float3 pos0 = mul(o2w,v0).xyz;
  125. float3 pos1 = mul(o2w,v1).xyz;
  126. float3 pos2 = mul(o2w,v2).xyz;
  127. float4 tess;
  128. if (WorldViewFrustumCull(pos0, pos1, pos2, maxDisplacement, planes))
  129. {
  130. tess = 0.0f;
  131. }
  132. else
  133. {
  134. tess.x = CalcEdgeTessFactor (pos1, pos2, edgeLength, cameraPos, scParams);
  135. tess.y = CalcEdgeTessFactor (pos2, pos0, edgeLength, cameraPos, scParams);
  136. tess.z = CalcEdgeTessFactor (pos0, pos1, edgeLength, cameraPos, scParams);
  137. tess.w = (tess.x + tess.y + tess.z) / 3.0f;
  138. }
  139. return tess;
  140. }
  141. #endif //ASE_TESS_FUNCS
  142. ENDHLSL
  143. Pass
  144. {
  145. Name "Forward"
  146. Tags { "LightMode"="UniversalForwardOnly" }
  147. Blend One One, One One
  148. ZWrite Off
  149. ZTest LEqual
  150. Offset 0 , 0
  151. ColorMask RGBA
  152. HLSLPROGRAM
  153. #pragma multi_compile_instancing
  154. #define _RECEIVE_SHADOWS_OFF 1
  155. #define ASE_SRP_VERSION 999999
  156. #pragma multi_compile _ LIGHTMAP_ON
  157. #pragma multi_compile _ DIRLIGHTMAP_COMBINED
  158. #pragma shader_feature _ _SAMPLE_GI
  159. #pragma multi_compile _ _DBUFFER_MRT1 _DBUFFER_MRT2 _DBUFFER_MRT3
  160. #pragma multi_compile _ DEBUG_DISPLAY
  161. #define SHADERPASS SHADERPASS_UNLIT
  162. #pragma vertex vert
  163. #pragma fragment frag
  164. #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/Color.hlsl"
  165. #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/Texture.hlsl"
  166. #include "Packages/com.unity.render-pipelines.universal/ShaderLibrary/Core.hlsl"
  167. #include "Packages/com.unity.render-pipelines.universal/ShaderLibrary/Lighting.hlsl"
  168. #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/TextureStack.hlsl"
  169. #include "Packages/com.unity.render-pipelines.universal/ShaderLibrary/ShaderGraphFunctions.hlsl"
  170. #include "Packages/com.unity.render-pipelines.universal/ShaderLibrary/DBuffer.hlsl"
  171. #include "Packages/com.unity.render-pipelines.universal/Editor/ShaderGraph/Includes/ShaderPass.hlsl"
  172. #include "Packages/com.unity.render-pipelines.universal/ShaderLibrary/Debug/Debugging3D.hlsl"
  173. #include "Packages/com.unity.render-pipelines.universal/ShaderLibrary/Input.hlsl"
  174. #include "Packages/com.unity.render-pipelines.universal/ShaderLibrary/SurfaceData.hlsl"
  175. #define ASE_NEEDS_FRAG_WORLD_POSITION
  176. struct VertexInput
  177. {
  178. float4 vertex : POSITION;
  179. float3 ase_normal : NORMAL;
  180. float4 ase_texcoord : TEXCOORD0;
  181. float4 ase_texcoord1 : TEXCOORD1;
  182. float4 ase_color : COLOR;
  183. UNITY_VERTEX_INPUT_INSTANCE_ID
  184. };
  185. struct VertexOutput
  186. {
  187. float4 clipPos : SV_POSITION;
  188. #if defined(ASE_NEEDS_FRAG_WORLD_POSITION)
  189. float3 worldPos : TEXCOORD0;
  190. #endif
  191. #if defined(REQUIRES_VERTEX_SHADOW_COORD_INTERPOLATOR) && defined(ASE_NEEDS_FRAG_SHADOWCOORDS)
  192. float4 shadowCoord : TEXCOORD1;
  193. #endif
  194. #ifdef ASE_FOG
  195. float fogFactor : TEXCOORD2;
  196. #endif
  197. float4 ase_texcoord3 : TEXCOORD3;
  198. float4 ase_texcoord4 : TEXCOORD4;
  199. float4 ase_color : COLOR;
  200. UNITY_VERTEX_INPUT_INSTANCE_ID
  201. UNITY_VERTEX_OUTPUT_STEREO
  202. };
  203. CBUFFER_START(UnityPerMaterial)
  204. float4 _dissolve_ST;
  205. float4 _Turb_Noise_ST;
  206. float4 _Mask_ST;
  207. float4 _Main_Tex_ST;
  208. float4 _Main_Color;
  209. float2 _Turb_UV;
  210. float2 _Diss_UV;
  211. float2 _MaskUVSpeed;
  212. float2 _Main_UV;
  213. float _CustomDataMainUV;
  214. float _YmaskExp;
  215. float _Alpha;
  216. float _Diss_value;
  217. float _CustomDataDissolve;
  218. float _DissSoft;
  219. float _Turb_Value;
  220. float _CTime;
  221. float _Ymask;
  222. float _MainAlpha;
  223. float _ca;
  224. #ifdef TESSELLATION_ON
  225. float _TessPhongStrength;
  226. float _TessValue;
  227. float _TessMin;
  228. float _TessMax;
  229. float _TessEdgeLength;
  230. float _TessMaxDisp;
  231. #endif
  232. CBUFFER_END
  233. sampler2D _Main_Tex;
  234. sampler2D _Turb_Noise;
  235. sampler2D _Mask;
  236. sampler2D _dissolve;
  237. VertexOutput VertexFunction ( VertexInput v )
  238. {
  239. VertexOutput o = (VertexOutput)0;
  240. UNITY_SETUP_INSTANCE_ID(v);
  241. UNITY_TRANSFER_INSTANCE_ID(v, o);
  242. UNITY_INITIALIZE_VERTEX_OUTPUT_STEREO(o);
  243. o.ase_texcoord3.xy = v.ase_texcoord.xy;
  244. o.ase_texcoord4 = v.ase_texcoord1;
  245. o.ase_color = v.ase_color;
  246. //setting value to unused interpolator channels and avoid initialization warnings
  247. o.ase_texcoord3.zw = 0;
  248. #ifdef ASE_ABSOLUTE_VERTEX_POS
  249. float3 defaultVertexValue = v.vertex.xyz;
  250. #else
  251. float3 defaultVertexValue = float3(0, 0, 0);
  252. #endif
  253. float3 vertexValue = defaultVertexValue;
  254. #ifdef ASE_ABSOLUTE_VERTEX_POS
  255. v.vertex.xyz = vertexValue;
  256. #else
  257. v.vertex.xyz += vertexValue;
  258. #endif
  259. v.ase_normal = v.ase_normal;
  260. float3 positionWS = TransformObjectToWorld( v.vertex.xyz );
  261. float4 positionCS = TransformWorldToHClip( positionWS );
  262. #if defined(ASE_NEEDS_FRAG_WORLD_POSITION)
  263. o.worldPos = positionWS;
  264. #endif
  265. #if defined(REQUIRES_VERTEX_SHADOW_COORD_INTERPOLATOR) && defined(ASE_NEEDS_FRAG_SHADOWCOORDS)
  266. VertexPositionInputs vertexInput = (VertexPositionInputs)0;
  267. vertexInput.positionWS = positionWS;
  268. vertexInput.positionCS = positionCS;
  269. o.shadowCoord = GetShadowCoord( vertexInput );
  270. #endif
  271. #ifdef ASE_FOG
  272. o.fogFactor = ComputeFogFactor( positionCS.z );
  273. #endif
  274. o.clipPos = positionCS;
  275. return o;
  276. }
  277. #if defined(TESSELLATION_ON)
  278. struct VertexControl
  279. {
  280. float4 vertex : INTERNALTESSPOS;
  281. float3 ase_normal : NORMAL;
  282. float4 ase_texcoord : TEXCOORD0;
  283. float4 ase_texcoord1 : TEXCOORD1;
  284. float4 ase_color : COLOR;
  285. UNITY_VERTEX_INPUT_INSTANCE_ID
  286. };
  287. struct TessellationFactors
  288. {
  289. float edge[3] : SV_TessFactor;
  290. float inside : SV_InsideTessFactor;
  291. };
  292. VertexControl vert ( VertexInput v )
  293. {
  294. VertexControl o;
  295. UNITY_SETUP_INSTANCE_ID(v);
  296. UNITY_TRANSFER_INSTANCE_ID(v, o);
  297. o.vertex = v.vertex;
  298. o.ase_normal = v.ase_normal;
  299. o.ase_texcoord = v.ase_texcoord;
  300. o.ase_texcoord1 = v.ase_texcoord1;
  301. o.ase_color = v.ase_color;
  302. return o;
  303. }
  304. TessellationFactors TessellationFunction (InputPatch<VertexControl,3> v)
  305. {
  306. TessellationFactors o;
  307. float4 tf = 1;
  308. float tessValue = _TessValue; float tessMin = _TessMin; float tessMax = _TessMax;
  309. float edgeLength = _TessEdgeLength; float tessMaxDisp = _TessMaxDisp;
  310. #if defined(ASE_FIXED_TESSELLATION)
  311. tf = FixedTess( tessValue );
  312. #elif defined(ASE_DISTANCE_TESSELLATION)
  313. tf = DistanceBasedTess(v[0].vertex, v[1].vertex, v[2].vertex, tessValue, tessMin, tessMax, GetObjectToWorldMatrix(), _WorldSpaceCameraPos );
  314. #elif defined(ASE_LENGTH_TESSELLATION)
  315. tf = EdgeLengthBasedTess(v[0].vertex, v[1].vertex, v[2].vertex, edgeLength, GetObjectToWorldMatrix(), _WorldSpaceCameraPos, _ScreenParams );
  316. #elif defined(ASE_LENGTH_CULL_TESSELLATION)
  317. tf = EdgeLengthBasedTessCull(v[0].vertex, v[1].vertex, v[2].vertex, edgeLength, tessMaxDisp, GetObjectToWorldMatrix(), _WorldSpaceCameraPos, _ScreenParams, unity_CameraWorldClipPlanes );
  318. #endif
  319. o.edge[0] = tf.x; o.edge[1] = tf.y; o.edge[2] = tf.z; o.inside = tf.w;
  320. return o;
  321. }
  322. [domain("tri")]
  323. [partitioning("fractional_odd")]
  324. [outputtopology("triangle_cw")]
  325. [patchconstantfunc("TessellationFunction")]
  326. [outputcontrolpoints(3)]
  327. VertexControl HullFunction(InputPatch<VertexControl, 3> patch, uint id : SV_OutputControlPointID)
  328. {
  329. return patch[id];
  330. }
  331. [domain("tri")]
  332. VertexOutput DomainFunction(TessellationFactors factors, OutputPatch<VertexControl, 3> patch, float3 bary : SV_DomainLocation)
  333. {
  334. VertexInput o = (VertexInput) 0;
  335. o.vertex = patch[0].vertex * bary.x + patch[1].vertex * bary.y + patch[2].vertex * bary.z;
  336. o.ase_normal = patch[0].ase_normal * bary.x + patch[1].ase_normal * bary.y + patch[2].ase_normal * bary.z;
  337. o.ase_texcoord = patch[0].ase_texcoord * bary.x + patch[1].ase_texcoord * bary.y + patch[2].ase_texcoord * bary.z;
  338. o.ase_texcoord1 = patch[0].ase_texcoord1 * bary.x + patch[1].ase_texcoord1 * bary.y + patch[2].ase_texcoord1 * bary.z;
  339. o.ase_color = patch[0].ase_color * bary.x + patch[1].ase_color * bary.y + patch[2].ase_color * bary.z;
  340. #if defined(ASE_PHONG_TESSELLATION)
  341. float3 pp[3];
  342. for (int i = 0; i < 3; ++i)
  343. pp[i] = o.vertex.xyz - patch[i].ase_normal * (dot(o.vertex.xyz, patch[i].ase_normal) - dot(patch[i].vertex.xyz, patch[i].ase_normal));
  344. float phongStrength = _TessPhongStrength;
  345. o.vertex.xyz = phongStrength * (pp[0]*bary.x + pp[1]*bary.y + pp[2]*bary.z) + (1.0f-phongStrength) * o.vertex.xyz;
  346. #endif
  347. UNITY_TRANSFER_INSTANCE_ID(patch[0], o);
  348. return VertexFunction(o);
  349. }
  350. #else
  351. VertexOutput vert ( VertexInput v )
  352. {
  353. return VertexFunction( v );
  354. }
  355. #endif
  356. half4 frag ( VertexOutput IN ) : SV_Target
  357. {
  358. UNITY_SETUP_INSTANCE_ID( IN );
  359. UNITY_SETUP_STEREO_EYE_INDEX_POST_VERTEX( IN );
  360. #if defined(ASE_NEEDS_FRAG_WORLD_POSITION)
  361. float3 WorldPosition = IN.worldPos;
  362. #endif
  363. float4 ShadowCoords = float4( 0, 0, 0, 0 );
  364. #if defined(ASE_NEEDS_FRAG_SHADOWCOORDS)
  365. #if defined(REQUIRES_VERTEX_SHADOW_COORD_INTERPOLATOR)
  366. ShadowCoords = IN.shadowCoord;
  367. #elif defined(MAIN_LIGHT_CALCULATE_SHADOWS)
  368. ShadowCoords = TransformWorldToShadowCoord( WorldPosition );
  369. #endif
  370. #endif
  371. float2 uv_Turb_Noise = IN.ase_texcoord3.xy * _Turb_Noise_ST.xy + _Turb_Noise_ST.zw;
  372. float2 panner12 = ( 1.0 * _Time.y * ( _Turb_UV * _CTime ) + uv_Turb_Noise);
  373. float2 uv_Main_Tex = IN.ase_texcoord3.xy * _Main_Tex_ST.xy + _Main_Tex_ST.zw;
  374. float2 panner19 = ( 1.0 * _Time.y * ( _Main_UV * _CTime ) + uv_Main_Tex);
  375. float4 texCoord45 = IN.ase_texcoord4;
  376. texCoord45.xy = IN.ase_texcoord4.xy * float2( 1,1 ) + float2( 0,0 );
  377. float2 appendResult44 = (float2(texCoord45.z , texCoord45.w));
  378. float2 lerpResult46 = lerp( panner19 , ( appendResult44 + uv_Main_Tex ) , round( _CustomDataMainUV ));
  379. float4 tex2DNode10 = tex2D( _Main_Tex, ( ( tex2D( _Turb_Noise, panner12 ).r * _Turb_Value ) + lerpResult46 ) );
  380. float4 temp_cast_0 = (tex2DNode10.a).xxxx;
  381. float4 lerpResult58 = lerp( tex2DNode10 , temp_cast_0 , round( _MainAlpha ));
  382. float2 uv_Mask = IN.ase_texcoord3.xy * _Mask_ST.xy + _Mask_ST.zw;
  383. float2 panner53 = ( 1.0 * _Time.y * ( _MaskUVSpeed * _CTime ) + uv_Mask);
  384. float4 texCoord48 = IN.ase_texcoord4;
  385. texCoord48.xy = IN.ase_texcoord4.xy * float2( 1,1 ) + float2( 0,0 );
  386. float lerpResult69 = lerp( _Diss_value , texCoord48.x , _CustomDataDissolve);
  387. float lerpResult50 = lerp( _Diss_value , texCoord48.x , round( _CustomDataDissolve ));
  388. float2 uv_dissolve = IN.ase_texcoord3.xy * _dissolve_ST.xy + _dissolve_ST.zw;
  389. float2 panner31 = ( 1.0 * _Time.y * ( _Diss_UV * _CTime ) + uv_dissolve);
  390. float smoothstepResult33 = smoothstep( lerpResult69 , ( lerpResult50 + _DissSoft ) , tex2D( _dissolve, panner31 ).r);
  391. float clampResult75 = clamp( ( ( WorldPosition.y - _Ymask ) * _YmaskExp ) , 0.0 , 1.0 );
  392. float3 BakedAlbedo = 0;
  393. float3 BakedEmission = 0;
  394. float3 Color = ( lerpResult58 * _Main_Color * IN.ase_color * tex2D( _Mask, panner53 ).r * _Alpha * smoothstepResult33 * clampResult75 * _ca ).rgb;
  395. float Alpha = 1;
  396. float AlphaClipThreshold = 0.5;
  397. float AlphaClipThresholdShadow = 0.5;
  398. #ifdef _ALPHATEST_ON
  399. clip( Alpha - AlphaClipThreshold );
  400. #endif
  401. #if defined(_DBUFFER)
  402. ApplyDecalToBaseColor(IN.clipPos, Color);
  403. #endif
  404. #if defined(_ALPHAPREMULTIPLY_ON)
  405. Color *= Alpha;
  406. #endif
  407. #ifdef LOD_FADE_CROSSFADE
  408. LODDitheringTransition( IN.clipPos.xyz, unity_LODFade.x );
  409. #endif
  410. #ifdef ASE_FOG
  411. Color = MixFog( Color, IN.fogFactor );
  412. #endif
  413. return half4( Color, Alpha );
  414. }
  415. ENDHLSL
  416. }
  417. Pass
  418. {
  419. Name "DepthOnly"
  420. Tags { "LightMode"="DepthOnly" }
  421. ZWrite On
  422. ColorMask 0
  423. AlphaToMask Off
  424. HLSLPROGRAM
  425. #pragma multi_compile_instancing
  426. #define _RECEIVE_SHADOWS_OFF 1
  427. #define ASE_SRP_VERSION 999999
  428. #pragma vertex vert
  429. #pragma fragment frag
  430. #include "Packages/com.unity.render-pipelines.universal/ShaderLibrary/Core.hlsl"
  431. #include "Packages/com.unity.render-pipelines.universal/ShaderLibrary/Lighting.hlsl"
  432. #include "Packages/com.unity.render-pipelines.universal/ShaderLibrary/ShaderGraphFunctions.hlsl"
  433. #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/Color.hlsl"
  434. struct VertexInput
  435. {
  436. float4 vertex : POSITION;
  437. float3 ase_normal : NORMAL;
  438. UNITY_VERTEX_INPUT_INSTANCE_ID
  439. };
  440. struct VertexOutput
  441. {
  442. float4 clipPos : SV_POSITION;
  443. #if defined(ASE_NEEDS_FRAG_WORLD_POSITION)
  444. float3 worldPos : TEXCOORD0;
  445. #endif
  446. #if defined(REQUIRES_VERTEX_SHADOW_COORD_INTERPOLATOR) && defined(ASE_NEEDS_FRAG_SHADOWCOORDS)
  447. float4 shadowCoord : TEXCOORD1;
  448. #endif
  449. UNITY_VERTEX_INPUT_INSTANCE_ID
  450. UNITY_VERTEX_OUTPUT_STEREO
  451. };
  452. CBUFFER_START(UnityPerMaterial)
  453. float4 _dissolve_ST;
  454. float4 _Turb_Noise_ST;
  455. float4 _Mask_ST;
  456. float4 _Main_Tex_ST;
  457. float4 _Main_Color;
  458. float2 _Turb_UV;
  459. float2 _Diss_UV;
  460. float2 _MaskUVSpeed;
  461. float2 _Main_UV;
  462. float _CustomDataMainUV;
  463. float _YmaskExp;
  464. float _Alpha;
  465. float _Diss_value;
  466. float _CustomDataDissolve;
  467. float _DissSoft;
  468. float _Turb_Value;
  469. float _CTime;
  470. float _Ymask;
  471. float _MainAlpha;
  472. float _ca;
  473. #ifdef TESSELLATION_ON
  474. float _TessPhongStrength;
  475. float _TessValue;
  476. float _TessMin;
  477. float _TessMax;
  478. float _TessEdgeLength;
  479. float _TessMaxDisp;
  480. #endif
  481. CBUFFER_END
  482. VertexOutput VertexFunction( VertexInput v )
  483. {
  484. VertexOutput o = (VertexOutput)0;
  485. UNITY_SETUP_INSTANCE_ID(v);
  486. UNITY_TRANSFER_INSTANCE_ID(v, o);
  487. UNITY_INITIALIZE_VERTEX_OUTPUT_STEREO(o);
  488. #ifdef ASE_ABSOLUTE_VERTEX_POS
  489. float3 defaultVertexValue = v.vertex.xyz;
  490. #else
  491. float3 defaultVertexValue = float3(0, 0, 0);
  492. #endif
  493. float3 vertexValue = defaultVertexValue;
  494. #ifdef ASE_ABSOLUTE_VERTEX_POS
  495. v.vertex.xyz = vertexValue;
  496. #else
  497. v.vertex.xyz += vertexValue;
  498. #endif
  499. v.ase_normal = v.ase_normal;
  500. float3 positionWS = TransformObjectToWorld( v.vertex.xyz );
  501. #if defined(ASE_NEEDS_FRAG_WORLD_POSITION)
  502. o.worldPos = positionWS;
  503. #endif
  504. o.clipPos = TransformWorldToHClip( positionWS );
  505. #if defined(REQUIRES_VERTEX_SHADOW_COORD_INTERPOLATOR) && defined(ASE_NEEDS_FRAG_SHADOWCOORDS)
  506. VertexPositionInputs vertexInput = (VertexPositionInputs)0;
  507. vertexInput.positionWS = positionWS;
  508. vertexInput.positionCS = o.clipPos;
  509. o.shadowCoord = GetShadowCoord( vertexInput );
  510. #endif
  511. return o;
  512. }
  513. #if defined(TESSELLATION_ON)
  514. struct VertexControl
  515. {
  516. float4 vertex : INTERNALTESSPOS;
  517. float3 ase_normal : NORMAL;
  518. UNITY_VERTEX_INPUT_INSTANCE_ID
  519. };
  520. struct TessellationFactors
  521. {
  522. float edge[3] : SV_TessFactor;
  523. float inside : SV_InsideTessFactor;
  524. };
  525. VertexControl vert ( VertexInput v )
  526. {
  527. VertexControl o;
  528. UNITY_SETUP_INSTANCE_ID(v);
  529. UNITY_TRANSFER_INSTANCE_ID(v, o);
  530. o.vertex = v.vertex;
  531. o.ase_normal = v.ase_normal;
  532. return o;
  533. }
  534. TessellationFactors TessellationFunction (InputPatch<VertexControl,3> v)
  535. {
  536. TessellationFactors o;
  537. float4 tf = 1;
  538. float tessValue = _TessValue; float tessMin = _TessMin; float tessMax = _TessMax;
  539. float edgeLength = _TessEdgeLength; float tessMaxDisp = _TessMaxDisp;
  540. #if defined(ASE_FIXED_TESSELLATION)
  541. tf = FixedTess( tessValue );
  542. #elif defined(ASE_DISTANCE_TESSELLATION)
  543. tf = DistanceBasedTess(v[0].vertex, v[1].vertex, v[2].vertex, tessValue, tessMin, tessMax, GetObjectToWorldMatrix(), _WorldSpaceCameraPos );
  544. #elif defined(ASE_LENGTH_TESSELLATION)
  545. tf = EdgeLengthBasedTess(v[0].vertex, v[1].vertex, v[2].vertex, edgeLength, GetObjectToWorldMatrix(), _WorldSpaceCameraPos, _ScreenParams );
  546. #elif defined(ASE_LENGTH_CULL_TESSELLATION)
  547. tf = EdgeLengthBasedTessCull(v[0].vertex, v[1].vertex, v[2].vertex, edgeLength, tessMaxDisp, GetObjectToWorldMatrix(), _WorldSpaceCameraPos, _ScreenParams, unity_CameraWorldClipPlanes );
  548. #endif
  549. o.edge[0] = tf.x; o.edge[1] = tf.y; o.edge[2] = tf.z; o.inside = tf.w;
  550. return o;
  551. }
  552. [domain("tri")]
  553. [partitioning("fractional_odd")]
  554. [outputtopology("triangle_cw")]
  555. [patchconstantfunc("TessellationFunction")]
  556. [outputcontrolpoints(3)]
  557. VertexControl HullFunction(InputPatch<VertexControl, 3> patch, uint id : SV_OutputControlPointID)
  558. {
  559. return patch[id];
  560. }
  561. [domain("tri")]
  562. VertexOutput DomainFunction(TessellationFactors factors, OutputPatch<VertexControl, 3> patch, float3 bary : SV_DomainLocation)
  563. {
  564. VertexInput o = (VertexInput) 0;
  565. o.vertex = patch[0].vertex * bary.x + patch[1].vertex * bary.y + patch[2].vertex * bary.z;
  566. o.ase_normal = patch[0].ase_normal * bary.x + patch[1].ase_normal * bary.y + patch[2].ase_normal * bary.z;
  567. #if defined(ASE_PHONG_TESSELLATION)
  568. float3 pp[3];
  569. for (int i = 0; i < 3; ++i)
  570. pp[i] = o.vertex.xyz - patch[i].ase_normal * (dot(o.vertex.xyz, patch[i].ase_normal) - dot(patch[i].vertex.xyz, patch[i].ase_normal));
  571. float phongStrength = _TessPhongStrength;
  572. o.vertex.xyz = phongStrength * (pp[0]*bary.x + pp[1]*bary.y + pp[2]*bary.z) + (1.0f-phongStrength) * o.vertex.xyz;
  573. #endif
  574. UNITY_TRANSFER_INSTANCE_ID(patch[0], o);
  575. return VertexFunction(o);
  576. }
  577. #else
  578. VertexOutput vert ( VertexInput v )
  579. {
  580. return VertexFunction( v );
  581. }
  582. #endif
  583. half4 frag(VertexOutput IN ) : SV_TARGET
  584. {
  585. UNITY_SETUP_INSTANCE_ID(IN);
  586. UNITY_SETUP_STEREO_EYE_INDEX_POST_VERTEX( IN );
  587. #if defined(ASE_NEEDS_FRAG_WORLD_POSITION)
  588. float3 WorldPosition = IN.worldPos;
  589. #endif
  590. float4 ShadowCoords = float4( 0, 0, 0, 0 );
  591. #if defined(ASE_NEEDS_FRAG_SHADOWCOORDS)
  592. #if defined(REQUIRES_VERTEX_SHADOW_COORD_INTERPOLATOR)
  593. ShadowCoords = IN.shadowCoord;
  594. #elif defined(MAIN_LIGHT_CALCULATE_SHADOWS)
  595. ShadowCoords = TransformWorldToShadowCoord( WorldPosition );
  596. #endif
  597. #endif
  598. float Alpha = 1;
  599. float AlphaClipThreshold = 0.5;
  600. #ifdef _ALPHATEST_ON
  601. clip(Alpha - AlphaClipThreshold);
  602. #endif
  603. #ifdef LOD_FADE_CROSSFADE
  604. LODDitheringTransition( IN.clipPos.xyz, unity_LODFade.x );
  605. #endif
  606. return 0;
  607. }
  608. ENDHLSL
  609. }
  610. Pass
  611. {
  612. Name "Universal2D"
  613. Tags { "LightMode"="Universal2D" }
  614. Blend One One, One One
  615. ZWrite Off
  616. ZTest LEqual
  617. Offset 0 , 0
  618. ColorMask RGBA
  619. HLSLPROGRAM
  620. #pragma multi_compile_instancing
  621. #define _RECEIVE_SHADOWS_OFF 1
  622. #define ASE_SRP_VERSION 999999
  623. #pragma multi_compile _ LIGHTMAP_ON
  624. #pragma multi_compile _ DIRLIGHTMAP_COMBINED
  625. #pragma shader_feature _ _SAMPLE_GI
  626. #pragma multi_compile _ _DBUFFER_MRT1 _DBUFFER_MRT2 _DBUFFER_MRT3
  627. #pragma multi_compile _ DEBUG_DISPLAY
  628. #define SHADERPASS SHADERPASS_UNLIT
  629. #pragma vertex vert
  630. #pragma fragment frag
  631. #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/Color.hlsl"
  632. #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/Texture.hlsl"
  633. #include "Packages/com.unity.render-pipelines.universal/ShaderLibrary/Core.hlsl"
  634. #include "Packages/com.unity.render-pipelines.universal/ShaderLibrary/Lighting.hlsl"
  635. #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/TextureStack.hlsl"
  636. #include "Packages/com.unity.render-pipelines.universal/ShaderLibrary/ShaderGraphFunctions.hlsl"
  637. #include "Packages/com.unity.render-pipelines.universal/ShaderLibrary/DBuffer.hlsl"
  638. #include "Packages/com.unity.render-pipelines.universal/Editor/ShaderGraph/Includes/ShaderPass.hlsl"
  639. #include "Packages/com.unity.render-pipelines.universal/ShaderLibrary/Debug/Debugging3D.hlsl"
  640. #include "Packages/com.unity.render-pipelines.universal/ShaderLibrary/Input.hlsl"
  641. #include "Packages/com.unity.render-pipelines.universal/ShaderLibrary/SurfaceData.hlsl"
  642. #define ASE_NEEDS_FRAG_WORLD_POSITION
  643. struct VertexInput
  644. {
  645. float4 vertex : POSITION;
  646. float3 ase_normal : NORMAL;
  647. float4 ase_texcoord : TEXCOORD0;
  648. float4 ase_texcoord1 : TEXCOORD1;
  649. float4 ase_color : COLOR;
  650. UNITY_VERTEX_INPUT_INSTANCE_ID
  651. };
  652. struct VertexOutput
  653. {
  654. float4 clipPos : SV_POSITION;
  655. #if defined(ASE_NEEDS_FRAG_WORLD_POSITION)
  656. float3 worldPos : TEXCOORD0;
  657. #endif
  658. #if defined(REQUIRES_VERTEX_SHADOW_COORD_INTERPOLATOR) && defined(ASE_NEEDS_FRAG_SHADOWCOORDS)
  659. float4 shadowCoord : TEXCOORD1;
  660. #endif
  661. #ifdef ASE_FOG
  662. float fogFactor : TEXCOORD2;
  663. #endif
  664. float4 ase_texcoord3 : TEXCOORD3;
  665. float4 ase_texcoord4 : TEXCOORD4;
  666. float4 ase_color : COLOR;
  667. UNITY_VERTEX_INPUT_INSTANCE_ID
  668. UNITY_VERTEX_OUTPUT_STEREO
  669. };
  670. CBUFFER_START(UnityPerMaterial)
  671. float4 _dissolve_ST;
  672. float4 _Turb_Noise_ST;
  673. float4 _Mask_ST;
  674. float4 _Main_Tex_ST;
  675. float4 _Main_Color;
  676. float2 _Turb_UV;
  677. float2 _Diss_UV;
  678. float2 _MaskUVSpeed;
  679. float2 _Main_UV;
  680. float _CustomDataMainUV;
  681. float _YmaskExp;
  682. float _Alpha;
  683. float _Diss_value;
  684. float _CustomDataDissolve;
  685. float _DissSoft;
  686. float _Turb_Value;
  687. float _CTime;
  688. float _Ymask;
  689. float _MainAlpha;
  690. float _ca;
  691. #ifdef TESSELLATION_ON
  692. float _TessPhongStrength;
  693. float _TessValue;
  694. float _TessMin;
  695. float _TessMax;
  696. float _TessEdgeLength;
  697. float _TessMaxDisp;
  698. #endif
  699. CBUFFER_END
  700. sampler2D _Main_Tex;
  701. sampler2D _Turb_Noise;
  702. sampler2D _Mask;
  703. sampler2D _dissolve;
  704. VertexOutput VertexFunction ( VertexInput v )
  705. {
  706. VertexOutput o = (VertexOutput)0;
  707. UNITY_SETUP_INSTANCE_ID(v);
  708. UNITY_TRANSFER_INSTANCE_ID(v, o);
  709. UNITY_INITIALIZE_VERTEX_OUTPUT_STEREO(o);
  710. o.ase_texcoord3.xy = v.ase_texcoord.xy;
  711. o.ase_texcoord4 = v.ase_texcoord1;
  712. o.ase_color = v.ase_color;
  713. //setting value to unused interpolator channels and avoid initialization warnings
  714. o.ase_texcoord3.zw = 0;
  715. #ifdef ASE_ABSOLUTE_VERTEX_POS
  716. float3 defaultVertexValue = v.vertex.xyz;
  717. #else
  718. float3 defaultVertexValue = float3(0, 0, 0);
  719. #endif
  720. float3 vertexValue = defaultVertexValue;
  721. #ifdef ASE_ABSOLUTE_VERTEX_POS
  722. v.vertex.xyz = vertexValue;
  723. #else
  724. v.vertex.xyz += vertexValue;
  725. #endif
  726. v.ase_normal = v.ase_normal;
  727. float3 positionWS = TransformObjectToWorld( v.vertex.xyz );
  728. float4 positionCS = TransformWorldToHClip( positionWS );
  729. #if defined(ASE_NEEDS_FRAG_WORLD_POSITION)
  730. o.worldPos = positionWS;
  731. #endif
  732. #if defined(REQUIRES_VERTEX_SHADOW_COORD_INTERPOLATOR) && defined(ASE_NEEDS_FRAG_SHADOWCOORDS)
  733. VertexPositionInputs vertexInput = (VertexPositionInputs)0;
  734. vertexInput.positionWS = positionWS;
  735. vertexInput.positionCS = positionCS;
  736. o.shadowCoord = GetShadowCoord( vertexInput );
  737. #endif
  738. #ifdef ASE_FOG
  739. o.fogFactor = ComputeFogFactor( positionCS.z );
  740. #endif
  741. o.clipPos = positionCS;
  742. return o;
  743. }
  744. #if defined(TESSELLATION_ON)
  745. struct VertexControl
  746. {
  747. float4 vertex : INTERNALTESSPOS;
  748. float3 ase_normal : NORMAL;
  749. float4 ase_texcoord : TEXCOORD0;
  750. float4 ase_texcoord1 : TEXCOORD1;
  751. float4 ase_color : COLOR;
  752. UNITY_VERTEX_INPUT_INSTANCE_ID
  753. };
  754. struct TessellationFactors
  755. {
  756. float edge[3] : SV_TessFactor;
  757. float inside : SV_InsideTessFactor;
  758. };
  759. VertexControl vert ( VertexInput v )
  760. {
  761. VertexControl o;
  762. UNITY_SETUP_INSTANCE_ID(v);
  763. UNITY_TRANSFER_INSTANCE_ID(v, o);
  764. o.vertex = v.vertex;
  765. o.ase_normal = v.ase_normal;
  766. o.ase_texcoord = v.ase_texcoord;
  767. o.ase_texcoord1 = v.ase_texcoord1;
  768. o.ase_color = v.ase_color;
  769. return o;
  770. }
  771. TessellationFactors TessellationFunction (InputPatch<VertexControl,3> v)
  772. {
  773. TessellationFactors o;
  774. float4 tf = 1;
  775. float tessValue = _TessValue; float tessMin = _TessMin; float tessMax = _TessMax;
  776. float edgeLength = _TessEdgeLength; float tessMaxDisp = _TessMaxDisp;
  777. #if defined(ASE_FIXED_TESSELLATION)
  778. tf = FixedTess( tessValue );
  779. #elif defined(ASE_DISTANCE_TESSELLATION)
  780. tf = DistanceBasedTess(v[0].vertex, v[1].vertex, v[2].vertex, tessValue, tessMin, tessMax, GetObjectToWorldMatrix(), _WorldSpaceCameraPos );
  781. #elif defined(ASE_LENGTH_TESSELLATION)
  782. tf = EdgeLengthBasedTess(v[0].vertex, v[1].vertex, v[2].vertex, edgeLength, GetObjectToWorldMatrix(), _WorldSpaceCameraPos, _ScreenParams );
  783. #elif defined(ASE_LENGTH_CULL_TESSELLATION)
  784. tf = EdgeLengthBasedTessCull(v[0].vertex, v[1].vertex, v[2].vertex, edgeLength, tessMaxDisp, GetObjectToWorldMatrix(), _WorldSpaceCameraPos, _ScreenParams, unity_CameraWorldClipPlanes );
  785. #endif
  786. o.edge[0] = tf.x; o.edge[1] = tf.y; o.edge[2] = tf.z; o.inside = tf.w;
  787. return o;
  788. }
  789. [domain("tri")]
  790. [partitioning("fractional_odd")]
  791. [outputtopology("triangle_cw")]
  792. [patchconstantfunc("TessellationFunction")]
  793. [outputcontrolpoints(3)]
  794. VertexControl HullFunction(InputPatch<VertexControl, 3> patch, uint id : SV_OutputControlPointID)
  795. {
  796. return patch[id];
  797. }
  798. [domain("tri")]
  799. VertexOutput DomainFunction(TessellationFactors factors, OutputPatch<VertexControl, 3> patch, float3 bary : SV_DomainLocation)
  800. {
  801. VertexInput o = (VertexInput) 0;
  802. o.vertex = patch[0].vertex * bary.x + patch[1].vertex * bary.y + patch[2].vertex * bary.z;
  803. o.ase_normal = patch[0].ase_normal * bary.x + patch[1].ase_normal * bary.y + patch[2].ase_normal * bary.z;
  804. o.ase_texcoord = patch[0].ase_texcoord * bary.x + patch[1].ase_texcoord * bary.y + patch[2].ase_texcoord * bary.z;
  805. o.ase_texcoord1 = patch[0].ase_texcoord1 * bary.x + patch[1].ase_texcoord1 * bary.y + patch[2].ase_texcoord1 * bary.z;
  806. o.ase_color = patch[0].ase_color * bary.x + patch[1].ase_color * bary.y + patch[2].ase_color * bary.z;
  807. #if defined(ASE_PHONG_TESSELLATION)
  808. float3 pp[3];
  809. for (int i = 0; i < 3; ++i)
  810. pp[i] = o.vertex.xyz - patch[i].ase_normal * (dot(o.vertex.xyz, patch[i].ase_normal) - dot(patch[i].vertex.xyz, patch[i].ase_normal));
  811. float phongStrength = _TessPhongStrength;
  812. o.vertex.xyz = phongStrength * (pp[0]*bary.x + pp[1]*bary.y + pp[2]*bary.z) + (1.0f-phongStrength) * o.vertex.xyz;
  813. #endif
  814. UNITY_TRANSFER_INSTANCE_ID(patch[0], o);
  815. return VertexFunction(o);
  816. }
  817. #else
  818. VertexOutput vert ( VertexInput v )
  819. {
  820. return VertexFunction( v );
  821. }
  822. #endif
  823. half4 frag ( VertexOutput IN ) : SV_Target
  824. {
  825. UNITY_SETUP_INSTANCE_ID( IN );
  826. UNITY_SETUP_STEREO_EYE_INDEX_POST_VERTEX( IN );
  827. #if defined(ASE_NEEDS_FRAG_WORLD_POSITION)
  828. float3 WorldPosition = IN.worldPos;
  829. #endif
  830. float4 ShadowCoords = float4( 0, 0, 0, 0 );
  831. #if defined(ASE_NEEDS_FRAG_SHADOWCOORDS)
  832. #if defined(REQUIRES_VERTEX_SHADOW_COORD_INTERPOLATOR)
  833. ShadowCoords = IN.shadowCoord;
  834. #elif defined(MAIN_LIGHT_CALCULATE_SHADOWS)
  835. ShadowCoords = TransformWorldToShadowCoord( WorldPosition );
  836. #endif
  837. #endif
  838. float2 uv_Turb_Noise = IN.ase_texcoord3.xy * _Turb_Noise_ST.xy + _Turb_Noise_ST.zw;
  839. float2 panner12 = ( 1.0 * _Time.y * ( _Turb_UV * _CTime ) + uv_Turb_Noise);
  840. float2 uv_Main_Tex = IN.ase_texcoord3.xy * _Main_Tex_ST.xy + _Main_Tex_ST.zw;
  841. float2 panner19 = ( 1.0 * _Time.y * ( _Main_UV * _CTime ) + uv_Main_Tex);
  842. float4 texCoord45 = IN.ase_texcoord4;
  843. texCoord45.xy = IN.ase_texcoord4.xy * float2( 1,1 ) + float2( 0,0 );
  844. float2 appendResult44 = (float2(texCoord45.z , texCoord45.w));
  845. float2 lerpResult46 = lerp( panner19 , ( appendResult44 + uv_Main_Tex ) , round( _CustomDataMainUV ));
  846. float4 tex2DNode10 = tex2D( _Main_Tex, ( ( tex2D( _Turb_Noise, panner12 ).r * _Turb_Value ) + lerpResult46 ) );
  847. float4 temp_cast_0 = (tex2DNode10.a).xxxx;
  848. float4 lerpResult58 = lerp( tex2DNode10 , temp_cast_0 , round( _MainAlpha ));
  849. float2 uv_Mask = IN.ase_texcoord3.xy * _Mask_ST.xy + _Mask_ST.zw;
  850. float2 panner53 = ( 1.0 * _Time.y * ( _MaskUVSpeed * _CTime ) + uv_Mask);
  851. float4 texCoord48 = IN.ase_texcoord4;
  852. texCoord48.xy = IN.ase_texcoord4.xy * float2( 1,1 ) + float2( 0,0 );
  853. float lerpResult69 = lerp( _Diss_value , texCoord48.x , _CustomDataDissolve);
  854. float lerpResult50 = lerp( _Diss_value , texCoord48.x , round( _CustomDataDissolve ));
  855. float2 uv_dissolve = IN.ase_texcoord3.xy * _dissolve_ST.xy + _dissolve_ST.zw;
  856. float2 panner31 = ( 1.0 * _Time.y * ( _Diss_UV * _CTime ) + uv_dissolve);
  857. float smoothstepResult33 = smoothstep( lerpResult69 , ( lerpResult50 + _DissSoft ) , tex2D( _dissolve, panner31 ).r);
  858. float clampResult75 = clamp( ( ( WorldPosition.y - _Ymask ) * _YmaskExp ) , 0.0 , 1.0 );
  859. float3 BakedAlbedo = 0;
  860. float3 BakedEmission = 0;
  861. float3 Color = ( lerpResult58 * _Main_Color * IN.ase_color * tex2D( _Mask, panner53 ).r * _Alpha * smoothstepResult33 * clampResult75 * _ca ).rgb;
  862. float Alpha = 1;
  863. float AlphaClipThreshold = 0.5;
  864. float AlphaClipThresholdShadow = 0.5;
  865. #ifdef _ALPHATEST_ON
  866. clip( Alpha - AlphaClipThreshold );
  867. #endif
  868. #if defined(_DBUFFER)
  869. ApplyDecalToBaseColor(IN.clipPos, Color);
  870. #endif
  871. #if defined(_ALPHAPREMULTIPLY_ON)
  872. Color *= Alpha;
  873. #endif
  874. #ifdef LOD_FADE_CROSSFADE
  875. LODDitheringTransition( IN.clipPos.xyz, unity_LODFade.x );
  876. #endif
  877. #ifdef ASE_FOG
  878. Color = MixFog( Color, IN.fogFactor );
  879. #endif
  880. return half4( Color, Alpha );
  881. }
  882. ENDHLSL
  883. }
  884. Pass
  885. {
  886. Name "SceneSelectionPass"
  887. Tags { "LightMode"="SceneSelectionPass" }
  888. Cull Off
  889. HLSLPROGRAM
  890. #pragma multi_compile_instancing
  891. #define _RECEIVE_SHADOWS_OFF 1
  892. #define ASE_SRP_VERSION 999999
  893. #pragma only_renderers d3d11 glcore gles gles3
  894. #pragma vertex vert
  895. #pragma fragment frag
  896. #define ATTRIBUTES_NEED_NORMAL
  897. #define ATTRIBUTES_NEED_TANGENT
  898. #define SHADERPASS SHADERPASS_DEPTHONLY
  899. #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/Color.hlsl"
  900. #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/Texture.hlsl"
  901. #include "Packages/com.unity.render-pipelines.universal/ShaderLibrary/Core.hlsl"
  902. #include "Packages/com.unity.render-pipelines.universal/ShaderLibrary/Lighting.hlsl"
  903. #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/TextureStack.hlsl"
  904. #include "Packages/com.unity.render-pipelines.universal/ShaderLibrary/ShaderGraphFunctions.hlsl"
  905. #include "Packages/com.unity.render-pipelines.universal/Editor/ShaderGraph/Includes/ShaderPass.hlsl"
  906. struct VertexInput
  907. {
  908. float4 vertex : POSITION;
  909. float3 ase_normal : NORMAL;
  910. UNITY_VERTEX_INPUT_INSTANCE_ID
  911. };
  912. struct VertexOutput
  913. {
  914. float4 clipPos : SV_POSITION;
  915. UNITY_VERTEX_INPUT_INSTANCE_ID
  916. UNITY_VERTEX_OUTPUT_STEREO
  917. };
  918. CBUFFER_START(UnityPerMaterial)
  919. float4 _dissolve_ST;
  920. float4 _Turb_Noise_ST;
  921. float4 _Mask_ST;
  922. float4 _Main_Tex_ST;
  923. float4 _Main_Color;
  924. float2 _Turb_UV;
  925. float2 _Diss_UV;
  926. float2 _MaskUVSpeed;
  927. float2 _Main_UV;
  928. float _CustomDataMainUV;
  929. float _YmaskExp;
  930. float _Alpha;
  931. float _Diss_value;
  932. float _CustomDataDissolve;
  933. float _DissSoft;
  934. float _Turb_Value;
  935. float _CTime;
  936. float _Ymask;
  937. float _MainAlpha;
  938. float _ca;
  939. #ifdef TESSELLATION_ON
  940. float _TessPhongStrength;
  941. float _TessValue;
  942. float _TessMin;
  943. float _TessMax;
  944. float _TessEdgeLength;
  945. float _TessMaxDisp;
  946. #endif
  947. CBUFFER_END
  948. int _ObjectId;
  949. int _PassValue;
  950. struct SurfaceDescription
  951. {
  952. float Alpha;
  953. float AlphaClipThreshold;
  954. };
  955. VertexOutput VertexFunction(VertexInput v )
  956. {
  957. VertexOutput o;
  958. ZERO_INITIALIZE(VertexOutput, o);
  959. UNITY_SETUP_INSTANCE_ID(v);
  960. UNITY_TRANSFER_INSTANCE_ID(v, o);
  961. UNITY_INITIALIZE_VERTEX_OUTPUT_STEREO(o);
  962. #ifdef ASE_ABSOLUTE_VERTEX_POS
  963. float3 defaultVertexValue = v.vertex.xyz;
  964. #else
  965. float3 defaultVertexValue = float3(0, 0, 0);
  966. #endif
  967. float3 vertexValue = defaultVertexValue;
  968. #ifdef ASE_ABSOLUTE_VERTEX_POS
  969. v.vertex.xyz = vertexValue;
  970. #else
  971. v.vertex.xyz += vertexValue;
  972. #endif
  973. v.ase_normal = v.ase_normal;
  974. float3 positionWS = TransformObjectToWorld( v.vertex.xyz );
  975. o.clipPos = TransformWorldToHClip(positionWS);
  976. return o;
  977. }
  978. #if defined(TESSELLATION_ON)
  979. struct VertexControl
  980. {
  981. float4 vertex : INTERNALTESSPOS;
  982. float3 ase_normal : NORMAL;
  983. UNITY_VERTEX_INPUT_INSTANCE_ID
  984. };
  985. struct TessellationFactors
  986. {
  987. float edge[3] : SV_TessFactor;
  988. float inside : SV_InsideTessFactor;
  989. };
  990. VertexControl vert ( VertexInput v )
  991. {
  992. VertexControl o;
  993. UNITY_SETUP_INSTANCE_ID(v);
  994. UNITY_TRANSFER_INSTANCE_ID(v, o);
  995. o.vertex = v.vertex;
  996. o.ase_normal = v.ase_normal;
  997. return o;
  998. }
  999. TessellationFactors TessellationFunction (InputPatch<VertexControl,3> v)
  1000. {
  1001. TessellationFactors o;
  1002. float4 tf = 1;
  1003. float tessValue = _TessValue; float tessMin = _TessMin; float tessMax = _TessMax;
  1004. float edgeLength = _TessEdgeLength; float tessMaxDisp = _TessMaxDisp;
  1005. #if defined(ASE_FIXED_TESSELLATION)
  1006. tf = FixedTess( tessValue );
  1007. #elif defined(ASE_DISTANCE_TESSELLATION)
  1008. tf = DistanceBasedTess(v[0].vertex, v[1].vertex, v[2].vertex, tessValue, tessMin, tessMax, GetObjectToWorldMatrix(), _WorldSpaceCameraPos );
  1009. #elif defined(ASE_LENGTH_TESSELLATION)
  1010. tf = EdgeLengthBasedTess(v[0].vertex, v[1].vertex, v[2].vertex, edgeLength, GetObjectToWorldMatrix(), _WorldSpaceCameraPos, _ScreenParams );
  1011. #elif defined(ASE_LENGTH_CULL_TESSELLATION)
  1012. tf = EdgeLengthBasedTessCull(v[0].vertex, v[1].vertex, v[2].vertex, edgeLength, tessMaxDisp, GetObjectToWorldMatrix(), _WorldSpaceCameraPos, _ScreenParams, unity_CameraWorldClipPlanes );
  1013. #endif
  1014. o.edge[0] = tf.x; o.edge[1] = tf.y; o.edge[2] = tf.z; o.inside = tf.w;
  1015. return o;
  1016. }
  1017. [domain("tri")]
  1018. [partitioning("fractional_odd")]
  1019. [outputtopology("triangle_cw")]
  1020. [patchconstantfunc("TessellationFunction")]
  1021. [outputcontrolpoints(3)]
  1022. VertexControl HullFunction(InputPatch<VertexControl, 3> patch, uint id : SV_OutputControlPointID)
  1023. {
  1024. return patch[id];
  1025. }
  1026. [domain("tri")]
  1027. VertexOutput DomainFunction(TessellationFactors factors, OutputPatch<VertexControl, 3> patch, float3 bary : SV_DomainLocation)
  1028. {
  1029. VertexInput o = (VertexInput) 0;
  1030. o.vertex = patch[0].vertex * bary.x + patch[1].vertex * bary.y + patch[2].vertex * bary.z;
  1031. o.ase_normal = patch[0].ase_normal * bary.x + patch[1].ase_normal * bary.y + patch[2].ase_normal * bary.z;
  1032. #if defined(ASE_PHONG_TESSELLATION)
  1033. float3 pp[3];
  1034. for (int i = 0; i < 3; ++i)
  1035. pp[i] = o.vertex.xyz - patch[i].ase_normal * (dot(o.vertex.xyz, patch[i].ase_normal) - dot(patch[i].vertex.xyz, patch[i].ase_normal));
  1036. float phongStrength = _TessPhongStrength;
  1037. o.vertex.xyz = phongStrength * (pp[0]*bary.x + pp[1]*bary.y + pp[2]*bary.z) + (1.0f-phongStrength) * o.vertex.xyz;
  1038. #endif
  1039. UNITY_TRANSFER_INSTANCE_ID(patch[0], o);
  1040. return VertexFunction(o);
  1041. }
  1042. #else
  1043. VertexOutput vert ( VertexInput v )
  1044. {
  1045. return VertexFunction( v );
  1046. }
  1047. #endif
  1048. half4 frag(VertexOutput IN ) : SV_TARGET
  1049. {
  1050. SurfaceDescription surfaceDescription = (SurfaceDescription)0;
  1051. surfaceDescription.Alpha = 1;
  1052. surfaceDescription.AlphaClipThreshold = 0.5;
  1053. #if _ALPHATEST_ON
  1054. float alphaClipThreshold = 0.01f;
  1055. #if ALPHA_CLIP_THRESHOLD
  1056. alphaClipThreshold = surfaceDescription.AlphaClipThreshold;
  1057. #endif
  1058. clip(surfaceDescription.Alpha - alphaClipThreshold);
  1059. #endif
  1060. half4 outColor = half4(_ObjectId, _PassValue, 1.0, 1.0);
  1061. return outColor;
  1062. }
  1063. ENDHLSL
  1064. }
  1065. Pass
  1066. {
  1067. Name "ScenePickingPass"
  1068. Tags { "LightMode"="Picking" }
  1069. HLSLPROGRAM
  1070. #pragma multi_compile_instancing
  1071. #define _RECEIVE_SHADOWS_OFF 1
  1072. #define ASE_SRP_VERSION 999999
  1073. #pragma only_renderers d3d11 glcore gles gles3
  1074. #pragma vertex vert
  1075. #pragma fragment frag
  1076. #define ATTRIBUTES_NEED_NORMAL
  1077. #define ATTRIBUTES_NEED_TANGENT
  1078. #define SHADERPASS SHADERPASS_DEPTHONLY
  1079. #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/Color.hlsl"
  1080. #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/Texture.hlsl"
  1081. #include "Packages/com.unity.render-pipelines.universal/ShaderLibrary/Core.hlsl"
  1082. #include "Packages/com.unity.render-pipelines.universal/ShaderLibrary/Lighting.hlsl"
  1083. #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/TextureStack.hlsl"
  1084. #include "Packages/com.unity.render-pipelines.universal/ShaderLibrary/ShaderGraphFunctions.hlsl"
  1085. #include "Packages/com.unity.render-pipelines.universal/Editor/ShaderGraph/Includes/ShaderPass.hlsl"
  1086. struct VertexInput
  1087. {
  1088. float4 vertex : POSITION;
  1089. float3 ase_normal : NORMAL;
  1090. UNITY_VERTEX_INPUT_INSTANCE_ID
  1091. };
  1092. struct VertexOutput
  1093. {
  1094. float4 clipPos : SV_POSITION;
  1095. UNITY_VERTEX_INPUT_INSTANCE_ID
  1096. UNITY_VERTEX_OUTPUT_STEREO
  1097. };
  1098. CBUFFER_START(UnityPerMaterial)
  1099. float4 _dissolve_ST;
  1100. float4 _Turb_Noise_ST;
  1101. float4 _Mask_ST;
  1102. float4 _Main_Tex_ST;
  1103. float4 _Main_Color;
  1104. float2 _Turb_UV;
  1105. float2 _Diss_UV;
  1106. float2 _MaskUVSpeed;
  1107. float2 _Main_UV;
  1108. float _CustomDataMainUV;
  1109. float _YmaskExp;
  1110. float _Alpha;
  1111. float _Diss_value;
  1112. float _CustomDataDissolve;
  1113. float _DissSoft;
  1114. float _Turb_Value;
  1115. float _CTime;
  1116. float _Ymask;
  1117. float _MainAlpha;
  1118. float _ca;
  1119. #ifdef TESSELLATION_ON
  1120. float _TessPhongStrength;
  1121. float _TessValue;
  1122. float _TessMin;
  1123. float _TessMax;
  1124. float _TessEdgeLength;
  1125. float _TessMaxDisp;
  1126. #endif
  1127. CBUFFER_END
  1128. float4 _SelectionID;
  1129. struct SurfaceDescription
  1130. {
  1131. float Alpha;
  1132. float AlphaClipThreshold;
  1133. };
  1134. VertexOutput VertexFunction(VertexInput v )
  1135. {
  1136. VertexOutput o;
  1137. ZERO_INITIALIZE(VertexOutput, o);
  1138. UNITY_SETUP_INSTANCE_ID(v);
  1139. UNITY_TRANSFER_INSTANCE_ID(v, o);
  1140. UNITY_INITIALIZE_VERTEX_OUTPUT_STEREO(o);
  1141. #ifdef ASE_ABSOLUTE_VERTEX_POS
  1142. float3 defaultVertexValue = v.vertex.xyz;
  1143. #else
  1144. float3 defaultVertexValue = float3(0, 0, 0);
  1145. #endif
  1146. float3 vertexValue = defaultVertexValue;
  1147. #ifdef ASE_ABSOLUTE_VERTEX_POS
  1148. v.vertex.xyz = vertexValue;
  1149. #else
  1150. v.vertex.xyz += vertexValue;
  1151. #endif
  1152. v.ase_normal = v.ase_normal;
  1153. float3 positionWS = TransformObjectToWorld( v.vertex.xyz );
  1154. o.clipPos = TransformWorldToHClip(positionWS);
  1155. return o;
  1156. }
  1157. #if defined(TESSELLATION_ON)
  1158. struct VertexControl
  1159. {
  1160. float4 vertex : INTERNALTESSPOS;
  1161. float3 ase_normal : NORMAL;
  1162. UNITY_VERTEX_INPUT_INSTANCE_ID
  1163. };
  1164. struct TessellationFactors
  1165. {
  1166. float edge[3] : SV_TessFactor;
  1167. float inside : SV_InsideTessFactor;
  1168. };
  1169. VertexControl vert ( VertexInput v )
  1170. {
  1171. VertexControl o;
  1172. UNITY_SETUP_INSTANCE_ID(v);
  1173. UNITY_TRANSFER_INSTANCE_ID(v, o);
  1174. o.vertex = v.vertex;
  1175. o.ase_normal = v.ase_normal;
  1176. return o;
  1177. }
  1178. TessellationFactors TessellationFunction (InputPatch<VertexControl,3> v)
  1179. {
  1180. TessellationFactors o;
  1181. float4 tf = 1;
  1182. float tessValue = _TessValue; float tessMin = _TessMin; float tessMax = _TessMax;
  1183. float edgeLength = _TessEdgeLength; float tessMaxDisp = _TessMaxDisp;
  1184. #if defined(ASE_FIXED_TESSELLATION)
  1185. tf = FixedTess( tessValue );
  1186. #elif defined(ASE_DISTANCE_TESSELLATION)
  1187. tf = DistanceBasedTess(v[0].vertex, v[1].vertex, v[2].vertex, tessValue, tessMin, tessMax, GetObjectToWorldMatrix(), _WorldSpaceCameraPos );
  1188. #elif defined(ASE_LENGTH_TESSELLATION)
  1189. tf = EdgeLengthBasedTess(v[0].vertex, v[1].vertex, v[2].vertex, edgeLength, GetObjectToWorldMatrix(), _WorldSpaceCameraPos, _ScreenParams );
  1190. #elif defined(ASE_LENGTH_CULL_TESSELLATION)
  1191. tf = EdgeLengthBasedTessCull(v[0].vertex, v[1].vertex, v[2].vertex, edgeLength, tessMaxDisp, GetObjectToWorldMatrix(), _WorldSpaceCameraPos, _ScreenParams, unity_CameraWorldClipPlanes );
  1192. #endif
  1193. o.edge[0] = tf.x; o.edge[1] = tf.y; o.edge[2] = tf.z; o.inside = tf.w;
  1194. return o;
  1195. }
  1196. [domain("tri")]
  1197. [partitioning("fractional_odd")]
  1198. [outputtopology("triangle_cw")]
  1199. [patchconstantfunc("TessellationFunction")]
  1200. [outputcontrolpoints(3)]
  1201. VertexControl HullFunction(InputPatch<VertexControl, 3> patch, uint id : SV_OutputControlPointID)
  1202. {
  1203. return patch[id];
  1204. }
  1205. [domain("tri")]
  1206. VertexOutput DomainFunction(TessellationFactors factors, OutputPatch<VertexControl, 3> patch, float3 bary : SV_DomainLocation)
  1207. {
  1208. VertexInput o = (VertexInput) 0;
  1209. o.vertex = patch[0].vertex * bary.x + patch[1].vertex * bary.y + patch[2].vertex * bary.z;
  1210. o.ase_normal = patch[0].ase_normal * bary.x + patch[1].ase_normal * bary.y + patch[2].ase_normal * bary.z;
  1211. #if defined(ASE_PHONG_TESSELLATION)
  1212. float3 pp[3];
  1213. for (int i = 0; i < 3; ++i)
  1214. pp[i] = o.vertex.xyz - patch[i].ase_normal * (dot(o.vertex.xyz, patch[i].ase_normal) - dot(patch[i].vertex.xyz, patch[i].ase_normal));
  1215. float phongStrength = _TessPhongStrength;
  1216. o.vertex.xyz = phongStrength * (pp[0]*bary.x + pp[1]*bary.y + pp[2]*bary.z) + (1.0f-phongStrength) * o.vertex.xyz;
  1217. #endif
  1218. UNITY_TRANSFER_INSTANCE_ID(patch[0], o);
  1219. return VertexFunction(o);
  1220. }
  1221. #else
  1222. VertexOutput vert ( VertexInput v )
  1223. {
  1224. return VertexFunction( v );
  1225. }
  1226. #endif
  1227. half4 frag(VertexOutput IN ) : SV_TARGET
  1228. {
  1229. SurfaceDescription surfaceDescription = (SurfaceDescription)0;
  1230. surfaceDescription.Alpha = 1;
  1231. surfaceDescription.AlphaClipThreshold = 0.5;
  1232. #if _ALPHATEST_ON
  1233. float alphaClipThreshold = 0.01f;
  1234. #if ALPHA_CLIP_THRESHOLD
  1235. alphaClipThreshold = surfaceDescription.AlphaClipThreshold;
  1236. #endif
  1237. clip(surfaceDescription.Alpha - alphaClipThreshold);
  1238. #endif
  1239. half4 outColor = 0;
  1240. outColor = _SelectionID;
  1241. return outColor;
  1242. }
  1243. ENDHLSL
  1244. }
  1245. Pass
  1246. {
  1247. Name "DepthNormals"
  1248. Tags { "LightMode"="DepthNormalsOnly" }
  1249. ZTest LEqual
  1250. ZWrite On
  1251. HLSLPROGRAM
  1252. #pragma multi_compile_instancing
  1253. #define _RECEIVE_SHADOWS_OFF 1
  1254. #define ASE_SRP_VERSION 999999
  1255. #pragma only_renderers d3d11 glcore gles gles3
  1256. #pragma multi_compile_fog
  1257. #pragma instancing_options renderinglayer
  1258. #pragma vertex vert
  1259. #pragma fragment frag
  1260. #define ATTRIBUTES_NEED_NORMAL
  1261. #define ATTRIBUTES_NEED_TANGENT
  1262. #define VARYINGS_NEED_NORMAL_WS
  1263. #define SHADERPASS SHADERPASS_DEPTHNORMALSONLY
  1264. #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/Color.hlsl"
  1265. #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/Texture.hlsl"
  1266. #include "Packages/com.unity.render-pipelines.universal/ShaderLibrary/Core.hlsl"
  1267. #include "Packages/com.unity.render-pipelines.universal/ShaderLibrary/Lighting.hlsl"
  1268. #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/TextureStack.hlsl"
  1269. #include "Packages/com.unity.render-pipelines.universal/ShaderLibrary/ShaderGraphFunctions.hlsl"
  1270. #include "Packages/com.unity.render-pipelines.universal/Editor/ShaderGraph/Includes/ShaderPass.hlsl"
  1271. struct VertexInput
  1272. {
  1273. float4 vertex : POSITION;
  1274. float3 ase_normal : NORMAL;
  1275. UNITY_VERTEX_INPUT_INSTANCE_ID
  1276. };
  1277. struct VertexOutput
  1278. {
  1279. float4 clipPos : SV_POSITION;
  1280. float3 normalWS : TEXCOORD0;
  1281. UNITY_VERTEX_INPUT_INSTANCE_ID
  1282. UNITY_VERTEX_OUTPUT_STEREO
  1283. };
  1284. CBUFFER_START(UnityPerMaterial)
  1285. float4 _dissolve_ST;
  1286. float4 _Turb_Noise_ST;
  1287. float4 _Mask_ST;
  1288. float4 _Main_Tex_ST;
  1289. float4 _Main_Color;
  1290. float2 _Turb_UV;
  1291. float2 _Diss_UV;
  1292. float2 _MaskUVSpeed;
  1293. float2 _Main_UV;
  1294. float _CustomDataMainUV;
  1295. float _YmaskExp;
  1296. float _Alpha;
  1297. float _Diss_value;
  1298. float _CustomDataDissolve;
  1299. float _DissSoft;
  1300. float _Turb_Value;
  1301. float _CTime;
  1302. float _Ymask;
  1303. float _MainAlpha;
  1304. float _ca;
  1305. #ifdef TESSELLATION_ON
  1306. float _TessPhongStrength;
  1307. float _TessValue;
  1308. float _TessMin;
  1309. float _TessMax;
  1310. float _TessEdgeLength;
  1311. float _TessMaxDisp;
  1312. #endif
  1313. CBUFFER_END
  1314. struct SurfaceDescription
  1315. {
  1316. float Alpha;
  1317. float AlphaClipThreshold;
  1318. };
  1319. VertexOutput VertexFunction(VertexInput v )
  1320. {
  1321. VertexOutput o;
  1322. ZERO_INITIALIZE(VertexOutput, o);
  1323. UNITY_SETUP_INSTANCE_ID(v);
  1324. UNITY_TRANSFER_INSTANCE_ID(v, o);
  1325. UNITY_INITIALIZE_VERTEX_OUTPUT_STEREO(o);
  1326. #ifdef ASE_ABSOLUTE_VERTEX_POS
  1327. float3 defaultVertexValue = v.vertex.xyz;
  1328. #else
  1329. float3 defaultVertexValue = float3(0, 0, 0);
  1330. #endif
  1331. float3 vertexValue = defaultVertexValue;
  1332. #ifdef ASE_ABSOLUTE_VERTEX_POS
  1333. v.vertex.xyz = vertexValue;
  1334. #else
  1335. v.vertex.xyz += vertexValue;
  1336. #endif
  1337. v.ase_normal = v.ase_normal;
  1338. float3 positionWS = TransformObjectToWorld( v.vertex.xyz );
  1339. float3 normalWS = TransformObjectToWorldNormal(v.ase_normal);
  1340. o.clipPos = TransformWorldToHClip(positionWS);
  1341. o.normalWS.xyz = normalWS;
  1342. return o;
  1343. }
  1344. #if defined(TESSELLATION_ON)
  1345. struct VertexControl
  1346. {
  1347. float4 vertex : INTERNALTESSPOS;
  1348. float3 ase_normal : NORMAL;
  1349. UNITY_VERTEX_INPUT_INSTANCE_ID
  1350. };
  1351. struct TessellationFactors
  1352. {
  1353. float edge[3] : SV_TessFactor;
  1354. float inside : SV_InsideTessFactor;
  1355. };
  1356. VertexControl vert ( VertexInput v )
  1357. {
  1358. VertexControl o;
  1359. UNITY_SETUP_INSTANCE_ID(v);
  1360. UNITY_TRANSFER_INSTANCE_ID(v, o);
  1361. o.vertex = v.vertex;
  1362. o.ase_normal = v.ase_normal;
  1363. return o;
  1364. }
  1365. TessellationFactors TessellationFunction (InputPatch<VertexControl,3> v)
  1366. {
  1367. TessellationFactors o;
  1368. float4 tf = 1;
  1369. float tessValue = _TessValue; float tessMin = _TessMin; float tessMax = _TessMax;
  1370. float edgeLength = _TessEdgeLength; float tessMaxDisp = _TessMaxDisp;
  1371. #if defined(ASE_FIXED_TESSELLATION)
  1372. tf = FixedTess( tessValue );
  1373. #elif defined(ASE_DISTANCE_TESSELLATION)
  1374. tf = DistanceBasedTess(v[0].vertex, v[1].vertex, v[2].vertex, tessValue, tessMin, tessMax, GetObjectToWorldMatrix(), _WorldSpaceCameraPos );
  1375. #elif defined(ASE_LENGTH_TESSELLATION)
  1376. tf = EdgeLengthBasedTess(v[0].vertex, v[1].vertex, v[2].vertex, edgeLength, GetObjectToWorldMatrix(), _WorldSpaceCameraPos, _ScreenParams );
  1377. #elif defined(ASE_LENGTH_CULL_TESSELLATION)
  1378. tf = EdgeLengthBasedTessCull(v[0].vertex, v[1].vertex, v[2].vertex, edgeLength, tessMaxDisp, GetObjectToWorldMatrix(), _WorldSpaceCameraPos, _ScreenParams, unity_CameraWorldClipPlanes );
  1379. #endif
  1380. o.edge[0] = tf.x; o.edge[1] = tf.y; o.edge[2] = tf.z; o.inside = tf.w;
  1381. return o;
  1382. }
  1383. [domain("tri")]
  1384. [partitioning("fractional_odd")]
  1385. [outputtopology("triangle_cw")]
  1386. [patchconstantfunc("TessellationFunction")]
  1387. [outputcontrolpoints(3)]
  1388. VertexControl HullFunction(InputPatch<VertexControl, 3> patch, uint id : SV_OutputControlPointID)
  1389. {
  1390. return patch[id];
  1391. }
  1392. [domain("tri")]
  1393. VertexOutput DomainFunction(TessellationFactors factors, OutputPatch<VertexControl, 3> patch, float3 bary : SV_DomainLocation)
  1394. {
  1395. VertexInput o = (VertexInput) 0;
  1396. o.vertex = patch[0].vertex * bary.x + patch[1].vertex * bary.y + patch[2].vertex * bary.z;
  1397. o.ase_normal = patch[0].ase_normal * bary.x + patch[1].ase_normal * bary.y + patch[2].ase_normal * bary.z;
  1398. #if defined(ASE_PHONG_TESSELLATION)
  1399. float3 pp[3];
  1400. for (int i = 0; i < 3; ++i)
  1401. pp[i] = o.vertex.xyz - patch[i].ase_normal * (dot(o.vertex.xyz, patch[i].ase_normal) - dot(patch[i].vertex.xyz, patch[i].ase_normal));
  1402. float phongStrength = _TessPhongStrength;
  1403. o.vertex.xyz = phongStrength * (pp[0]*bary.x + pp[1]*bary.y + pp[2]*bary.z) + (1.0f-phongStrength) * o.vertex.xyz;
  1404. #endif
  1405. UNITY_TRANSFER_INSTANCE_ID(patch[0], o);
  1406. return VertexFunction(o);
  1407. }
  1408. #else
  1409. VertexOutput vert ( VertexInput v )
  1410. {
  1411. return VertexFunction( v );
  1412. }
  1413. #endif
  1414. half4 frag(VertexOutput IN ) : SV_TARGET
  1415. {
  1416. SurfaceDescription surfaceDescription = (SurfaceDescription)0;
  1417. surfaceDescription.Alpha = 1;
  1418. surfaceDescription.AlphaClipThreshold = 0.5;
  1419. #if _ALPHATEST_ON
  1420. clip(surfaceDescription.Alpha - surfaceDescription.AlphaClipThreshold);
  1421. #endif
  1422. #ifdef LOD_FADE_CROSSFADE
  1423. LODDitheringTransition( IN.clipPos.xyz, unity_LODFade.x );
  1424. #endif
  1425. float3 normalWS = IN.normalWS;
  1426. return half4(NormalizeNormalPerPixel(normalWS), 0.0);
  1427. }
  1428. ENDHLSL
  1429. }
  1430. Pass
  1431. {
  1432. Name "DepthNormalsOnly"
  1433. Tags { "LightMode"="DepthNormalsOnly" }
  1434. ZTest LEqual
  1435. ZWrite On
  1436. HLSLPROGRAM
  1437. #pragma multi_compile_instancing
  1438. #define _RECEIVE_SHADOWS_OFF 1
  1439. #define ASE_SRP_VERSION 999999
  1440. #pragma exclude_renderers glcore gles gles3
  1441. #pragma vertex vert
  1442. #pragma fragment frag
  1443. #define ATTRIBUTES_NEED_NORMAL
  1444. #define ATTRIBUTES_NEED_TANGENT
  1445. #define ATTRIBUTES_NEED_TEXCOORD1
  1446. #define VARYINGS_NEED_NORMAL_WS
  1447. #define VARYINGS_NEED_TANGENT_WS
  1448. #define SHADERPASS SHADERPASS_DEPTHNORMALSONLY
  1449. #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/Color.hlsl"
  1450. #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/Texture.hlsl"
  1451. #include "Packages/com.unity.render-pipelines.universal/ShaderLibrary/Core.hlsl"
  1452. #include "Packages/com.unity.render-pipelines.universal/ShaderLibrary/Lighting.hlsl"
  1453. #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/TextureStack.hlsl"
  1454. #include "Packages/com.unity.render-pipelines.universal/ShaderLibrary/ShaderGraphFunctions.hlsl"
  1455. #include "Packages/com.unity.render-pipelines.universal/Editor/ShaderGraph/Includes/ShaderPass.hlsl"
  1456. struct VertexInput
  1457. {
  1458. float4 vertex : POSITION;
  1459. float3 ase_normal : NORMAL;
  1460. UNITY_VERTEX_INPUT_INSTANCE_ID
  1461. };
  1462. struct VertexOutput
  1463. {
  1464. float4 clipPos : SV_POSITION;
  1465. float3 normalWS : TEXCOORD0;
  1466. UNITY_VERTEX_INPUT_INSTANCE_ID
  1467. UNITY_VERTEX_OUTPUT_STEREO
  1468. };
  1469. CBUFFER_START(UnityPerMaterial)
  1470. float4 _dissolve_ST;
  1471. float4 _Turb_Noise_ST;
  1472. float4 _Mask_ST;
  1473. float4 _Main_Tex_ST;
  1474. float4 _Main_Color;
  1475. float2 _Turb_UV;
  1476. float2 _Diss_UV;
  1477. float2 _MaskUVSpeed;
  1478. float2 _Main_UV;
  1479. float _CustomDataMainUV;
  1480. float _YmaskExp;
  1481. float _Alpha;
  1482. float _Diss_value;
  1483. float _CustomDataDissolve;
  1484. float _DissSoft;
  1485. float _Turb_Value;
  1486. float _CTime;
  1487. float _Ymask;
  1488. float _MainAlpha;
  1489. float _ca;
  1490. #ifdef TESSELLATION_ON
  1491. float _TessPhongStrength;
  1492. float _TessValue;
  1493. float _TessMin;
  1494. float _TessMax;
  1495. float _TessEdgeLength;
  1496. float _TessMaxDisp;
  1497. #endif
  1498. CBUFFER_END
  1499. struct SurfaceDescription
  1500. {
  1501. float Alpha;
  1502. float AlphaClipThreshold;
  1503. };
  1504. VertexOutput VertexFunction(VertexInput v )
  1505. {
  1506. VertexOutput o;
  1507. ZERO_INITIALIZE(VertexOutput, o);
  1508. UNITY_SETUP_INSTANCE_ID(v);
  1509. UNITY_TRANSFER_INSTANCE_ID(v, o);
  1510. UNITY_INITIALIZE_VERTEX_OUTPUT_STEREO(o);
  1511. #ifdef ASE_ABSOLUTE_VERTEX_POS
  1512. float3 defaultVertexValue = v.vertex.xyz;
  1513. #else
  1514. float3 defaultVertexValue = float3(0, 0, 0);
  1515. #endif
  1516. float3 vertexValue = defaultVertexValue;
  1517. #ifdef ASE_ABSOLUTE_VERTEX_POS
  1518. v.vertex.xyz = vertexValue;
  1519. #else
  1520. v.vertex.xyz += vertexValue;
  1521. #endif
  1522. v.ase_normal = v.ase_normal;
  1523. float3 positionWS = TransformObjectToWorld( v.vertex.xyz );
  1524. float3 normalWS = TransformObjectToWorldNormal(v.ase_normal);
  1525. o.clipPos = TransformWorldToHClip(positionWS);
  1526. o.normalWS.xyz = normalWS;
  1527. return o;
  1528. }
  1529. #if defined(TESSELLATION_ON)
  1530. struct VertexControl
  1531. {
  1532. float4 vertex : INTERNALTESSPOS;
  1533. float3 ase_normal : NORMAL;
  1534. UNITY_VERTEX_INPUT_INSTANCE_ID
  1535. };
  1536. struct TessellationFactors
  1537. {
  1538. float edge[3] : SV_TessFactor;
  1539. float inside : SV_InsideTessFactor;
  1540. };
  1541. VertexControl vert ( VertexInput v )
  1542. {
  1543. VertexControl o;
  1544. UNITY_SETUP_INSTANCE_ID(v);
  1545. UNITY_TRANSFER_INSTANCE_ID(v, o);
  1546. o.vertex = v.vertex;
  1547. o.ase_normal = v.ase_normal;
  1548. return o;
  1549. }
  1550. TessellationFactors TessellationFunction (InputPatch<VertexControl,3> v)
  1551. {
  1552. TessellationFactors o;
  1553. float4 tf = 1;
  1554. float tessValue = _TessValue; float tessMin = _TessMin; float tessMax = _TessMax;
  1555. float edgeLength = _TessEdgeLength; float tessMaxDisp = _TessMaxDisp;
  1556. #if defined(ASE_FIXED_TESSELLATION)
  1557. tf = FixedTess( tessValue );
  1558. #elif defined(ASE_DISTANCE_TESSELLATION)
  1559. tf = DistanceBasedTess(v[0].vertex, v[1].vertex, v[2].vertex, tessValue, tessMin, tessMax, GetObjectToWorldMatrix(), _WorldSpaceCameraPos );
  1560. #elif defined(ASE_LENGTH_TESSELLATION)
  1561. tf = EdgeLengthBasedTess(v[0].vertex, v[1].vertex, v[2].vertex, edgeLength, GetObjectToWorldMatrix(), _WorldSpaceCameraPos, _ScreenParams );
  1562. #elif defined(ASE_LENGTH_CULL_TESSELLATION)
  1563. tf = EdgeLengthBasedTessCull(v[0].vertex, v[1].vertex, v[2].vertex, edgeLength, tessMaxDisp, GetObjectToWorldMatrix(), _WorldSpaceCameraPos, _ScreenParams, unity_CameraWorldClipPlanes );
  1564. #endif
  1565. o.edge[0] = tf.x; o.edge[1] = tf.y; o.edge[2] = tf.z; o.inside = tf.w;
  1566. return o;
  1567. }
  1568. [domain("tri")]
  1569. [partitioning("fractional_odd")]
  1570. [outputtopology("triangle_cw")]
  1571. [patchconstantfunc("TessellationFunction")]
  1572. [outputcontrolpoints(3)]
  1573. VertexControl HullFunction(InputPatch<VertexControl, 3> patch, uint id : SV_OutputControlPointID)
  1574. {
  1575. return patch[id];
  1576. }
  1577. [domain("tri")]
  1578. VertexOutput DomainFunction(TessellationFactors factors, OutputPatch<VertexControl, 3> patch, float3 bary : SV_DomainLocation)
  1579. {
  1580. VertexInput o = (VertexInput) 0;
  1581. o.vertex = patch[0].vertex * bary.x + patch[1].vertex * bary.y + patch[2].vertex * bary.z;
  1582. o.ase_normal = patch[0].ase_normal * bary.x + patch[1].ase_normal * bary.y + patch[2].ase_normal * bary.z;
  1583. #if defined(ASE_PHONG_TESSELLATION)
  1584. float3 pp[3];
  1585. for (int i = 0; i < 3; ++i)
  1586. pp[i] = o.vertex.xyz - patch[i].ase_normal * (dot(o.vertex.xyz, patch[i].ase_normal) - dot(patch[i].vertex.xyz, patch[i].ase_normal));
  1587. float phongStrength = _TessPhongStrength;
  1588. o.vertex.xyz = phongStrength * (pp[0]*bary.x + pp[1]*bary.y + pp[2]*bary.z) + (1.0f-phongStrength) * o.vertex.xyz;
  1589. #endif
  1590. UNITY_TRANSFER_INSTANCE_ID(patch[0], o);
  1591. return VertexFunction(o);
  1592. }
  1593. #else
  1594. VertexOutput vert ( VertexInput v )
  1595. {
  1596. return VertexFunction( v );
  1597. }
  1598. #endif
  1599. half4 frag(VertexOutput IN ) : SV_TARGET
  1600. {
  1601. SurfaceDescription surfaceDescription = (SurfaceDescription)0;
  1602. surfaceDescription.Alpha = 1;
  1603. surfaceDescription.AlphaClipThreshold = 0.5;
  1604. #if _ALPHATEST_ON
  1605. clip(surfaceDescription.Alpha - surfaceDescription.AlphaClipThreshold);
  1606. #endif
  1607. #ifdef LOD_FADE_CROSSFADE
  1608. LODDitheringTransition( IN.clipPos.xyz, unity_LODFade.x );
  1609. #endif
  1610. float3 normalWS = IN.normalWS;
  1611. return half4(NormalizeNormalPerPixel(normalWS), 0.0);
  1612. }
  1613. ENDHLSL
  1614. }
  1615. }
  1616. CustomEditor "UnityEditor.ShaderGraphUnlitGUI"
  1617. Fallback "Hidden/InternalErrorShader"
  1618. }
  1619. /*ASEBEGIN
  1620. Version=18935
  1621. 2092.8;176.8;1567.2;735;998.4425;-387.0441;1.3;True;False
  1622. Node;AmplifyShaderEditor.CommentaryNode;77;-73.42047,652.9898;Inherit;False;803.3438;451.5571;Comment;6;74;73;72;71;70;75;ymask;1,1,1,1;0;0
  1623. Node;AmplifyShaderEditor.CommentaryNode;55;-1478.847,1542.836;Inherit;False;1348.639;814.7972;Comment;15;33;28;50;31;35;51;49;29;30;32;48;34;67;68;69;rongjie;1,1,1,1;0;0
  1624. Node;AmplifyShaderEditor.CommentaryNode;54;-1250.246,914.5117;Inherit;False;830.3158;483.1761;Comment;6;61;62;52;53;38;37;mask;1,1,1,1;0;0
  1625. 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;63;64;65;66;;1,1,1,1;0;0
  1626. 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
  1627. Node;AmplifyShaderEditor.SimpleMultiplyOpNode;68;-1210.374,1841.185;Inherit;False;2;2;0;FLOAT2;0,0;False;1;FLOAT;0;False;1;FLOAT2;0
  1628. Node;AmplifyShaderEditor.TextureCoordinatesNode;18;-1823.574,307.5572;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
  1629. Node;AmplifyShaderEditor.PannerNode;53;-935.498,1050.188;Inherit;False;3;0;FLOAT2;0,0;False;2;FLOAT2;0,0;False;1;FLOAT;1;False;1;FLOAT2;0
  1630. Node;AmplifyShaderEditor.PannerNode;31;-1079.477,1723.289;Inherit;False;3;0;FLOAT2;0,0;False;2;FLOAT2;0,0;False;1;FLOAT;1;False;1;FLOAT2;0
  1631. Node;AmplifyShaderEditor.FunctionNode;67;-1395.932,1894.309;Inherit;False;CombatTiem;0;;4;baa0c5cb73677dd46acb62f0afb31b96;0;0;1;FLOAT;0
  1632. Node;AmplifyShaderEditor.SimpleMultiplyOpNode;15;-1140.439,22.43915;Inherit;True;2;2;0;FLOAT;0;False;1;FLOAT;0;False;1;FLOAT;0
  1633. 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
  1634. 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
  1635. Node;AmplifyShaderEditor.Vector2Node;20;-1813.873,453.0892;Float;False;Property;_Main_UV;Main_UV;6;0;Create;True;0;0;0;False;0;False;0,0;0,0;0;3;FLOAT2;0;FLOAT;1;FLOAT;2
  1636. Node;AmplifyShaderEditor.RangedFloatNode;70;22.98103,853.1517;Inherit;False;Property;_Ymask;Ymask;18;0;Create;True;0;0;0;False;0;False;0.21;0.5;0;0;0;1;FLOAT;0
  1637. Node;AmplifyShaderEditor.Vector2Node;52;-1197.689,1114.869;Float;False;Property;_MaskUVSpeed;MaskUVSpeed;17;0;Create;True;0;0;0;False;0;False;0,0;0,0;0;3;FLOAT2;0;FLOAT;1;FLOAT;2
  1638. Node;AmplifyShaderEditor.RangedFloatNode;32;-1172.35,1948.927;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
  1639. Node;AmplifyShaderEditor.FunctionNode;63;-1810.334,628.0292;Inherit;False;CombatTiem;0;;7;baa0c5cb73677dd46acb62f0afb31b96;0;0;1;FLOAT;0
  1640. Node;AmplifyShaderEditor.SimpleMultiplyOpNode;61;-1010.099,1219.268;Inherit;False;2;2;0;FLOAT2;0,0;False;1;FLOAT;0;False;1;FLOAT2;0
  1641. Node;AmplifyShaderEditor.TextureCoordinatesNode;29;-1328.151,1592.836;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
  1642. Node;AmplifyShaderEditor.SimpleMultiplyOpNode;64;-1624.776,574.9052;Inherit;False;2;2;0;FLOAT2;0,0;False;1;FLOAT;0;False;1;FLOAT2;0
  1643. Node;AmplifyShaderEditor.Vector2Node;13;-2019.255,-54.00905;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
  1644. Node;AmplifyShaderEditor.FunctionNode;65;-2039.261,107.5029;Inherit;False;CombatTiem;0;;8;baa0c5cb73677dd46acb62f0afb31b96;0;0;1;FLOAT;0
  1645. 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
  1646. Node;AmplifyShaderEditor.RangedFloatNode;76;20.72333,510.9119;Inherit;False;Property;_ca;_ca;20;0;Create;True;0;0;0;False;0;False;1;1;0;0;0;1;FLOAT;0
  1647. Node;AmplifyShaderEditor.PannerNode;19;-1525.58,369.9281;Inherit;False;3;0;FLOAT2;0,0;False;2;FLOAT2;0,0;False;1;FLOAT;1;False;1;FLOAT2;0
  1648. Node;AmplifyShaderEditor.SimpleMultiplyOpNode;74;334.8233,793.351;Inherit;True;2;2;0;FLOAT;0;False;1;FLOAT;0;False;1;FLOAT;0
  1649. Node;AmplifyShaderEditor.SimpleSubtractOpNode;73;185.481,769.9518;Inherit;False;2;0;FLOAT;0;False;1;FLOAT;0;False;1;FLOAT;0
  1650. Node;AmplifyShaderEditor.RangedFloatNode;72;-22.11114,989.1469;Inherit;False;Property;_YmaskExp;Ymask硬吗;19;0;Create;False;0;0;0;False;0;False;1;3;1;10;0;1;FLOAT;0
  1651. Node;AmplifyShaderEditor.WorldPosInputsNode;71;-23.42047,702.9898;Inherit;False;0;4;FLOAT3;0;FLOAT;1;FLOAT;2;FLOAT;3
  1652. Node;AmplifyShaderEditor.SimpleMultiplyOpNode;66;-1862.703,86.37891;Inherit;False;2;2;0;FLOAT2;0,0;False;1;FLOAT;0;False;1;FLOAT2;0
  1653. Node;AmplifyShaderEditor.RangedFloatNode;60;-552.8481,55.0993;Inherit;False;Property;_MainAlpha;MainAlpha;5;0;Create;False;0;0;0;False;0;False;0;0;0;1;0;1;FLOAT;0
  1654. Node;AmplifyShaderEditor.FunctionNode;62;-1195.657,1272.392;Inherit;False;CombatTiem;0;;1;baa0c5cb73677dd46acb62f0afb31b96;0;0;1;FLOAT;0
  1655. Node;AmplifyShaderEditor.SimpleMultiplyOpNode;23;-15.3132,109.9529;Inherit;True;8;8;0;COLOR;0,0,0,0;False;1;COLOR;0,0,0,0;False;2;COLOR;0,0,0,0;False;3;FLOAT;0;False;4;FLOAT;0;False;5;FLOAT;0;False;6;FLOAT;0;False;7;FLOAT;0;False;1;COLOR;0
  1656. Node;AmplifyShaderEditor.VertexColorNode;27;-457.5723,413.3982;Inherit;False;0;5;COLOR;0;FLOAT;1;FLOAT;2;FLOAT;3;FLOAT;4
  1657. Node;AmplifyShaderEditor.SamplerNode;10;-576.018,-144.1307;Inherit;True;Property;_Main_Tex;Main_Tex;4;0;Create;True;0;0;0;False;0;False;-1;None;530e48dfc85799e4eb1fb045cf9aab94;True;0;False;white;Auto;False;Object;-1;Auto;Texture2D;8;0;SAMPLER2D;;False;1;FLOAT2;0,0;False;2;FLOAT;0;False;3;FLOAT2;0,0;False;4;FLOAT2;0,0;False;5;FLOAT;1;False;6;FLOAT;0;False;7;SAMPLERSTATE;;False;5;COLOR;0;FLOAT;1;FLOAT;2;FLOAT;3;FLOAT;4
  1658. Node;AmplifyShaderEditor.RoundOpNode;43;-1554.143,1109.573;Inherit;False;1;0;FLOAT;0;False;1;FLOAT;0
  1659. Node;AmplifyShaderEditor.LerpOp;58;-93.26752,-193.9448;Inherit;False;3;0;COLOR;0,0,0,0;False;1;COLOR;0,0,0,0;False;2;FLOAT;0;False;1;COLOR;0
  1660. Node;AmplifyShaderEditor.LerpOp;50;-1019.727,2034.972;Inherit;False;3;0;FLOAT;0;False;1;FLOAT;0;False;2;FLOAT;0;False;1;FLOAT;0
  1661. 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
  1662. 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;5;COLOR;0;FLOAT;1;FLOAT;2;FLOAT;3;FLOAT;4
  1663. 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
  1664. Node;AmplifyShaderEditor.SmoothstepOpNode;33;-384.008,1689.036;Inherit;True;3;0;FLOAT;0;False;1;FLOAT;0;False;2;FLOAT;1;False;1;FLOAT;0
  1665. Node;AmplifyShaderEditor.RoundOpNode;49;-1144.448,2208.081;Inherit;False;1;0;FLOAT;0;False;1;FLOAT;0
  1666. 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
  1667. Node;AmplifyShaderEditor.RoundOpNode;59;-217.8831,26.97256;Inherit;False;1;0;FLOAT;0;False;1;FLOAT;0
  1668. Node;AmplifyShaderEditor.SamplerNode;28;-823.3346,1687.361;Inherit;True;Property;_dissolve;dissolve;11;0;Create;True;0;0;0;False;0;False;-1;None;None;True;0;False;white;Auto;False;Object;-1;Auto;Texture2D;8;0;SAMPLER2D;;False;1;FLOAT2;0,0;False;2;FLOAT;0;False;3;FLOAT2;0,0;False;4;FLOAT2;0,0;False;5;FLOAT;1;False;6;FLOAT;0;False;7;SAMPLERSTATE;;False;5;COLOR;0;FLOAT;1;FLOAT;2;FLOAT;3;FLOAT;4
  1669. Node;AmplifyShaderEditor.RangedFloatNode;51;-1428.847,2242.234;Inherit;False;Property;_CustomDataDissolve;CustomDataDissolve;15;0;Create;True;0;0;0;False;0;False;0;0;0;1;0;1;FLOAT;0
  1670. Node;AmplifyShaderEditor.SamplerNode;37;-741.5298,964.5117;Inherit;True;Property;_Mask;Mask;16;0;Create;True;0;0;0;False;0;False;-1;None;None;True;0;False;white;Auto;False;Object;-1;Auto;Texture2D;8;0;SAMPLER2D;;False;1;FLOAT2;0,0;False;2;FLOAT;0;False;3;FLOAT2;0,0;False;4;FLOAT2;0,0;False;5;FLOAT;1;False;6;FLOAT;0;False;7;SAMPLERSTATE;;False;5;COLOR;0;FLOAT;1;FLOAT;2;FLOAT;3;FLOAT;4
  1671. Node;AmplifyShaderEditor.RangedFloatNode;25;-514.3903,629.5239;Inherit;False;Property;_Alpha;Alpha;3;0;Create;True;0;0;0;False;0;False;1;1;0;1;0;1;FLOAT;0
  1672. 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;0;5;COLOR;0;FLOAT;1;FLOAT;2;FLOAT;3;FLOAT;4
  1673. 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
  1674. Node;AmplifyShaderEditor.SimpleAddOpNode;35;-533.7675,1924.828;Inherit;False;2;2;0;FLOAT;0;False;1;FLOAT;0;False;1;FLOAT;0
  1675. Node;AmplifyShaderEditor.TextureCoordinatesNode;38;-1175.546,980.5729;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
  1676. Node;AmplifyShaderEditor.TextureCoordinatesNode;48;-1319.813,2021.865;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
  1677. Node;AmplifyShaderEditor.ClampOpNode;75;559.1233,790.8129;Inherit;False;3;0;FLOAT;0;False;1;FLOAT;0;False;2;FLOAT;1;False;1;FLOAT;0
  1678. Node;AmplifyShaderEditor.RangedFloatNode;34;-718.8226,2128.601;Float;False;Property;_DissSoft;DissSoft;13;0;Create;True;0;0;0;False;0;False;0;0;0;0;0;1;FLOAT;0
  1679. 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
  1680. Node;AmplifyShaderEditor.Vector2Node;30;-1423.425,1722.784;Float;False;Property;_Diss_UV;Diss_UV;14;0;Create;True;0;0;0;False;0;False;0,0;0,0;0;3;FLOAT2;0;FLOAT;1;FLOAT;2
  1681. Node;AmplifyShaderEditor.SimpleAddOpNode;17;-855.9427,23.89853;Inherit;True;2;2;0;FLOAT;0;False;1;FLOAT2;0,0;False;1;FLOAT2;0
  1682. Node;AmplifyShaderEditor.LerpOp;69;-823.3308,1919.283;Inherit;False;3;0;FLOAT;0;False;1;FLOAT;0;False;2;FLOAT;0;False;1;FLOAT;0
  1683. 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
  1684. Node;AmplifyShaderEditor.TemplateMultiPassMasterNode;2;0,0;Float;False;False;-1;2;UnityEditor.ShaderGraphUnlitGUI;0;1;New Amplify Shader;2992e84f91cbeb14eab234972e07ea9d;True;ShadowCaster;0;2;ShadowCaster;0;False;False;False;False;False;False;False;False;False;False;False;False;True;0;False;-1;False;True;0;False;-1;False;False;False;False;False;False;False;False;False;True;False;255;False;-1;255;False;-1;255;False;-1;7;False;-1;1;False;-1;1;False;-1;1;False;-1;7;False;-1;1;False;-1;1;False;-1;1;False;-1;False;False;False;False;True;3;RenderPipeline=UniversalPipeline;RenderType=Opaque=RenderType;Queue=Geometry=Queue=0;True;2;True;17;d3d9;d3d11;glcore;gles;gles3;metal;vulkan;xbox360;xboxone;xboxseries;ps4;playstation;psp2;n3ds;wiiu;switch;nomrt;0;False;False;False;False;False;False;False;False;False;False;False;False;True;0;False;-1;False;False;False;True;False;False;False;False;0;False;-1;False;False;False;False;False;False;False;False;False;True;1;False;-1;True;3;False;-1;False;True;1;LightMode=ShadowCaster;False;False;0;Hidden/InternalErrorShader;0;0;Standard;0;False;0
  1685. Node;AmplifyShaderEditor.TemplateMultiPassMasterNode;5;0,0;Float;False;False;-1;2;UnityEditor.ShaderGraphUnlitGUI;0;1;New Amplify Shader;2992e84f91cbeb14eab234972e07ea9d;True;Universal2D;0;5;Universal2D;0;False;False;False;False;False;False;False;False;False;False;False;False;True;0;False;-1;False;True;0;False;-1;False;False;False;False;False;False;False;False;False;True;False;255;False;-1;255;False;-1;255;False;-1;7;False;-1;1;False;-1;1;False;-1;1;False;-1;7;False;-1;1;False;-1;1;False;-1;1;False;-1;False;False;False;False;True;3;RenderPipeline=UniversalPipeline;RenderType=Opaque=RenderType;Queue=Geometry=Queue=0;True;2;True;17;d3d9;d3d11;glcore;gles;gles3;metal;vulkan;xbox360;xboxone;xboxseries;ps4;playstation;psp2;n3ds;wiiu;switch;nomrt;0;False;True;1;1;False;-1;1;False;-1;4;1;False;-1;1;False;-1;False;False;False;False;False;False;False;False;False;False;False;False;False;False;True;True;True;True;True;0;False;-1;False;False;False;False;False;False;False;True;False;255;False;-1;255;False;-1;255;False;-1;7;False;-1;1;False;-1;1;False;-1;1;False;-1;7;False;-1;1;False;-1;1;False;-1;1;False;-1;False;True;2;False;-1;True;3;False;-1;True;True;0;False;-1;0;False;-1;True;1;LightMode=Universal2D;False;False;0;Hidden/InternalErrorShader;0;0;Standard;0;False;0
  1686. Node;AmplifyShaderEditor.TemplateMultiPassMasterNode;8;0,0;Float;False;False;-1;2;UnityEditor.ShaderGraphUnlitGUI;0;1;New Amplify Shader;2992e84f91cbeb14eab234972e07ea9d;True;DepthNormals;0;8;DepthNormals;0;False;False;False;False;False;False;False;False;False;False;False;False;True;0;False;-1;False;True;0;False;-1;False;False;False;False;False;False;False;False;False;True;False;255;False;-1;255;False;-1;255;False;-1;7;False;-1;1;False;-1;1;False;-1;1;False;-1;7;False;-1;1;False;-1;1;False;-1;1;False;-1;False;False;False;False;True;3;RenderPipeline=UniversalPipeline;RenderType=Opaque=RenderType;Queue=Geometry=Queue=0;True;2;True;17;d3d9;d3d11;glcore;gles;gles3;metal;vulkan;xbox360;xboxone;xboxseries;ps4;playstation;psp2;n3ds;wiiu;switch;nomrt;0;False;False;False;False;False;False;False;False;False;False;False;False;False;False;False;False;False;False;False;False;False;False;False;False;False;False;True;1;False;-1;True;3;False;-1;False;True;1;LightMode=DepthNormalsOnly;False;True;4;d3d11;glcore;gles;gles3;0;Hidden/InternalErrorShader;0;0;Standard;0;False;0
  1687. Node;AmplifyShaderEditor.TemplateMultiPassMasterNode;4;0,0;Float;False;False;-1;2;UnityEditor.ShaderGraphUnlitGUI;0;1;New Amplify Shader;2992e84f91cbeb14eab234972e07ea9d;True;Meta;0;4;Meta;0;False;False;False;False;False;False;False;False;False;False;False;False;True;0;False;-1;False;True;0;False;-1;False;False;False;False;False;False;False;False;False;True;False;255;False;-1;255;False;-1;255;False;-1;7;False;-1;1;False;-1;1;False;-1;1;False;-1;7;False;-1;1;False;-1;1;False;-1;1;False;-1;False;False;False;False;True;3;RenderPipeline=UniversalPipeline;RenderType=Opaque=RenderType;Queue=Geometry=Queue=0;True;2;True;17;d3d9;d3d11;glcore;gles;gles3;metal;vulkan;xbox360;xboxone;xboxseries;ps4;playstation;psp2;n3ds;wiiu;switch;nomrt;0;False;False;False;False;False;False;False;False;False;False;False;False;False;False;True;2;False;-1;False;False;False;False;False;False;False;False;False;False;False;False;False;False;True;1;LightMode=Meta;False;False;0;Hidden/InternalErrorShader;0;0;Standard;0;False;0
  1688. Node;AmplifyShaderEditor.TemplateMultiPassMasterNode;0;0,0;Float;False;False;-1;2;UnityEditor.ShaderGraphUnlitGUI;0;1;New Amplify Shader;2992e84f91cbeb14eab234972e07ea9d;True;ExtraPrePass;0;0;ExtraPrePass;5;False;False;False;False;False;False;False;False;False;False;False;False;True;0;False;-1;False;True;0;False;-1;False;False;False;False;False;False;False;False;False;True;False;255;False;-1;255;False;-1;255;False;-1;7;False;-1;1;False;-1;1;False;-1;1;False;-1;7;False;-1;1;False;-1;1;False;-1;1;False;-1;False;False;False;False;True;3;RenderPipeline=UniversalPipeline;RenderType=Opaque=RenderType;Queue=Geometry=Queue=0;True;2;True;17;d3d9;d3d11;glcore;gles;gles3;metal;vulkan;xbox360;xboxone;xboxseries;ps4;playstation;psp2;n3ds;wiiu;switch;nomrt;0;False;True;1;1;False;-1;0;False;-1;0;1;False;-1;0;False;-1;False;False;False;False;False;False;False;False;False;False;False;False;True;0;False;-1;False;True;True;True;True;True;0;False;-1;False;False;False;False;False;False;False;True;False;255;False;-1;255;False;-1;255;False;-1;7;False;-1;1;False;-1;1;False;-1;1;False;-1;7;False;-1;1;False;-1;1;False;-1;1;False;-1;False;True;1;False;-1;True;3;False;-1;True;True;0;False;-1;0;False;-1;True;0;False;False;0;Hidden/InternalErrorShader;0;0;Standard;0;False;0
  1689. Node;AmplifyShaderEditor.TemplateMultiPassMasterNode;3;0,0;Float;False;False;-1;2;UnityEditor.ShaderGraphUnlitGUI;0;1;New Amplify Shader;2992e84f91cbeb14eab234972e07ea9d;True;DepthOnly;0;3;DepthOnly;0;False;False;False;False;False;False;False;False;False;False;False;False;True;0;False;-1;False;True;0;False;-1;False;False;False;False;False;False;False;False;False;True;False;255;False;-1;255;False;-1;255;False;-1;7;False;-1;1;False;-1;1;False;-1;1;False;-1;7;False;-1;1;False;-1;1;False;-1;1;False;-1;False;False;False;False;True;3;RenderPipeline=UniversalPipeline;RenderType=Opaque=RenderType;Queue=Geometry=Queue=0;True;2;True;17;d3d9;d3d11;glcore;gles;gles3;metal;vulkan;xbox360;xboxone;xboxseries;ps4;playstation;psp2;n3ds;wiiu;switch;nomrt;0;False;False;False;False;False;False;False;False;False;False;False;False;True;0;False;-1;False;False;False;True;False;False;False;False;0;False;-1;False;False;False;False;False;False;False;False;False;True;1;False;-1;False;False;True;1;LightMode=DepthOnly;False;False;0;Hidden/InternalErrorShader;0;0;Standard;0;False;0
  1690. Node;AmplifyShaderEditor.TemplateMultiPassMasterNode;1;398.8127,118.6854;Float;False;True;-1;2;UnityEditor.ShaderGraphUnlitGUI;0;3;LT/AddMoveTurbDissolveYmask;2992e84f91cbeb14eab234972e07ea9d;True;Forward;0;1;Forward;8;False;False;False;False;False;False;False;False;False;False;False;False;True;0;False;-1;False;True;2;False;-1;False;False;False;False;False;False;False;False;False;True;False;255;False;-1;255;False;-1;255;False;-1;7;False;-1;1;False;-1;1;False;-1;1;False;-1;7;False;-1;1;False;-1;1;False;-1;1;False;-1;False;False;False;False;True;3;RenderPipeline=UniversalPipeline;RenderType=Transparent=RenderType;Queue=Transparent=Queue=0;True;2;True;8;d3d9;d3d11;glcore;gles;gles3;metal;vulkan;nomrt;0;True;True;1;1;False;-1;1;False;-1;4;1;False;-1;1;False;-1;False;False;False;False;False;False;False;False;False;False;False;False;False;False;True;True;True;True;True;0;False;-1;False;False;False;False;False;False;False;True;False;255;False;-1;255;False;-1;255;False;-1;7;False;-1;1;False;-1;1;False;-1;1;False;-1;7;False;-1;1;False;-1;1;False;-1;1;False;-1;False;True;2;False;-1;True;3;False;-1;True;True;0;False;-1;0;False;-1;True;1;LightMode=UniversalForwardOnly;False;False;0;Hidden/InternalErrorShader;0;0;Standard;22;Surface;1;637910504726801164; Blend;2;637916603008026574;Two Sided;0;637920019439021414;Cast Shadows;0;637910503133663964; Use Shadow Threshold;0;0;Receive Shadows;0;637910503141455090;GPU Instancing;1;0;LOD CrossFade;0;0;Built-in Fog;0;0;DOTS Instancing;0;0;Meta Pass;0;0;Extra Pre Pass;0;0;Tessellation;0;0; Phong;0;0; Strength;0.5,False,-1;0; Type;0;0; Tess;16,False,-1;0; Min;10,False,-1;0; Max;25,False,-1;0; Edge Length;16,False,-1;0; Max Displacement;25,False,-1;0;Vertex Position,InvertActionOnDeselection;1;0;0;10;False;True;False;True;False;True;True;True;True;True;False;;False;0
  1691. Node;AmplifyShaderEditor.TemplateMultiPassMasterNode;9;0,0;Float;False;False;-1;2;UnityEditor.ShaderGraphUnlitGUI;0;1;New Amplify Shader;2992e84f91cbeb14eab234972e07ea9d;True;DepthNormalsOnly;0;9;DepthNormalsOnly;0;False;False;False;False;False;False;False;False;False;False;False;False;True;0;False;-1;False;True;0;False;-1;False;False;False;False;False;False;False;False;False;True;False;255;False;-1;255;False;-1;255;False;-1;7;False;-1;1;False;-1;1;False;-1;1;False;-1;7;False;-1;1;False;-1;1;False;-1;1;False;-1;False;False;False;False;True;3;RenderPipeline=UniversalPipeline;RenderType=Opaque=RenderType;Queue=Geometry=Queue=0;True;2;True;17;d3d9;d3d11;glcore;gles;gles3;metal;vulkan;xbox360;xboxone;xboxseries;ps4;playstation;psp2;n3ds;wiiu;switch;nomrt;0;False;False;False;False;False;False;False;False;False;False;False;False;False;False;False;False;False;False;False;False;False;False;False;False;False;False;True;1;False;-1;True;3;False;-1;False;True;1;LightMode=DepthNormalsOnly;False;True;15;d3d9;d3d11_9x;d3d11;metal;vulkan;xbox360;xboxone;xboxseries;ps4;playstation;psp2;n3ds;wiiu;switch;nomrt;0;Hidden/InternalErrorShader;0;0;Standard;0;False;0
  1692. Node;AmplifyShaderEditor.TemplateMultiPassMasterNode;7;0,0;Float;False;False;-1;2;UnityEditor.ShaderGraphUnlitGUI;0;1;New Amplify Shader;2992e84f91cbeb14eab234972e07ea9d;True;ScenePickingPass;0;7;ScenePickingPass;0;False;False;False;False;False;False;False;False;False;False;False;False;True;0;False;-1;False;True;0;False;-1;False;False;False;False;False;False;False;False;False;True;False;255;False;-1;255;False;-1;255;False;-1;7;False;-1;1;False;-1;1;False;-1;1;False;-1;7;False;-1;1;False;-1;1;False;-1;1;False;-1;False;False;False;False;True;3;RenderPipeline=UniversalPipeline;RenderType=Opaque=RenderType;Queue=Geometry=Queue=0;True;2;True;17;d3d9;d3d11;glcore;gles;gles3;metal;vulkan;xbox360;xboxone;xboxseries;ps4;playstation;psp2;n3ds;wiiu;switch;nomrt;0;False;False;False;False;False;False;False;False;False;False;False;False;False;False;False;False;False;False;False;False;False;False;False;False;False;False;False;False;False;True;1;LightMode=Picking;False;True;4;d3d11;glcore;gles;gles3;0;Hidden/InternalErrorShader;0;0;Standard;0;False;0
  1693. Node;AmplifyShaderEditor.TemplateMultiPassMasterNode;6;0,0;Float;False;False;-1;2;UnityEditor.ShaderGraphUnlitGUI;0;1;New Amplify Shader;2992e84f91cbeb14eab234972e07ea9d;True;SceneSelectionPass;0;6;SceneSelectionPass;0;False;False;False;False;False;False;False;False;False;False;False;False;True;0;False;-1;False;True;0;False;-1;False;False;False;False;False;False;False;False;False;True;False;255;False;-1;255;False;-1;255;False;-1;7;False;-1;1;False;-1;1;False;-1;1;False;-1;7;False;-1;1;False;-1;1;False;-1;1;False;-1;False;False;False;False;True;3;RenderPipeline=UniversalPipeline;RenderType=Opaque=RenderType;Queue=Geometry=Queue=0;True;2;True;17;d3d9;d3d11;glcore;gles;gles3;metal;vulkan;xbox360;xboxone;xboxseries;ps4;playstation;psp2;n3ds;wiiu;switch;nomrt;0;False;False;False;False;False;False;False;False;False;False;False;False;False;False;True;2;False;-1;False;False;False;False;False;False;False;False;False;False;False;False;False;False;True;1;LightMode=SceneSelectionPass;False;True;4;d3d11;glcore;gles;gles3;0;Hidden/InternalErrorShader;0;0;Standard;0;False;0
  1694. WireConnection;68;0;30;0
  1695. WireConnection;68;1;67;0
  1696. WireConnection;53;0;38;0
  1697. WireConnection;53;2;61;0
  1698. WireConnection;31;0;29;0
  1699. WireConnection;31;2;68;0
  1700. WireConnection;15;0;11;1
  1701. WireConnection;15;1;16;0
  1702. WireConnection;41;0;44;0
  1703. WireConnection;41;1;42;0
  1704. WireConnection;61;0;52;0
  1705. WireConnection;61;1;62;0
  1706. WireConnection;64;0;20;0
  1707. WireConnection;64;1;63;0
  1708. WireConnection;19;0;18;0
  1709. WireConnection;19;2;64;0
  1710. WireConnection;74;0;73;0
  1711. WireConnection;74;1;72;0
  1712. WireConnection;73;0;71;2
  1713. WireConnection;73;1;70;0
  1714. WireConnection;66;0;13;0
  1715. WireConnection;66;1;65;0
  1716. WireConnection;23;0;58;0
  1717. WireConnection;23;1;26;0
  1718. WireConnection;23;2;27;0
  1719. WireConnection;23;3;37;1
  1720. WireConnection;23;4;25;0
  1721. WireConnection;23;5;33;0
  1722. WireConnection;23;6;75;0
  1723. WireConnection;23;7;76;0
  1724. WireConnection;10;1;17;0
  1725. WireConnection;43;0;40;0
  1726. WireConnection;58;0;10;0
  1727. WireConnection;58;1;10;4
  1728. WireConnection;58;2;59;0
  1729. WireConnection;50;0;32;0
  1730. WireConnection;50;1;48;1
  1731. WireConnection;50;2;49;0
  1732. WireConnection;11;1;12;0
  1733. WireConnection;46;0;19;0
  1734. WireConnection;46;1;41;0
  1735. WireConnection;46;2;43;0
  1736. WireConnection;33;0;28;1
  1737. WireConnection;33;1;69;0
  1738. WireConnection;33;2;35;0
  1739. WireConnection;49;0;51;0
  1740. WireConnection;44;0;45;3
  1741. WireConnection;44;1;45;4
  1742. WireConnection;59;0;60;0
  1743. WireConnection;28;1;31;0
  1744. WireConnection;37;1;53;0
  1745. WireConnection;35;0;50;0
  1746. WireConnection;35;1;34;0
  1747. WireConnection;75;0;74;0
  1748. WireConnection;12;0;14;0
  1749. WireConnection;12;2;66;0
  1750. WireConnection;17;0;15;0
  1751. WireConnection;17;1;46;0
  1752. WireConnection;69;0;32;0
  1753. WireConnection;69;1;48;1
  1754. WireConnection;69;2;51;0
  1755. WireConnection;1;2;23;0
  1756. ASEEND*/
  1757. //CHKSM=A9E8C755C5E729711833664EC1340088883547CF