AddMoveTurbDissolve.shader 82 KB

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