UIAlpha.shader 99 KB

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