AlphaMoveTurbDissolveRamp.shader 100 KB

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