AlphaMoveTurbDissolve2.shader 83 KB

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