AlphaMoveTurbDissolveYmask.shader 97 KB

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