SH_Unlit_Flipbook_URP.shader 109 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414141514161417141814191420142114221423142414251426142714281429143014311432143314341435143614371438143914401441144214431444144514461447144814491450145114521453145414551456145714581459146014611462146314641465146614671468146914701471147214731474147514761477147814791480148114821483148414851486148714881489149014911492149314941495149614971498149915001501150215031504150515061507150815091510151115121513151415151516151715181519152015211522152315241525152615271528152915301531153215331534153515361537153815391540154115421543154415451546154715481549155015511552155315541555155615571558155915601561156215631564156515661567156815691570157115721573157415751576157715781579158015811582158315841585158615871588158915901591159215931594159515961597159815991600160116021603160416051606160716081609161016111612161316141615161616171618161916201621162216231624162516261627162816291630163116321633163416351636163716381639164016411642164316441645164616471648164916501651165216531654165516561657165816591660166116621663166416651666166716681669167016711672167316741675167616771678167916801681168216831684168516861687168816891690169116921693169416951696169716981699170017011702170317041705170617071708170917101711171217131714171517161717171817191720172117221723172417251726172717281729173017311732173317341735173617371738173917401741174217431744174517461747174817491750175117521753175417551756175717581759176017611762176317641765176617671768176917701771177217731774177517761777177817791780178117821783178417851786178717881789179017911792179317941795179617971798179918001801180218031804180518061807180818091810181118121813181418151816181718181819182018211822182318241825182618271828182918301831183218331834183518361837183818391840184118421843184418451846184718481849185018511852185318541855185618571858185918601861186218631864186518661867186818691870187118721873187418751876187718781879188018811882188318841885188618871888188918901891189218931894189518961897189818991900190119021903190419051906190719081909191019111912191319141915191619171918191919201921192219231924192519261927192819291930193119321933193419351936193719381939194019411942194319441945194619471948194919501951195219531954195519561957195819591960196119621963196419651966196719681969197019711972197319741975197619771978197919801981198219831984198519861987198819891990199119921993199419951996199719981999200020012002200320042005200620072008200920102011201220132014201520162017201820192020202120222023202420252026202720282029203020312032203320342035203620372038203920402041204220432044204520462047204820492050205120522053205420552056205720582059206020612062206320642065206620672068206920702071207220732074207520762077207820792080208120822083208420852086208720882089209020912092209320942095209620972098209921002101210221032104210521062107210821092110211121122113211421152116211721182119212021212122212321242125212621272128212921302131213221332134213521362137213821392140214121422143214421452146214721482149215021512152215321542155215621572158215921602161216221632164216521662167216821692170217121722173217421752176217721782179218021812182218321842185218621872188218921902191219221932194219521962197219821992200220122022203220422052206220722082209221022112212221322142215221622172218221922202221222222232224222522262227222822292230223122322233223422352236223722382239224022412242224322442245224622472248224922502251225222532254225522562257225822592260226122622263226422652266226722682269227022712272227322742275227622772278227922802281228222832284228522862287228822892290229122922293229422952296229722982299230023012302230323042305230623072308230923102311231223132314231523162317231823192320232123222323232423252326232723282329233023312332233323342335233623372338233923402341234223432344234523462347234823492350235123522353235423552356235723582359236023612362236323642365236623672368236923702371237223732374237523762377237823792380238123822383238423852386238723882389239023912392239323942395239623972398239924002401240224032404240524062407240824092410241124122413241424152416241724182419242024212422242324242425242624272428242924302431243224332434243524362437243824392440244124422443244424452446244724482449245024512452245324542455245624572458245924602461246224632464246524662467246824692470247124722473247424752476247724782479248024812482248324842485248624872488248924902491249224932494249524962497249824992500250125022503250425052506250725082509251025112512251325142515251625172518251925202521252225232524252525262527252825292530253125322533253425352536253725382539254025412542254325442545254625472548254925502551255225532554255525562557255825592560256125622563256425652566256725682569257025712572257325742575257625772578257925802581
  1. // Made with Amplify Shader Editor
  2. // Available at the Unity Asset Store - http://u3d.as/y3X
  3. Shader "Vefects/SH_Unlit_Flipbook_URP"
  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][Space(13)][Header(Main Texture)][Space(13)]_MainTexture("Main Texture", 2D) = "white" {}
  10. _UVS("UV S", Vector) = (1,1,0,0)
  11. _UVP("UV P", Vector) = (0,0,0,0)
  12. [HDR]_R("R", Color) = (1,0.9719134,0.5896226,0)
  13. [HDR]_G("G", Color) = (1,0.7230805,0.25,0)
  14. [HDR]_B("B", Color) = (0.5943396,0.259371,0.09812209,0)
  15. [HDR]_Outline("Outline", Color) = (0.2169811,0.03320287,0.02354041,0)
  16. [Space(13)][Header(DisolveMapping)][Space(13)]_disolveMap("disolveMap", 2D) = "white" {}
  17. [Header(TextureProps)][Space(13)]_Intensity("Intensity", Range( 0 , 5)) = 1
  18. _ErosionSmoothness("Erosion Smoothness", Range( 0.1 , 15)) = 0.1
  19. _FlatColor("Flat Color", Range( 0 , 1)) = 0
  20. _UVDS1("UV D S", Vector) = (1,1,0,0)
  21. [Space(13)][Header(Distortion)][Space(13)]_DistortionTexture("Distortion Texture", 2D) = "white" {}
  22. _UVDP1("UV D P", Vector) = (0.1,-0.2,0,0)
  23. _DistortionLerp("Distortion Lerp", Range( 0 , 0.1)) = 0
  24. [Header(SecondDistortion)][Space(13)]_DistortionSecond("DistortionSecond", 2D) = "white" {}
  25. _SecondDistortionLerp("SecondDistortionLerp", Range( 0.5 , 1)) = 0.5
  26. _UVDS("UV D S", Vector) = (1,1,0,0)
  27. _UVDP("UV D P", Vector) = (0.1,-0.2,0,0)
  28. [Space(13)][Header(AR)][Space(13)]_Cull("Cull", Float) = 2
  29. _ZWrite("ZWrite", Float) = 0
  30. _ZTest("ZTest", Float) = 2
  31. _Src("Src", Float) = 5
  32. [ASEEnd]_Dst("Dst", Float) = 10
  33. [HideInInspector] _texcoord( "", 2D ) = "white" {}
  34. [HideInInspector]_QueueOffset("_QueueOffset", Float) = 0
  35. [HideInInspector]_QueueControl("_QueueControl", Float) = -1
  36. [HideInInspector][NoScaleOffset]unity_Lightmaps("unity_Lightmaps", 2DArray) = "" {}
  37. [HideInInspector][NoScaleOffset]unity_LightmapsInd("unity_LightmapsInd", 2DArray) = "" {}
  38. [HideInInspector][NoScaleOffset]unity_ShadowMasks("unity_ShadowMasks", 2DArray) = "" {}
  39. //_TessPhongStrength( "Tess Phong Strength", Range( 0, 1 ) ) = 0.5
  40. //_TessValue( "Tess Max Tessellation", Range( 1, 32 ) ) = 16
  41. //_TessMin( "Tess Min Distance", Float ) = 10
  42. //_TessMax( "Tess Max Distance", Float ) = 25
  43. //_TessEdgeLength ( "Tess Edge length", Range( 2, 50 ) ) = 16
  44. //_TessMaxDisp( "Tess Max Displacement", Float ) = 25
  45. }
  46. SubShader
  47. {
  48. LOD 0
  49. Tags { "RenderPipeline"="UniversalPipeline" "RenderType"="Transparent" "Queue"="Transparent" }
  50. Cull [_Cull]
  51. AlphaToMask Off
  52. HLSLINCLUDE
  53. #pragma target 3.0
  54. #pragma prefer_hlslcc gles
  55. #pragma exclude_renderers d3d11_9x
  56. #ifndef ASE_TESS_FUNCS
  57. #define ASE_TESS_FUNCS
  58. float4 FixedTess( float tessValue )
  59. {
  60. return tessValue;
  61. }
  62. float CalcDistanceTessFactor (float4 vertex, float minDist, float maxDist, float tess, float4x4 o2w, float3 cameraPos )
  63. {
  64. float3 wpos = mul(o2w,vertex).xyz;
  65. float dist = distance (wpos, cameraPos);
  66. float f = clamp(1.0 - (dist - minDist) / (maxDist - minDist), 0.01, 1.0) * tess;
  67. return f;
  68. }
  69. float4 CalcTriEdgeTessFactors (float3 triVertexFactors)
  70. {
  71. float4 tess;
  72. tess.x = 0.5 * (triVertexFactors.y + triVertexFactors.z);
  73. tess.y = 0.5 * (triVertexFactors.x + triVertexFactors.z);
  74. tess.z = 0.5 * (triVertexFactors.x + triVertexFactors.y);
  75. tess.w = (triVertexFactors.x + triVertexFactors.y + triVertexFactors.z) / 3.0f;
  76. return tess;
  77. }
  78. float CalcEdgeTessFactor (float3 wpos0, float3 wpos1, float edgeLen, float3 cameraPos, float4 scParams )
  79. {
  80. float dist = distance (0.5 * (wpos0+wpos1), cameraPos);
  81. float len = distance(wpos0, wpos1);
  82. float f = max(len * scParams.y / (edgeLen * dist), 1.0);
  83. return f;
  84. }
  85. float DistanceFromPlane (float3 pos, float4 plane)
  86. {
  87. float d = dot (float4(pos,1.0f), plane);
  88. return d;
  89. }
  90. bool WorldViewFrustumCull (float3 wpos0, float3 wpos1, float3 wpos2, float cullEps, float4 planes[6] )
  91. {
  92. float4 planeTest;
  93. planeTest.x = (( DistanceFromPlane(wpos0, planes[0]) > -cullEps) ? 1.0f : 0.0f ) +
  94. (( DistanceFromPlane(wpos1, planes[0]) > -cullEps) ? 1.0f : 0.0f ) +
  95. (( DistanceFromPlane(wpos2, planes[0]) > -cullEps) ? 1.0f : 0.0f );
  96. planeTest.y = (( DistanceFromPlane(wpos0, planes[1]) > -cullEps) ? 1.0f : 0.0f ) +
  97. (( DistanceFromPlane(wpos1, planes[1]) > -cullEps) ? 1.0f : 0.0f ) +
  98. (( DistanceFromPlane(wpos2, planes[1]) > -cullEps) ? 1.0f : 0.0f );
  99. planeTest.z = (( DistanceFromPlane(wpos0, planes[2]) > -cullEps) ? 1.0f : 0.0f ) +
  100. (( DistanceFromPlane(wpos1, planes[2]) > -cullEps) ? 1.0f : 0.0f ) +
  101. (( DistanceFromPlane(wpos2, planes[2]) > -cullEps) ? 1.0f : 0.0f );
  102. planeTest.w = (( DistanceFromPlane(wpos0, planes[3]) > -cullEps) ? 1.0f : 0.0f ) +
  103. (( DistanceFromPlane(wpos1, planes[3]) > -cullEps) ? 1.0f : 0.0f ) +
  104. (( DistanceFromPlane(wpos2, planes[3]) > -cullEps) ? 1.0f : 0.0f );
  105. return !all (planeTest);
  106. }
  107. float4 DistanceBasedTess( float4 v0, float4 v1, float4 v2, float tess, float minDist, float maxDist, float4x4 o2w, float3 cameraPos )
  108. {
  109. float3 f;
  110. f.x = CalcDistanceTessFactor (v0,minDist,maxDist,tess,o2w,cameraPos);
  111. f.y = CalcDistanceTessFactor (v1,minDist,maxDist,tess,o2w,cameraPos);
  112. f.z = CalcDistanceTessFactor (v2,minDist,maxDist,tess,o2w,cameraPos);
  113. return CalcTriEdgeTessFactors (f);
  114. }
  115. float4 EdgeLengthBasedTess( float4 v0, float4 v1, float4 v2, float edgeLength, float4x4 o2w, float3 cameraPos, float4 scParams )
  116. {
  117. float3 pos0 = mul(o2w,v0).xyz;
  118. float3 pos1 = mul(o2w,v1).xyz;
  119. float3 pos2 = mul(o2w,v2).xyz;
  120. float4 tess;
  121. tess.x = CalcEdgeTessFactor (pos1, pos2, edgeLength, cameraPos, scParams);
  122. tess.y = CalcEdgeTessFactor (pos2, pos0, edgeLength, cameraPos, scParams);
  123. tess.z = CalcEdgeTessFactor (pos0, pos1, edgeLength, cameraPos, scParams);
  124. tess.w = (tess.x + tess.y + tess.z) / 3.0f;
  125. return tess;
  126. }
  127. float4 EdgeLengthBasedTessCull( float4 v0, float4 v1, float4 v2, float edgeLength, float maxDisplacement, float4x4 o2w, float3 cameraPos, float4 scParams, float4 planes[6] )
  128. {
  129. float3 pos0 = mul(o2w,v0).xyz;
  130. float3 pos1 = mul(o2w,v1).xyz;
  131. float3 pos2 = mul(o2w,v2).xyz;
  132. float4 tess;
  133. if (WorldViewFrustumCull(pos0, pos1, pos2, maxDisplacement, planes))
  134. {
  135. tess = 0.0f;
  136. }
  137. else
  138. {
  139. tess.x = CalcEdgeTessFactor (pos1, pos2, edgeLength, cameraPos, scParams);
  140. tess.y = CalcEdgeTessFactor (pos2, pos0, edgeLength, cameraPos, scParams);
  141. tess.z = CalcEdgeTessFactor (pos0, pos1, edgeLength, cameraPos, scParams);
  142. tess.w = (tess.x + tess.y + tess.z) / 3.0f;
  143. }
  144. return tess;
  145. }
  146. #endif //ASE_TESS_FUNCS
  147. ENDHLSL
  148. Pass
  149. {
  150. Name "Forward"
  151. Tags { "LightMode"="UniversalForwardOnly" }
  152. Blend [_Src] [_Dst], One OneMinusSrcAlpha
  153. ZWrite [_ZWrite]
  154. ZTest [_ZTest]
  155. Offset 0 , 0
  156. ColorMask RGBA
  157. HLSLPROGRAM
  158. #pragma multi_compile_instancing
  159. #define ASE_SRP_VERSION 999999
  160. #pragma multi_compile _ LIGHTMAP_ON
  161. #pragma multi_compile _ DIRLIGHTMAP_COMBINED
  162. #pragma shader_feature _ _SAMPLE_GI
  163. #pragma multi_compile _ _DBUFFER_MRT1 _DBUFFER_MRT2 _DBUFFER_MRT3
  164. #pragma multi_compile _ DEBUG_DISPLAY
  165. #define SHADERPASS SHADERPASS_UNLIT
  166. #pragma vertex vert
  167. #pragma fragment frag
  168. #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/Color.hlsl"
  169. #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/Texture.hlsl"
  170. #include "Packages/com.unity.render-pipelines.universal/ShaderLibrary/Core.hlsl"
  171. #include "Packages/com.unity.render-pipelines.universal/ShaderLibrary/Lighting.hlsl"
  172. #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/TextureStack.hlsl"
  173. #include "Packages/com.unity.render-pipelines.universal/ShaderLibrary/ShaderGraphFunctions.hlsl"
  174. #include "Packages/com.unity.render-pipelines.universal/ShaderLibrary/DBuffer.hlsl"
  175. #include "Packages/com.unity.render-pipelines.universal/Editor/ShaderGraph/Includes/ShaderPass.hlsl"
  176. #include "Packages/com.unity.render-pipelines.universal/ShaderLibrary/Debug/Debugging3D.hlsl"
  177. #include "Packages/com.unity.render-pipelines.universal/ShaderLibrary/Input.hlsl"
  178. #include "Packages/com.unity.render-pipelines.universal/ShaderLibrary/SurfaceData.hlsl"
  179. #define ASE_NEEDS_FRAG_COLOR
  180. struct VertexInput
  181. {
  182. float4 vertex : POSITION;
  183. float3 ase_normal : NORMAL;
  184. float4 ase_color : COLOR;
  185. float4 ase_texcoord : TEXCOORD0;
  186. UNITY_VERTEX_INPUT_INSTANCE_ID
  187. };
  188. struct VertexOutput
  189. {
  190. float4 clipPos : SV_POSITION;
  191. #if defined(ASE_NEEDS_FRAG_WORLD_POSITION)
  192. float3 worldPos : TEXCOORD0;
  193. #endif
  194. #if defined(REQUIRES_VERTEX_SHADOW_COORD_INTERPOLATOR) && defined(ASE_NEEDS_FRAG_SHADOWCOORDS)
  195. float4 shadowCoord : TEXCOORD1;
  196. #endif
  197. #ifdef ASE_FOG
  198. float fogFactor : TEXCOORD2;
  199. #endif
  200. float4 ase_color : COLOR;
  201. float4 ase_texcoord3 : TEXCOORD3;
  202. UNITY_VERTEX_INPUT_INSTANCE_ID
  203. UNITY_VERTEX_OUTPUT_STEREO
  204. };
  205. CBUFFER_START(UnityPerMaterial)
  206. float4 _disolveMap_ST;
  207. float4 _R;
  208. float4 _G;
  209. float4 _Outline;
  210. float4 _B;
  211. float2 _UVDS1;
  212. float2 _UVDP1;
  213. float2 _UVDP;
  214. float2 _UVDS;
  215. float2 _UVP;
  216. float2 _UVS;
  217. float _ErosionSmoothness;
  218. float _DistortionLerp;
  219. float _Dst;
  220. float _Src;
  221. float _FlatColor;
  222. float _Intensity;
  223. float _Cull;
  224. float _ZTest;
  225. float _SecondDistortionLerp;
  226. float _ZWrite;
  227. #ifdef TESSELLATION_ON
  228. float _TessPhongStrength;
  229. float _TessValue;
  230. float _TessMin;
  231. float _TessMax;
  232. float _TessEdgeLength;
  233. float _TessMaxDisp;
  234. #endif
  235. CBUFFER_END
  236. sampler2D _MainTexture;
  237. sampler2D _DistortionTexture;
  238. sampler2D _DistortionSecond;
  239. sampler2D _disolveMap;
  240. VertexOutput VertexFunction ( VertexInput v )
  241. {
  242. VertexOutput o = (VertexOutput)0;
  243. UNITY_SETUP_INSTANCE_ID(v);
  244. UNITY_TRANSFER_INSTANCE_ID(v, o);
  245. UNITY_INITIALIZE_VERTEX_OUTPUT_STEREO(o);
  246. o.ase_color = v.ase_color;
  247. o.ase_texcoord3 = v.ase_texcoord;
  248. #ifdef ASE_ABSOLUTE_VERTEX_POS
  249. float3 defaultVertexValue = v.vertex.xyz;
  250. #else
  251. float3 defaultVertexValue = float3(0, 0, 0);
  252. #endif
  253. float3 vertexValue = defaultVertexValue;
  254. #ifdef ASE_ABSOLUTE_VERTEX_POS
  255. v.vertex.xyz = vertexValue;
  256. #else
  257. v.vertex.xyz += vertexValue;
  258. #endif
  259. v.ase_normal = v.ase_normal;
  260. float3 positionWS = TransformObjectToWorld( v.vertex.xyz );
  261. float4 positionCS = TransformWorldToHClip( positionWS );
  262. #if defined(ASE_NEEDS_FRAG_WORLD_POSITION)
  263. o.worldPos = positionWS;
  264. #endif
  265. #if defined(REQUIRES_VERTEX_SHADOW_COORD_INTERPOLATOR) && defined(ASE_NEEDS_FRAG_SHADOWCOORDS)
  266. VertexPositionInputs vertexInput = (VertexPositionInputs)0;
  267. vertexInput.positionWS = positionWS;
  268. vertexInput.positionCS = positionCS;
  269. o.shadowCoord = GetShadowCoord( vertexInput );
  270. #endif
  271. #ifdef ASE_FOG
  272. o.fogFactor = ComputeFogFactor( positionCS.z );
  273. #endif
  274. o.clipPos = positionCS;
  275. return o;
  276. }
  277. #if defined(TESSELLATION_ON)
  278. struct VertexControl
  279. {
  280. float4 vertex : INTERNALTESSPOS;
  281. float3 ase_normal : NORMAL;
  282. float4 ase_color : COLOR;
  283. float4 ase_texcoord : TEXCOORD0;
  284. UNITY_VERTEX_INPUT_INSTANCE_ID
  285. };
  286. struct TessellationFactors
  287. {
  288. float edge[3] : SV_TessFactor;
  289. float inside : SV_InsideTessFactor;
  290. };
  291. VertexControl vert ( VertexInput v )
  292. {
  293. VertexControl o;
  294. UNITY_SETUP_INSTANCE_ID(v);
  295. UNITY_TRANSFER_INSTANCE_ID(v, o);
  296. o.vertex = v.vertex;
  297. o.ase_normal = v.ase_normal;
  298. o.ase_color = v.ase_color;
  299. o.ase_texcoord = v.ase_texcoord;
  300. return o;
  301. }
  302. TessellationFactors TessellationFunction (InputPatch<VertexControl,3> v)
  303. {
  304. TessellationFactors o;
  305. float4 tf = 1;
  306. float tessValue = _TessValue; float tessMin = _TessMin; float tessMax = _TessMax;
  307. float edgeLength = _TessEdgeLength; float tessMaxDisp = _TessMaxDisp;
  308. #if defined(ASE_FIXED_TESSELLATION)
  309. tf = FixedTess( tessValue );
  310. #elif defined(ASE_DISTANCE_TESSELLATION)
  311. tf = DistanceBasedTess(v[0].vertex, v[1].vertex, v[2].vertex, tessValue, tessMin, tessMax, GetObjectToWorldMatrix(), _WorldSpaceCameraPos );
  312. #elif defined(ASE_LENGTH_TESSELLATION)
  313. tf = EdgeLengthBasedTess(v[0].vertex, v[1].vertex, v[2].vertex, edgeLength, GetObjectToWorldMatrix(), _WorldSpaceCameraPos, _ScreenParams );
  314. #elif defined(ASE_LENGTH_CULL_TESSELLATION)
  315. tf = EdgeLengthBasedTessCull(v[0].vertex, v[1].vertex, v[2].vertex, edgeLength, tessMaxDisp, GetObjectToWorldMatrix(), _WorldSpaceCameraPos, _ScreenParams, unity_CameraWorldClipPlanes );
  316. #endif
  317. o.edge[0] = tf.x; o.edge[1] = tf.y; o.edge[2] = tf.z; o.inside = tf.w;
  318. return o;
  319. }
  320. [domain("tri")]
  321. [partitioning("fractional_odd")]
  322. [outputtopology("triangle_cw")]
  323. [patchconstantfunc("TessellationFunction")]
  324. [outputcontrolpoints(3)]
  325. VertexControl HullFunction(InputPatch<VertexControl, 3> patch, uint id : SV_OutputControlPointID)
  326. {
  327. return patch[id];
  328. }
  329. [domain("tri")]
  330. VertexOutput DomainFunction(TessellationFactors factors, OutputPatch<VertexControl, 3> patch, float3 bary : SV_DomainLocation)
  331. {
  332. VertexInput o = (VertexInput) 0;
  333. o.vertex = patch[0].vertex * bary.x + patch[1].vertex * bary.y + patch[2].vertex * bary.z;
  334. o.ase_normal = patch[0].ase_normal * bary.x + patch[1].ase_normal * bary.y + patch[2].ase_normal * bary.z;
  335. o.ase_color = patch[0].ase_color * bary.x + patch[1].ase_color * bary.y + patch[2].ase_color * bary.z;
  336. o.ase_texcoord = patch[0].ase_texcoord * bary.x + patch[1].ase_texcoord * bary.y + patch[2].ase_texcoord * bary.z;
  337. #if defined(ASE_PHONG_TESSELLATION)
  338. float3 pp[3];
  339. for (int i = 0; i < 3; ++i)
  340. 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));
  341. float phongStrength = _TessPhongStrength;
  342. o.vertex.xyz = phongStrength * (pp[0]*bary.x + pp[1]*bary.y + pp[2]*bary.z) + (1.0f-phongStrength) * o.vertex.xyz;
  343. #endif
  344. UNITY_TRANSFER_INSTANCE_ID(patch[0], o);
  345. return VertexFunction(o);
  346. }
  347. #else
  348. VertexOutput vert ( VertexInput v )
  349. {
  350. return VertexFunction( v );
  351. }
  352. #endif
  353. half4 frag ( VertexOutput IN ) : SV_Target
  354. {
  355. UNITY_SETUP_INSTANCE_ID( IN );
  356. UNITY_SETUP_STEREO_EYE_INDEX_POST_VERTEX( IN );
  357. #if defined(ASE_NEEDS_FRAG_WORLD_POSITION)
  358. float3 WorldPosition = IN.worldPos;
  359. #endif
  360. float4 ShadowCoords = float4( 0, 0, 0, 0 );
  361. #if defined(ASE_NEEDS_FRAG_SHADOWCOORDS)
  362. #if defined(REQUIRES_VERTEX_SHADOW_COORD_INTERPOLATOR)
  363. ShadowCoords = IN.shadowCoord;
  364. #elif defined(MAIN_LIGHT_CALCULATE_SHADOWS)
  365. ShadowCoords = TransformWorldToShadowCoord( WorldPosition );
  366. #endif
  367. #endif
  368. float2 texCoord13 = IN.ase_texcoord3.xy * float2( 1,1 ) + float2( 0,0 );
  369. float2 panner22 = ( 1.0 * _Time.y * _UVP + ( texCoord13 * _UVS ));
  370. float2 texCoord6 = IN.ase_texcoord3.xy * float2( 1,1 ) + float2( 0,0 );
  371. float2 panner10 = ( 1.0 * _Time.y * _UVDP + ( texCoord6 * _UVDS ));
  372. float2 lerpResult21 = lerp( float2( 0,0 ) , ( ( (tex2D( _DistortionTexture, panner10 )).rg + -0.5 ) * 2.0 ) , _DistortionLerp);
  373. float2 DistortionRegister29 = ( panner22 + lerpResult21 );
  374. float4 tex2DNode41 = tex2D( _MainTexture, DistortionRegister29 );
  375. float4 lerpResult49 = lerp( _Outline , _B , tex2DNode41.b);
  376. float4 lerpResult57 = lerp( lerpResult49 , _G , tex2DNode41.g);
  377. float4 lerpResult63 = lerp( lerpResult57 , _R , tex2DNode41.r);
  378. float4 lerpResult76 = lerp( ( IN.ase_color * lerpResult63 ) , IN.ase_color , _FlatColor);
  379. float2 texCoord45 = IN.ase_texcoord3.xy * float2( 1,1 ) + float2( 0,0 );
  380. float2 panner55 = ( 1.0 * _Time.y * _UVDP1 + ( texCoord45 * _UVDS1 ));
  381. float4 SecondDistortion75 = ( tex2D( _DistortionSecond, panner55 ) + _SecondDistortionLerp );
  382. float mainTex_alpha46 = tex2DNode41.a;
  383. float smoothstepResult65 = smoothstep( IN.ase_texcoord3.z , ( IN.ase_texcoord3.z + _ErosionSmoothness ) , mainTex_alpha46);
  384. float mainTex_VC_alha61 = IN.ase_color.a;
  385. float Opacity_VTC_W31 = IN.ase_texcoord3.z;
  386. float Opacity_VTC_T25 = IN.ase_texcoord3.w;
  387. float temp_output_43_0 = (( Opacity_VTC_T25 - 1.0 ) + (Opacity_VTC_W31 - 0.0) * (1.0 - ( Opacity_VTC_T25 - 1.0 )) / (1.0 - 0.0));
  388. float2 uv_disolveMap = IN.ase_texcoord3.xy * _disolveMap_ST.xy + _disolveMap_ST.zw;
  389. float smoothstepResult59 = smoothstep( temp_output_43_0 , ( temp_output_43_0 + Opacity_VTC_T25 ) , tex2D( _disolveMap, uv_disolveMap ).r);
  390. float disolveMapping64 = smoothstepResult59;
  391. float OpacityRegister79 = ( ( smoothstepResult65 * mainTex_VC_alha61 ) * disolveMapping64 );
  392. float3 BakedAlbedo = 0;
  393. float3 BakedEmission = 0;
  394. float3 Color = ( ( lerpResult76 * _Intensity ) * SecondDistortion75 ).rgb;
  395. float Alpha = OpacityRegister79;
  396. float AlphaClipThreshold = 0.5;
  397. float AlphaClipThresholdShadow = 0.5;
  398. #ifdef _ALPHATEST_ON
  399. clip( Alpha - AlphaClipThreshold );
  400. #endif
  401. #if defined(_DBUFFER)
  402. ApplyDecalToBaseColor(IN.clipPos, Color);
  403. #endif
  404. #if defined(_ALPHAPREMULTIPLY_ON)
  405. Color *= Alpha;
  406. #endif
  407. #ifdef LOD_FADE_CROSSFADE
  408. LODDitheringTransition( IN.clipPos.xyz, unity_LODFade.x );
  409. #endif
  410. #ifdef ASE_FOG
  411. Color = MixFog( Color, IN.fogFactor );
  412. #endif
  413. return half4( Color, Alpha );
  414. }
  415. ENDHLSL
  416. }
  417. Pass
  418. {
  419. Name "ShadowCaster"
  420. Tags { "LightMode"="ShadowCaster" }
  421. ZWrite On
  422. ZTest LEqual
  423. AlphaToMask Off
  424. ColorMask 0
  425. HLSLPROGRAM
  426. #pragma multi_compile_instancing
  427. #define ASE_SRP_VERSION 999999
  428. #pragma vertex vert
  429. #pragma fragment frag
  430. #pragma multi_compile _ _CASTING_PUNCTUAL_LIGHT_SHADOW
  431. #define SHADERPASS SHADERPASS_SHADOWCASTER
  432. #include "Packages/com.unity.render-pipelines.universal/ShaderLibrary/Core.hlsl"
  433. #include "Packages/com.unity.render-pipelines.universal/ShaderLibrary/Lighting.hlsl"
  434. #include "Packages/com.unity.render-pipelines.universal/ShaderLibrary/ShaderGraphFunctions.hlsl"
  435. #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/Color.hlsl"
  436. struct VertexInput
  437. {
  438. float4 vertex : POSITION;
  439. float3 ase_normal : NORMAL;
  440. float4 ase_texcoord : TEXCOORD0;
  441. float4 ase_color : COLOR;
  442. UNITY_VERTEX_INPUT_INSTANCE_ID
  443. };
  444. struct VertexOutput
  445. {
  446. float4 clipPos : SV_POSITION;
  447. #if defined(ASE_NEEDS_FRAG_WORLD_POSITION)
  448. float3 worldPos : TEXCOORD0;
  449. #endif
  450. #if defined(REQUIRES_VERTEX_SHADOW_COORD_INTERPOLATOR) && defined(ASE_NEEDS_FRAG_SHADOWCOORDS)
  451. float4 shadowCoord : TEXCOORD1;
  452. #endif
  453. float4 ase_texcoord2 : TEXCOORD2;
  454. float4 ase_color : COLOR;
  455. UNITY_VERTEX_INPUT_INSTANCE_ID
  456. UNITY_VERTEX_OUTPUT_STEREO
  457. };
  458. CBUFFER_START(UnityPerMaterial)
  459. float4 _disolveMap_ST;
  460. float4 _R;
  461. float4 _G;
  462. float4 _Outline;
  463. float4 _B;
  464. float2 _UVDS1;
  465. float2 _UVDP1;
  466. float2 _UVDP;
  467. float2 _UVDS;
  468. float2 _UVP;
  469. float2 _UVS;
  470. float _ErosionSmoothness;
  471. float _DistortionLerp;
  472. float _Dst;
  473. float _Src;
  474. float _FlatColor;
  475. float _Intensity;
  476. float _Cull;
  477. float _ZTest;
  478. float _SecondDistortionLerp;
  479. float _ZWrite;
  480. #ifdef TESSELLATION_ON
  481. float _TessPhongStrength;
  482. float _TessValue;
  483. float _TessMin;
  484. float _TessMax;
  485. float _TessEdgeLength;
  486. float _TessMaxDisp;
  487. #endif
  488. CBUFFER_END
  489. sampler2D _MainTexture;
  490. sampler2D _DistortionTexture;
  491. sampler2D _disolveMap;
  492. float3 _LightDirection;
  493. float3 _LightPosition;
  494. VertexOutput VertexFunction( VertexInput v )
  495. {
  496. VertexOutput o;
  497. UNITY_SETUP_INSTANCE_ID(v);
  498. UNITY_TRANSFER_INSTANCE_ID(v, o);
  499. UNITY_INITIALIZE_VERTEX_OUTPUT_STEREO( o );
  500. o.ase_texcoord2 = v.ase_texcoord;
  501. o.ase_color = v.ase_color;
  502. #ifdef ASE_ABSOLUTE_VERTEX_POS
  503. float3 defaultVertexValue = v.vertex.xyz;
  504. #else
  505. float3 defaultVertexValue = float3(0, 0, 0);
  506. #endif
  507. float3 vertexValue = defaultVertexValue;
  508. #ifdef ASE_ABSOLUTE_VERTEX_POS
  509. v.vertex.xyz = vertexValue;
  510. #else
  511. v.vertex.xyz += vertexValue;
  512. #endif
  513. v.ase_normal = v.ase_normal;
  514. float3 positionWS = TransformObjectToWorld( v.vertex.xyz );
  515. #if defined(ASE_NEEDS_FRAG_WORLD_POSITION)
  516. o.worldPos = positionWS;
  517. #endif
  518. float3 normalWS = TransformObjectToWorldDir( v.ase_normal );
  519. #if _CASTING_PUNCTUAL_LIGHT_SHADOW
  520. float3 lightDirectionWS = normalize(_LightPosition - positionWS);
  521. #else
  522. float3 lightDirectionWS = _LightDirection;
  523. #endif
  524. float4 clipPos = TransformWorldToHClip(ApplyShadowBias(positionWS, normalWS, lightDirectionWS));
  525. #if UNITY_REVERSED_Z
  526. clipPos.z = min(clipPos.z, UNITY_NEAR_CLIP_VALUE);
  527. #else
  528. clipPos.z = max(clipPos.z, UNITY_NEAR_CLIP_VALUE);
  529. #endif
  530. #if defined(REQUIRES_VERTEX_SHADOW_COORD_INTERPOLATOR) && defined(ASE_NEEDS_FRAG_SHADOWCOORDS)
  531. VertexPositionInputs vertexInput = (VertexPositionInputs)0;
  532. vertexInput.positionWS = positionWS;
  533. vertexInput.positionCS = clipPos;
  534. o.shadowCoord = GetShadowCoord( vertexInput );
  535. #endif
  536. o.clipPos = clipPos;
  537. return o;
  538. }
  539. #if defined(TESSELLATION_ON)
  540. struct VertexControl
  541. {
  542. float4 vertex : INTERNALTESSPOS;
  543. float3 ase_normal : NORMAL;
  544. float4 ase_texcoord : TEXCOORD0;
  545. float4 ase_color : COLOR;
  546. UNITY_VERTEX_INPUT_INSTANCE_ID
  547. };
  548. struct TessellationFactors
  549. {
  550. float edge[3] : SV_TessFactor;
  551. float inside : SV_InsideTessFactor;
  552. };
  553. VertexControl vert ( VertexInput v )
  554. {
  555. VertexControl o;
  556. UNITY_SETUP_INSTANCE_ID(v);
  557. UNITY_TRANSFER_INSTANCE_ID(v, o);
  558. o.vertex = v.vertex;
  559. o.ase_normal = v.ase_normal;
  560. o.ase_texcoord = v.ase_texcoord;
  561. o.ase_color = v.ase_color;
  562. return o;
  563. }
  564. TessellationFactors TessellationFunction (InputPatch<VertexControl,3> v)
  565. {
  566. TessellationFactors o;
  567. float4 tf = 1;
  568. float tessValue = _TessValue; float tessMin = _TessMin; float tessMax = _TessMax;
  569. float edgeLength = _TessEdgeLength; float tessMaxDisp = _TessMaxDisp;
  570. #if defined(ASE_FIXED_TESSELLATION)
  571. tf = FixedTess( tessValue );
  572. #elif defined(ASE_DISTANCE_TESSELLATION)
  573. tf = DistanceBasedTess(v[0].vertex, v[1].vertex, v[2].vertex, tessValue, tessMin, tessMax, GetObjectToWorldMatrix(), _WorldSpaceCameraPos );
  574. #elif defined(ASE_LENGTH_TESSELLATION)
  575. tf = EdgeLengthBasedTess(v[0].vertex, v[1].vertex, v[2].vertex, edgeLength, GetObjectToWorldMatrix(), _WorldSpaceCameraPos, _ScreenParams );
  576. #elif defined(ASE_LENGTH_CULL_TESSELLATION)
  577. tf = EdgeLengthBasedTessCull(v[0].vertex, v[1].vertex, v[2].vertex, edgeLength, tessMaxDisp, GetObjectToWorldMatrix(), _WorldSpaceCameraPos, _ScreenParams, unity_CameraWorldClipPlanes );
  578. #endif
  579. o.edge[0] = tf.x; o.edge[1] = tf.y; o.edge[2] = tf.z; o.inside = tf.w;
  580. return o;
  581. }
  582. [domain("tri")]
  583. [partitioning("fractional_odd")]
  584. [outputtopology("triangle_cw")]
  585. [patchconstantfunc("TessellationFunction")]
  586. [outputcontrolpoints(3)]
  587. VertexControl HullFunction(InputPatch<VertexControl, 3> patch, uint id : SV_OutputControlPointID)
  588. {
  589. return patch[id];
  590. }
  591. [domain("tri")]
  592. VertexOutput DomainFunction(TessellationFactors factors, OutputPatch<VertexControl, 3> patch, float3 bary : SV_DomainLocation)
  593. {
  594. VertexInput o = (VertexInput) 0;
  595. o.vertex = patch[0].vertex * bary.x + patch[1].vertex * bary.y + patch[2].vertex * bary.z;
  596. o.ase_normal = patch[0].ase_normal * bary.x + patch[1].ase_normal * bary.y + patch[2].ase_normal * bary.z;
  597. o.ase_texcoord = patch[0].ase_texcoord * bary.x + patch[1].ase_texcoord * bary.y + patch[2].ase_texcoord * bary.z;
  598. o.ase_color = patch[0].ase_color * bary.x + patch[1].ase_color * bary.y + patch[2].ase_color * bary.z;
  599. #if defined(ASE_PHONG_TESSELLATION)
  600. float3 pp[3];
  601. for (int i = 0; i < 3; ++i)
  602. 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));
  603. float phongStrength = _TessPhongStrength;
  604. o.vertex.xyz = phongStrength * (pp[0]*bary.x + pp[1]*bary.y + pp[2]*bary.z) + (1.0f-phongStrength) * o.vertex.xyz;
  605. #endif
  606. UNITY_TRANSFER_INSTANCE_ID(patch[0], o);
  607. return VertexFunction(o);
  608. }
  609. #else
  610. VertexOutput vert ( VertexInput v )
  611. {
  612. return VertexFunction( v );
  613. }
  614. #endif
  615. half4 frag(VertexOutput IN ) : SV_TARGET
  616. {
  617. UNITY_SETUP_INSTANCE_ID( IN );
  618. UNITY_SETUP_STEREO_EYE_INDEX_POST_VERTEX( IN );
  619. #if defined(ASE_NEEDS_FRAG_WORLD_POSITION)
  620. float3 WorldPosition = IN.worldPos;
  621. #endif
  622. float4 ShadowCoords = float4( 0, 0, 0, 0 );
  623. #if defined(ASE_NEEDS_FRAG_SHADOWCOORDS)
  624. #if defined(REQUIRES_VERTEX_SHADOW_COORD_INTERPOLATOR)
  625. ShadowCoords = IN.shadowCoord;
  626. #elif defined(MAIN_LIGHT_CALCULATE_SHADOWS)
  627. ShadowCoords = TransformWorldToShadowCoord( WorldPosition );
  628. #endif
  629. #endif
  630. float2 texCoord13 = IN.ase_texcoord2.xy * float2( 1,1 ) + float2( 0,0 );
  631. float2 panner22 = ( 1.0 * _Time.y * _UVP + ( texCoord13 * _UVS ));
  632. float2 texCoord6 = IN.ase_texcoord2.xy * float2( 1,1 ) + float2( 0,0 );
  633. float2 panner10 = ( 1.0 * _Time.y * _UVDP + ( texCoord6 * _UVDS ));
  634. float2 lerpResult21 = lerp( float2( 0,0 ) , ( ( (tex2D( _DistortionTexture, panner10 )).rg + -0.5 ) * 2.0 ) , _DistortionLerp);
  635. float2 DistortionRegister29 = ( panner22 + lerpResult21 );
  636. float4 tex2DNode41 = tex2D( _MainTexture, DistortionRegister29 );
  637. float mainTex_alpha46 = tex2DNode41.a;
  638. float smoothstepResult65 = smoothstep( IN.ase_texcoord2.z , ( IN.ase_texcoord2.z + _ErosionSmoothness ) , mainTex_alpha46);
  639. float mainTex_VC_alha61 = IN.ase_color.a;
  640. float Opacity_VTC_W31 = IN.ase_texcoord2.z;
  641. float Opacity_VTC_T25 = IN.ase_texcoord2.w;
  642. float temp_output_43_0 = (( Opacity_VTC_T25 - 1.0 ) + (Opacity_VTC_W31 - 0.0) * (1.0 - ( Opacity_VTC_T25 - 1.0 )) / (1.0 - 0.0));
  643. float2 uv_disolveMap = IN.ase_texcoord2.xy * _disolveMap_ST.xy + _disolveMap_ST.zw;
  644. float smoothstepResult59 = smoothstep( temp_output_43_0 , ( temp_output_43_0 + Opacity_VTC_T25 ) , tex2D( _disolveMap, uv_disolveMap ).r);
  645. float disolveMapping64 = smoothstepResult59;
  646. float OpacityRegister79 = ( ( smoothstepResult65 * mainTex_VC_alha61 ) * disolveMapping64 );
  647. float Alpha = OpacityRegister79;
  648. float AlphaClipThreshold = 0.5;
  649. float AlphaClipThresholdShadow = 0.5;
  650. #ifdef _ALPHATEST_ON
  651. #ifdef _ALPHATEST_SHADOW_ON
  652. clip(Alpha - AlphaClipThresholdShadow);
  653. #else
  654. clip(Alpha - AlphaClipThreshold);
  655. #endif
  656. #endif
  657. #ifdef LOD_FADE_CROSSFADE
  658. LODDitheringTransition( IN.clipPos.xyz, unity_LODFade.x );
  659. #endif
  660. return 0;
  661. }
  662. ENDHLSL
  663. }
  664. Pass
  665. {
  666. Name "DepthOnly"
  667. Tags { "LightMode"="DepthOnly" }
  668. ZWrite On
  669. ColorMask 0
  670. AlphaToMask Off
  671. HLSLPROGRAM
  672. #pragma multi_compile_instancing
  673. #define ASE_SRP_VERSION 999999
  674. #pragma vertex vert
  675. #pragma fragment frag
  676. #include "Packages/com.unity.render-pipelines.universal/ShaderLibrary/Core.hlsl"
  677. #include "Packages/com.unity.render-pipelines.universal/ShaderLibrary/Lighting.hlsl"
  678. #include "Packages/com.unity.render-pipelines.universal/ShaderLibrary/ShaderGraphFunctions.hlsl"
  679. #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/Color.hlsl"
  680. struct VertexInput
  681. {
  682. float4 vertex : POSITION;
  683. float3 ase_normal : NORMAL;
  684. float4 ase_texcoord : TEXCOORD0;
  685. float4 ase_color : COLOR;
  686. UNITY_VERTEX_INPUT_INSTANCE_ID
  687. };
  688. struct VertexOutput
  689. {
  690. float4 clipPos : SV_POSITION;
  691. #if defined(ASE_NEEDS_FRAG_WORLD_POSITION)
  692. float3 worldPos : TEXCOORD0;
  693. #endif
  694. #if defined(REQUIRES_VERTEX_SHADOW_COORD_INTERPOLATOR) && defined(ASE_NEEDS_FRAG_SHADOWCOORDS)
  695. float4 shadowCoord : TEXCOORD1;
  696. #endif
  697. float4 ase_texcoord2 : TEXCOORD2;
  698. float4 ase_color : COLOR;
  699. UNITY_VERTEX_INPUT_INSTANCE_ID
  700. UNITY_VERTEX_OUTPUT_STEREO
  701. };
  702. CBUFFER_START(UnityPerMaterial)
  703. float4 _disolveMap_ST;
  704. float4 _R;
  705. float4 _G;
  706. float4 _Outline;
  707. float4 _B;
  708. float2 _UVDS1;
  709. float2 _UVDP1;
  710. float2 _UVDP;
  711. float2 _UVDS;
  712. float2 _UVP;
  713. float2 _UVS;
  714. float _ErosionSmoothness;
  715. float _DistortionLerp;
  716. float _Dst;
  717. float _Src;
  718. float _FlatColor;
  719. float _Intensity;
  720. float _Cull;
  721. float _ZTest;
  722. float _SecondDistortionLerp;
  723. float _ZWrite;
  724. #ifdef TESSELLATION_ON
  725. float _TessPhongStrength;
  726. float _TessValue;
  727. float _TessMin;
  728. float _TessMax;
  729. float _TessEdgeLength;
  730. float _TessMaxDisp;
  731. #endif
  732. CBUFFER_END
  733. sampler2D _MainTexture;
  734. sampler2D _DistortionTexture;
  735. sampler2D _disolveMap;
  736. VertexOutput VertexFunction( VertexInput v )
  737. {
  738. VertexOutput o = (VertexOutput)0;
  739. UNITY_SETUP_INSTANCE_ID(v);
  740. UNITY_TRANSFER_INSTANCE_ID(v, o);
  741. UNITY_INITIALIZE_VERTEX_OUTPUT_STEREO(o);
  742. o.ase_texcoord2 = v.ase_texcoord;
  743. o.ase_color = v.ase_color;
  744. #ifdef ASE_ABSOLUTE_VERTEX_POS
  745. float3 defaultVertexValue = v.vertex.xyz;
  746. #else
  747. float3 defaultVertexValue = float3(0, 0, 0);
  748. #endif
  749. float3 vertexValue = defaultVertexValue;
  750. #ifdef ASE_ABSOLUTE_VERTEX_POS
  751. v.vertex.xyz = vertexValue;
  752. #else
  753. v.vertex.xyz += vertexValue;
  754. #endif
  755. v.ase_normal = v.ase_normal;
  756. float3 positionWS = TransformObjectToWorld( v.vertex.xyz );
  757. #if defined(ASE_NEEDS_FRAG_WORLD_POSITION)
  758. o.worldPos = positionWS;
  759. #endif
  760. o.clipPos = TransformWorldToHClip( positionWS );
  761. #if defined(REQUIRES_VERTEX_SHADOW_COORD_INTERPOLATOR) && defined(ASE_NEEDS_FRAG_SHADOWCOORDS)
  762. VertexPositionInputs vertexInput = (VertexPositionInputs)0;
  763. vertexInput.positionWS = positionWS;
  764. vertexInput.positionCS = o.clipPos;
  765. o.shadowCoord = GetShadowCoord( vertexInput );
  766. #endif
  767. return o;
  768. }
  769. #if defined(TESSELLATION_ON)
  770. struct VertexControl
  771. {
  772. float4 vertex : INTERNALTESSPOS;
  773. float3 ase_normal : NORMAL;
  774. float4 ase_texcoord : TEXCOORD0;
  775. float4 ase_color : COLOR;
  776. UNITY_VERTEX_INPUT_INSTANCE_ID
  777. };
  778. struct TessellationFactors
  779. {
  780. float edge[3] : SV_TessFactor;
  781. float inside : SV_InsideTessFactor;
  782. };
  783. VertexControl vert ( VertexInput v )
  784. {
  785. VertexControl o;
  786. UNITY_SETUP_INSTANCE_ID(v);
  787. UNITY_TRANSFER_INSTANCE_ID(v, o);
  788. o.vertex = v.vertex;
  789. o.ase_normal = v.ase_normal;
  790. o.ase_texcoord = v.ase_texcoord;
  791. o.ase_color = v.ase_color;
  792. return o;
  793. }
  794. TessellationFactors TessellationFunction (InputPatch<VertexControl,3> v)
  795. {
  796. TessellationFactors o;
  797. float4 tf = 1;
  798. float tessValue = _TessValue; float tessMin = _TessMin; float tessMax = _TessMax;
  799. float edgeLength = _TessEdgeLength; float tessMaxDisp = _TessMaxDisp;
  800. #if defined(ASE_FIXED_TESSELLATION)
  801. tf = FixedTess( tessValue );
  802. #elif defined(ASE_DISTANCE_TESSELLATION)
  803. tf = DistanceBasedTess(v[0].vertex, v[1].vertex, v[2].vertex, tessValue, tessMin, tessMax, GetObjectToWorldMatrix(), _WorldSpaceCameraPos );
  804. #elif defined(ASE_LENGTH_TESSELLATION)
  805. tf = EdgeLengthBasedTess(v[0].vertex, v[1].vertex, v[2].vertex, edgeLength, GetObjectToWorldMatrix(), _WorldSpaceCameraPos, _ScreenParams );
  806. #elif defined(ASE_LENGTH_CULL_TESSELLATION)
  807. tf = EdgeLengthBasedTessCull(v[0].vertex, v[1].vertex, v[2].vertex, edgeLength, tessMaxDisp, GetObjectToWorldMatrix(), _WorldSpaceCameraPos, _ScreenParams, unity_CameraWorldClipPlanes );
  808. #endif
  809. o.edge[0] = tf.x; o.edge[1] = tf.y; o.edge[2] = tf.z; o.inside = tf.w;
  810. return o;
  811. }
  812. [domain("tri")]
  813. [partitioning("fractional_odd")]
  814. [outputtopology("triangle_cw")]
  815. [patchconstantfunc("TessellationFunction")]
  816. [outputcontrolpoints(3)]
  817. VertexControl HullFunction(InputPatch<VertexControl, 3> patch, uint id : SV_OutputControlPointID)
  818. {
  819. return patch[id];
  820. }
  821. [domain("tri")]
  822. VertexOutput DomainFunction(TessellationFactors factors, OutputPatch<VertexControl, 3> patch, float3 bary : SV_DomainLocation)
  823. {
  824. VertexInput o = (VertexInput) 0;
  825. o.vertex = patch[0].vertex * bary.x + patch[1].vertex * bary.y + patch[2].vertex * bary.z;
  826. o.ase_normal = patch[0].ase_normal * bary.x + patch[1].ase_normal * bary.y + patch[2].ase_normal * bary.z;
  827. o.ase_texcoord = patch[0].ase_texcoord * bary.x + patch[1].ase_texcoord * bary.y + patch[2].ase_texcoord * bary.z;
  828. o.ase_color = patch[0].ase_color * bary.x + patch[1].ase_color * bary.y + patch[2].ase_color * bary.z;
  829. #if defined(ASE_PHONG_TESSELLATION)
  830. float3 pp[3];
  831. for (int i = 0; i < 3; ++i)
  832. 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));
  833. float phongStrength = _TessPhongStrength;
  834. o.vertex.xyz = phongStrength * (pp[0]*bary.x + pp[1]*bary.y + pp[2]*bary.z) + (1.0f-phongStrength) * o.vertex.xyz;
  835. #endif
  836. UNITY_TRANSFER_INSTANCE_ID(patch[0], o);
  837. return VertexFunction(o);
  838. }
  839. #else
  840. VertexOutput vert ( VertexInput v )
  841. {
  842. return VertexFunction( v );
  843. }
  844. #endif
  845. half4 frag(VertexOutput IN ) : SV_TARGET
  846. {
  847. UNITY_SETUP_INSTANCE_ID(IN);
  848. UNITY_SETUP_STEREO_EYE_INDEX_POST_VERTEX( IN );
  849. #if defined(ASE_NEEDS_FRAG_WORLD_POSITION)
  850. float3 WorldPosition = IN.worldPos;
  851. #endif
  852. float4 ShadowCoords = float4( 0, 0, 0, 0 );
  853. #if defined(ASE_NEEDS_FRAG_SHADOWCOORDS)
  854. #if defined(REQUIRES_VERTEX_SHADOW_COORD_INTERPOLATOR)
  855. ShadowCoords = IN.shadowCoord;
  856. #elif defined(MAIN_LIGHT_CALCULATE_SHADOWS)
  857. ShadowCoords = TransformWorldToShadowCoord( WorldPosition );
  858. #endif
  859. #endif
  860. float2 texCoord13 = IN.ase_texcoord2.xy * float2( 1,1 ) + float2( 0,0 );
  861. float2 panner22 = ( 1.0 * _Time.y * _UVP + ( texCoord13 * _UVS ));
  862. float2 texCoord6 = IN.ase_texcoord2.xy * float2( 1,1 ) + float2( 0,0 );
  863. float2 panner10 = ( 1.0 * _Time.y * _UVDP + ( texCoord6 * _UVDS ));
  864. float2 lerpResult21 = lerp( float2( 0,0 ) , ( ( (tex2D( _DistortionTexture, panner10 )).rg + -0.5 ) * 2.0 ) , _DistortionLerp);
  865. float2 DistortionRegister29 = ( panner22 + lerpResult21 );
  866. float4 tex2DNode41 = tex2D( _MainTexture, DistortionRegister29 );
  867. float mainTex_alpha46 = tex2DNode41.a;
  868. float smoothstepResult65 = smoothstep( IN.ase_texcoord2.z , ( IN.ase_texcoord2.z + _ErosionSmoothness ) , mainTex_alpha46);
  869. float mainTex_VC_alha61 = IN.ase_color.a;
  870. float Opacity_VTC_W31 = IN.ase_texcoord2.z;
  871. float Opacity_VTC_T25 = IN.ase_texcoord2.w;
  872. float temp_output_43_0 = (( Opacity_VTC_T25 - 1.0 ) + (Opacity_VTC_W31 - 0.0) * (1.0 - ( Opacity_VTC_T25 - 1.0 )) / (1.0 - 0.0));
  873. float2 uv_disolveMap = IN.ase_texcoord2.xy * _disolveMap_ST.xy + _disolveMap_ST.zw;
  874. float smoothstepResult59 = smoothstep( temp_output_43_0 , ( temp_output_43_0 + Opacity_VTC_T25 ) , tex2D( _disolveMap, uv_disolveMap ).r);
  875. float disolveMapping64 = smoothstepResult59;
  876. float OpacityRegister79 = ( ( smoothstepResult65 * mainTex_VC_alha61 ) * disolveMapping64 );
  877. float Alpha = OpacityRegister79;
  878. float AlphaClipThreshold = 0.5;
  879. #ifdef _ALPHATEST_ON
  880. clip(Alpha - AlphaClipThreshold);
  881. #endif
  882. #ifdef LOD_FADE_CROSSFADE
  883. LODDitheringTransition( IN.clipPos.xyz, unity_LODFade.x );
  884. #endif
  885. return 0;
  886. }
  887. ENDHLSL
  888. }
  889. Pass
  890. {
  891. Name "Universal2D"
  892. Tags { "LightMode"="Universal2D" }
  893. Blend [_Src] [_Dst], One OneMinusSrcAlpha
  894. ZWrite [_ZWrite]
  895. ZTest [_ZTest]
  896. Offset 0 , 0
  897. ColorMask RGBA
  898. HLSLPROGRAM
  899. #pragma multi_compile_instancing
  900. #define ASE_SRP_VERSION 999999
  901. #pragma multi_compile _ LIGHTMAP_ON
  902. #pragma multi_compile _ DIRLIGHTMAP_COMBINED
  903. #pragma shader_feature _ _SAMPLE_GI
  904. #pragma multi_compile _ _DBUFFER_MRT1 _DBUFFER_MRT2 _DBUFFER_MRT3
  905. #pragma multi_compile _ DEBUG_DISPLAY
  906. #define SHADERPASS SHADERPASS_UNLIT
  907. #pragma vertex vert
  908. #pragma fragment frag
  909. #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/Color.hlsl"
  910. #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/Texture.hlsl"
  911. #include "Packages/com.unity.render-pipelines.universal/ShaderLibrary/Core.hlsl"
  912. #include "Packages/com.unity.render-pipelines.universal/ShaderLibrary/Lighting.hlsl"
  913. #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/TextureStack.hlsl"
  914. #include "Packages/com.unity.render-pipelines.universal/ShaderLibrary/ShaderGraphFunctions.hlsl"
  915. #include "Packages/com.unity.render-pipelines.universal/ShaderLibrary/DBuffer.hlsl"
  916. #include "Packages/com.unity.render-pipelines.universal/Editor/ShaderGraph/Includes/ShaderPass.hlsl"
  917. #include "Packages/com.unity.render-pipelines.universal/ShaderLibrary/Debug/Debugging3D.hlsl"
  918. #include "Packages/com.unity.render-pipelines.universal/ShaderLibrary/Input.hlsl"
  919. #include "Packages/com.unity.render-pipelines.universal/ShaderLibrary/SurfaceData.hlsl"
  920. #define ASE_NEEDS_FRAG_COLOR
  921. struct VertexInput
  922. {
  923. float4 vertex : POSITION;
  924. float3 ase_normal : NORMAL;
  925. float4 ase_color : COLOR;
  926. float4 ase_texcoord : TEXCOORD0;
  927. UNITY_VERTEX_INPUT_INSTANCE_ID
  928. };
  929. struct VertexOutput
  930. {
  931. float4 clipPos : SV_POSITION;
  932. #if defined(ASE_NEEDS_FRAG_WORLD_POSITION)
  933. float3 worldPos : TEXCOORD0;
  934. #endif
  935. #if defined(REQUIRES_VERTEX_SHADOW_COORD_INTERPOLATOR) && defined(ASE_NEEDS_FRAG_SHADOWCOORDS)
  936. float4 shadowCoord : TEXCOORD1;
  937. #endif
  938. #ifdef ASE_FOG
  939. float fogFactor : TEXCOORD2;
  940. #endif
  941. float4 ase_color : COLOR;
  942. float4 ase_texcoord3 : TEXCOORD3;
  943. UNITY_VERTEX_INPUT_INSTANCE_ID
  944. UNITY_VERTEX_OUTPUT_STEREO
  945. };
  946. CBUFFER_START(UnityPerMaterial)
  947. float4 _disolveMap_ST;
  948. float4 _R;
  949. float4 _G;
  950. float4 _Outline;
  951. float4 _B;
  952. float2 _UVDS1;
  953. float2 _UVDP1;
  954. float2 _UVDP;
  955. float2 _UVDS;
  956. float2 _UVP;
  957. float2 _UVS;
  958. float _ErosionSmoothness;
  959. float _DistortionLerp;
  960. float _Dst;
  961. float _Src;
  962. float _FlatColor;
  963. float _Intensity;
  964. float _Cull;
  965. float _ZTest;
  966. float _SecondDistortionLerp;
  967. float _ZWrite;
  968. #ifdef TESSELLATION_ON
  969. float _TessPhongStrength;
  970. float _TessValue;
  971. float _TessMin;
  972. float _TessMax;
  973. float _TessEdgeLength;
  974. float _TessMaxDisp;
  975. #endif
  976. CBUFFER_END
  977. sampler2D _MainTexture;
  978. sampler2D _DistortionTexture;
  979. sampler2D _DistortionSecond;
  980. sampler2D _disolveMap;
  981. VertexOutput VertexFunction ( VertexInput v )
  982. {
  983. VertexOutput o = (VertexOutput)0;
  984. UNITY_SETUP_INSTANCE_ID(v);
  985. UNITY_TRANSFER_INSTANCE_ID(v, o);
  986. UNITY_INITIALIZE_VERTEX_OUTPUT_STEREO(o);
  987. o.ase_color = v.ase_color;
  988. o.ase_texcoord3 = v.ase_texcoord;
  989. #ifdef ASE_ABSOLUTE_VERTEX_POS
  990. float3 defaultVertexValue = v.vertex.xyz;
  991. #else
  992. float3 defaultVertexValue = float3(0, 0, 0);
  993. #endif
  994. float3 vertexValue = defaultVertexValue;
  995. #ifdef ASE_ABSOLUTE_VERTEX_POS
  996. v.vertex.xyz = vertexValue;
  997. #else
  998. v.vertex.xyz += vertexValue;
  999. #endif
  1000. v.ase_normal = v.ase_normal;
  1001. float3 positionWS = TransformObjectToWorld( v.vertex.xyz );
  1002. float4 positionCS = TransformWorldToHClip( positionWS );
  1003. #if defined(ASE_NEEDS_FRAG_WORLD_POSITION)
  1004. o.worldPos = positionWS;
  1005. #endif
  1006. #if defined(REQUIRES_VERTEX_SHADOW_COORD_INTERPOLATOR) && defined(ASE_NEEDS_FRAG_SHADOWCOORDS)
  1007. VertexPositionInputs vertexInput = (VertexPositionInputs)0;
  1008. vertexInput.positionWS = positionWS;
  1009. vertexInput.positionCS = positionCS;
  1010. o.shadowCoord = GetShadowCoord( vertexInput );
  1011. #endif
  1012. #ifdef ASE_FOG
  1013. o.fogFactor = ComputeFogFactor( positionCS.z );
  1014. #endif
  1015. o.clipPos = positionCS;
  1016. return o;
  1017. }
  1018. #if defined(TESSELLATION_ON)
  1019. struct VertexControl
  1020. {
  1021. float4 vertex : INTERNALTESSPOS;
  1022. float3 ase_normal : NORMAL;
  1023. float4 ase_color : COLOR;
  1024. float4 ase_texcoord : TEXCOORD0;
  1025. UNITY_VERTEX_INPUT_INSTANCE_ID
  1026. };
  1027. struct TessellationFactors
  1028. {
  1029. float edge[3] : SV_TessFactor;
  1030. float inside : SV_InsideTessFactor;
  1031. };
  1032. VertexControl vert ( VertexInput v )
  1033. {
  1034. VertexControl o;
  1035. UNITY_SETUP_INSTANCE_ID(v);
  1036. UNITY_TRANSFER_INSTANCE_ID(v, o);
  1037. o.vertex = v.vertex;
  1038. o.ase_normal = v.ase_normal;
  1039. o.ase_color = v.ase_color;
  1040. o.ase_texcoord = v.ase_texcoord;
  1041. return o;
  1042. }
  1043. TessellationFactors TessellationFunction (InputPatch<VertexControl,3> v)
  1044. {
  1045. TessellationFactors o;
  1046. float4 tf = 1;
  1047. float tessValue = _TessValue; float tessMin = _TessMin; float tessMax = _TessMax;
  1048. float edgeLength = _TessEdgeLength; float tessMaxDisp = _TessMaxDisp;
  1049. #if defined(ASE_FIXED_TESSELLATION)
  1050. tf = FixedTess( tessValue );
  1051. #elif defined(ASE_DISTANCE_TESSELLATION)
  1052. tf = DistanceBasedTess(v[0].vertex, v[1].vertex, v[2].vertex, tessValue, tessMin, tessMax, GetObjectToWorldMatrix(), _WorldSpaceCameraPos );
  1053. #elif defined(ASE_LENGTH_TESSELLATION)
  1054. tf = EdgeLengthBasedTess(v[0].vertex, v[1].vertex, v[2].vertex, edgeLength, GetObjectToWorldMatrix(), _WorldSpaceCameraPos, _ScreenParams );
  1055. #elif defined(ASE_LENGTH_CULL_TESSELLATION)
  1056. tf = EdgeLengthBasedTessCull(v[0].vertex, v[1].vertex, v[2].vertex, edgeLength, tessMaxDisp, GetObjectToWorldMatrix(), _WorldSpaceCameraPos, _ScreenParams, unity_CameraWorldClipPlanes );
  1057. #endif
  1058. o.edge[0] = tf.x; o.edge[1] = tf.y; o.edge[2] = tf.z; o.inside = tf.w;
  1059. return o;
  1060. }
  1061. [domain("tri")]
  1062. [partitioning("fractional_odd")]
  1063. [outputtopology("triangle_cw")]
  1064. [patchconstantfunc("TessellationFunction")]
  1065. [outputcontrolpoints(3)]
  1066. VertexControl HullFunction(InputPatch<VertexControl, 3> patch, uint id : SV_OutputControlPointID)
  1067. {
  1068. return patch[id];
  1069. }
  1070. [domain("tri")]
  1071. VertexOutput DomainFunction(TessellationFactors factors, OutputPatch<VertexControl, 3> patch, float3 bary : SV_DomainLocation)
  1072. {
  1073. VertexInput o = (VertexInput) 0;
  1074. o.vertex = patch[0].vertex * bary.x + patch[1].vertex * bary.y + patch[2].vertex * bary.z;
  1075. o.ase_normal = patch[0].ase_normal * bary.x + patch[1].ase_normal * bary.y + patch[2].ase_normal * bary.z;
  1076. o.ase_color = patch[0].ase_color * bary.x + patch[1].ase_color * bary.y + patch[2].ase_color * bary.z;
  1077. o.ase_texcoord = patch[0].ase_texcoord * bary.x + patch[1].ase_texcoord * bary.y + patch[2].ase_texcoord * bary.z;
  1078. #if defined(ASE_PHONG_TESSELLATION)
  1079. float3 pp[3];
  1080. for (int i = 0; i < 3; ++i)
  1081. 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));
  1082. float phongStrength = _TessPhongStrength;
  1083. o.vertex.xyz = phongStrength * (pp[0]*bary.x + pp[1]*bary.y + pp[2]*bary.z) + (1.0f-phongStrength) * o.vertex.xyz;
  1084. #endif
  1085. UNITY_TRANSFER_INSTANCE_ID(patch[0], o);
  1086. return VertexFunction(o);
  1087. }
  1088. #else
  1089. VertexOutput vert ( VertexInput v )
  1090. {
  1091. return VertexFunction( v );
  1092. }
  1093. #endif
  1094. half4 frag ( VertexOutput IN ) : SV_Target
  1095. {
  1096. UNITY_SETUP_INSTANCE_ID( IN );
  1097. UNITY_SETUP_STEREO_EYE_INDEX_POST_VERTEX( IN );
  1098. #if defined(ASE_NEEDS_FRAG_WORLD_POSITION)
  1099. float3 WorldPosition = IN.worldPos;
  1100. #endif
  1101. float4 ShadowCoords = float4( 0, 0, 0, 0 );
  1102. #if defined(ASE_NEEDS_FRAG_SHADOWCOORDS)
  1103. #if defined(REQUIRES_VERTEX_SHADOW_COORD_INTERPOLATOR)
  1104. ShadowCoords = IN.shadowCoord;
  1105. #elif defined(MAIN_LIGHT_CALCULATE_SHADOWS)
  1106. ShadowCoords = TransformWorldToShadowCoord( WorldPosition );
  1107. #endif
  1108. #endif
  1109. float2 texCoord13 = IN.ase_texcoord3.xy * float2( 1,1 ) + float2( 0,0 );
  1110. float2 panner22 = ( 1.0 * _Time.y * _UVP + ( texCoord13 * _UVS ));
  1111. float2 texCoord6 = IN.ase_texcoord3.xy * float2( 1,1 ) + float2( 0,0 );
  1112. float2 panner10 = ( 1.0 * _Time.y * _UVDP + ( texCoord6 * _UVDS ));
  1113. float2 lerpResult21 = lerp( float2( 0,0 ) , ( ( (tex2D( _DistortionTexture, panner10 )).rg + -0.5 ) * 2.0 ) , _DistortionLerp);
  1114. float2 DistortionRegister29 = ( panner22 + lerpResult21 );
  1115. float4 tex2DNode41 = tex2D( _MainTexture, DistortionRegister29 );
  1116. float4 lerpResult49 = lerp( _Outline , _B , tex2DNode41.b);
  1117. float4 lerpResult57 = lerp( lerpResult49 , _G , tex2DNode41.g);
  1118. float4 lerpResult63 = lerp( lerpResult57 , _R , tex2DNode41.r);
  1119. float4 lerpResult76 = lerp( ( IN.ase_color * lerpResult63 ) , IN.ase_color , _FlatColor);
  1120. float2 texCoord45 = IN.ase_texcoord3.xy * float2( 1,1 ) + float2( 0,0 );
  1121. float2 panner55 = ( 1.0 * _Time.y * _UVDP1 + ( texCoord45 * _UVDS1 ));
  1122. float4 SecondDistortion75 = ( tex2D( _DistortionSecond, panner55 ) + _SecondDistortionLerp );
  1123. float mainTex_alpha46 = tex2DNode41.a;
  1124. float smoothstepResult65 = smoothstep( IN.ase_texcoord3.z , ( IN.ase_texcoord3.z + _ErosionSmoothness ) , mainTex_alpha46);
  1125. float mainTex_VC_alha61 = IN.ase_color.a;
  1126. float Opacity_VTC_W31 = IN.ase_texcoord3.z;
  1127. float Opacity_VTC_T25 = IN.ase_texcoord3.w;
  1128. float temp_output_43_0 = (( Opacity_VTC_T25 - 1.0 ) + (Opacity_VTC_W31 - 0.0) * (1.0 - ( Opacity_VTC_T25 - 1.0 )) / (1.0 - 0.0));
  1129. float2 uv_disolveMap = IN.ase_texcoord3.xy * _disolveMap_ST.xy + _disolveMap_ST.zw;
  1130. float smoothstepResult59 = smoothstep( temp_output_43_0 , ( temp_output_43_0 + Opacity_VTC_T25 ) , tex2D( _disolveMap, uv_disolveMap ).r);
  1131. float disolveMapping64 = smoothstepResult59;
  1132. float OpacityRegister79 = ( ( smoothstepResult65 * mainTex_VC_alha61 ) * disolveMapping64 );
  1133. float3 BakedAlbedo = 0;
  1134. float3 BakedEmission = 0;
  1135. float3 Color = ( ( lerpResult76 * _Intensity ) * SecondDistortion75 ).rgb;
  1136. float Alpha = OpacityRegister79;
  1137. float AlphaClipThreshold = 0.5;
  1138. float AlphaClipThresholdShadow = 0.5;
  1139. #ifdef _ALPHATEST_ON
  1140. clip( Alpha - AlphaClipThreshold );
  1141. #endif
  1142. #if defined(_DBUFFER)
  1143. ApplyDecalToBaseColor(IN.clipPos, Color);
  1144. #endif
  1145. #if defined(_ALPHAPREMULTIPLY_ON)
  1146. Color *= Alpha;
  1147. #endif
  1148. #ifdef LOD_FADE_CROSSFADE
  1149. LODDitheringTransition( IN.clipPos.xyz, unity_LODFade.x );
  1150. #endif
  1151. #ifdef ASE_FOG
  1152. Color = MixFog( Color, IN.fogFactor );
  1153. #endif
  1154. return half4( Color, Alpha );
  1155. }
  1156. ENDHLSL
  1157. }
  1158. Pass
  1159. {
  1160. Name "SceneSelectionPass"
  1161. Tags { "LightMode"="SceneSelectionPass" }
  1162. Cull Off
  1163. HLSLPROGRAM
  1164. #pragma multi_compile_instancing
  1165. #define ASE_SRP_VERSION 999999
  1166. #pragma only_renderers d3d11 glcore gles gles3
  1167. #pragma vertex vert
  1168. #pragma fragment frag
  1169. #define ATTRIBUTES_NEED_NORMAL
  1170. #define ATTRIBUTES_NEED_TANGENT
  1171. #define SHADERPASS SHADERPASS_DEPTHONLY
  1172. #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/Color.hlsl"
  1173. #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/Texture.hlsl"
  1174. #include "Packages/com.unity.render-pipelines.universal/ShaderLibrary/Core.hlsl"
  1175. #include "Packages/com.unity.render-pipelines.universal/ShaderLibrary/Lighting.hlsl"
  1176. #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/TextureStack.hlsl"
  1177. #include "Packages/com.unity.render-pipelines.universal/ShaderLibrary/ShaderGraphFunctions.hlsl"
  1178. #include "Packages/com.unity.render-pipelines.universal/Editor/ShaderGraph/Includes/ShaderPass.hlsl"
  1179. struct VertexInput
  1180. {
  1181. float4 vertex : POSITION;
  1182. float3 ase_normal : NORMAL;
  1183. float4 ase_texcoord : TEXCOORD0;
  1184. float4 ase_color : COLOR;
  1185. UNITY_VERTEX_INPUT_INSTANCE_ID
  1186. };
  1187. struct VertexOutput
  1188. {
  1189. float4 clipPos : SV_POSITION;
  1190. float4 ase_texcoord : TEXCOORD0;
  1191. float4 ase_color : COLOR;
  1192. UNITY_VERTEX_INPUT_INSTANCE_ID
  1193. UNITY_VERTEX_OUTPUT_STEREO
  1194. };
  1195. CBUFFER_START(UnityPerMaterial)
  1196. float4 _disolveMap_ST;
  1197. float4 _R;
  1198. float4 _G;
  1199. float4 _Outline;
  1200. float4 _B;
  1201. float2 _UVDS1;
  1202. float2 _UVDP1;
  1203. float2 _UVDP;
  1204. float2 _UVDS;
  1205. float2 _UVP;
  1206. float2 _UVS;
  1207. float _ErosionSmoothness;
  1208. float _DistortionLerp;
  1209. float _Dst;
  1210. float _Src;
  1211. float _FlatColor;
  1212. float _Intensity;
  1213. float _Cull;
  1214. float _ZTest;
  1215. float _SecondDistortionLerp;
  1216. float _ZWrite;
  1217. #ifdef TESSELLATION_ON
  1218. float _TessPhongStrength;
  1219. float _TessValue;
  1220. float _TessMin;
  1221. float _TessMax;
  1222. float _TessEdgeLength;
  1223. float _TessMaxDisp;
  1224. #endif
  1225. CBUFFER_END
  1226. sampler2D _MainTexture;
  1227. sampler2D _DistortionTexture;
  1228. sampler2D _disolveMap;
  1229. int _ObjectId;
  1230. int _PassValue;
  1231. struct SurfaceDescription
  1232. {
  1233. float Alpha;
  1234. float AlphaClipThreshold;
  1235. };
  1236. VertexOutput VertexFunction(VertexInput v )
  1237. {
  1238. VertexOutput o;
  1239. ZERO_INITIALIZE(VertexOutput, o);
  1240. UNITY_SETUP_INSTANCE_ID(v);
  1241. UNITY_TRANSFER_INSTANCE_ID(v, o);
  1242. UNITY_INITIALIZE_VERTEX_OUTPUT_STEREO(o);
  1243. o.ase_texcoord = v.ase_texcoord;
  1244. o.ase_color = v.ase_color;
  1245. #ifdef ASE_ABSOLUTE_VERTEX_POS
  1246. float3 defaultVertexValue = v.vertex.xyz;
  1247. #else
  1248. float3 defaultVertexValue = float3(0, 0, 0);
  1249. #endif
  1250. float3 vertexValue = defaultVertexValue;
  1251. #ifdef ASE_ABSOLUTE_VERTEX_POS
  1252. v.vertex.xyz = vertexValue;
  1253. #else
  1254. v.vertex.xyz += vertexValue;
  1255. #endif
  1256. v.ase_normal = v.ase_normal;
  1257. float3 positionWS = TransformObjectToWorld( v.vertex.xyz );
  1258. o.clipPos = TransformWorldToHClip(positionWS);
  1259. return o;
  1260. }
  1261. #if defined(TESSELLATION_ON)
  1262. struct VertexControl
  1263. {
  1264. float4 vertex : INTERNALTESSPOS;
  1265. float3 ase_normal : NORMAL;
  1266. float4 ase_texcoord : TEXCOORD0;
  1267. float4 ase_color : COLOR;
  1268. UNITY_VERTEX_INPUT_INSTANCE_ID
  1269. };
  1270. struct TessellationFactors
  1271. {
  1272. float edge[3] : SV_TessFactor;
  1273. float inside : SV_InsideTessFactor;
  1274. };
  1275. VertexControl vert ( VertexInput v )
  1276. {
  1277. VertexControl o;
  1278. UNITY_SETUP_INSTANCE_ID(v);
  1279. UNITY_TRANSFER_INSTANCE_ID(v, o);
  1280. o.vertex = v.vertex;
  1281. o.ase_normal = v.ase_normal;
  1282. o.ase_texcoord = v.ase_texcoord;
  1283. o.ase_color = v.ase_color;
  1284. return o;
  1285. }
  1286. TessellationFactors TessellationFunction (InputPatch<VertexControl,3> v)
  1287. {
  1288. TessellationFactors o;
  1289. float4 tf = 1;
  1290. float tessValue = _TessValue; float tessMin = _TessMin; float tessMax = _TessMax;
  1291. float edgeLength = _TessEdgeLength; float tessMaxDisp = _TessMaxDisp;
  1292. #if defined(ASE_FIXED_TESSELLATION)
  1293. tf = FixedTess( tessValue );
  1294. #elif defined(ASE_DISTANCE_TESSELLATION)
  1295. tf = DistanceBasedTess(v[0].vertex, v[1].vertex, v[2].vertex, tessValue, tessMin, tessMax, GetObjectToWorldMatrix(), _WorldSpaceCameraPos );
  1296. #elif defined(ASE_LENGTH_TESSELLATION)
  1297. tf = EdgeLengthBasedTess(v[0].vertex, v[1].vertex, v[2].vertex, edgeLength, GetObjectToWorldMatrix(), _WorldSpaceCameraPos, _ScreenParams );
  1298. #elif defined(ASE_LENGTH_CULL_TESSELLATION)
  1299. tf = EdgeLengthBasedTessCull(v[0].vertex, v[1].vertex, v[2].vertex, edgeLength, tessMaxDisp, GetObjectToWorldMatrix(), _WorldSpaceCameraPos, _ScreenParams, unity_CameraWorldClipPlanes );
  1300. #endif
  1301. o.edge[0] = tf.x; o.edge[1] = tf.y; o.edge[2] = tf.z; o.inside = tf.w;
  1302. return o;
  1303. }
  1304. [domain("tri")]
  1305. [partitioning("fractional_odd")]
  1306. [outputtopology("triangle_cw")]
  1307. [patchconstantfunc("TessellationFunction")]
  1308. [outputcontrolpoints(3)]
  1309. VertexControl HullFunction(InputPatch<VertexControl, 3> patch, uint id : SV_OutputControlPointID)
  1310. {
  1311. return patch[id];
  1312. }
  1313. [domain("tri")]
  1314. VertexOutput DomainFunction(TessellationFactors factors, OutputPatch<VertexControl, 3> patch, float3 bary : SV_DomainLocation)
  1315. {
  1316. VertexInput o = (VertexInput) 0;
  1317. o.vertex = patch[0].vertex * bary.x + patch[1].vertex * bary.y + patch[2].vertex * bary.z;
  1318. o.ase_normal = patch[0].ase_normal * bary.x + patch[1].ase_normal * bary.y + patch[2].ase_normal * bary.z;
  1319. o.ase_texcoord = patch[0].ase_texcoord * bary.x + patch[1].ase_texcoord * bary.y + patch[2].ase_texcoord * bary.z;
  1320. o.ase_color = patch[0].ase_color * bary.x + patch[1].ase_color * bary.y + patch[2].ase_color * bary.z;
  1321. #if defined(ASE_PHONG_TESSELLATION)
  1322. float3 pp[3];
  1323. for (int i = 0; i < 3; ++i)
  1324. 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));
  1325. float phongStrength = _TessPhongStrength;
  1326. o.vertex.xyz = phongStrength * (pp[0]*bary.x + pp[1]*bary.y + pp[2]*bary.z) + (1.0f-phongStrength) * o.vertex.xyz;
  1327. #endif
  1328. UNITY_TRANSFER_INSTANCE_ID(patch[0], o);
  1329. return VertexFunction(o);
  1330. }
  1331. #else
  1332. VertexOutput vert ( VertexInput v )
  1333. {
  1334. return VertexFunction( v );
  1335. }
  1336. #endif
  1337. half4 frag(VertexOutput IN ) : SV_TARGET
  1338. {
  1339. SurfaceDescription surfaceDescription = (SurfaceDescription)0;
  1340. float2 texCoord13 = IN.ase_texcoord.xy * float2( 1,1 ) + float2( 0,0 );
  1341. float2 panner22 = ( 1.0 * _Time.y * _UVP + ( texCoord13 * _UVS ));
  1342. float2 texCoord6 = IN.ase_texcoord.xy * float2( 1,1 ) + float2( 0,0 );
  1343. float2 panner10 = ( 1.0 * _Time.y * _UVDP + ( texCoord6 * _UVDS ));
  1344. float2 lerpResult21 = lerp( float2( 0,0 ) , ( ( (tex2D( _DistortionTexture, panner10 )).rg + -0.5 ) * 2.0 ) , _DistortionLerp);
  1345. float2 DistortionRegister29 = ( panner22 + lerpResult21 );
  1346. float4 tex2DNode41 = tex2D( _MainTexture, DistortionRegister29 );
  1347. float mainTex_alpha46 = tex2DNode41.a;
  1348. float smoothstepResult65 = smoothstep( IN.ase_texcoord.z , ( IN.ase_texcoord.z + _ErosionSmoothness ) , mainTex_alpha46);
  1349. float mainTex_VC_alha61 = IN.ase_color.a;
  1350. float Opacity_VTC_W31 = IN.ase_texcoord.z;
  1351. float Opacity_VTC_T25 = IN.ase_texcoord.w;
  1352. float temp_output_43_0 = (( Opacity_VTC_T25 - 1.0 ) + (Opacity_VTC_W31 - 0.0) * (1.0 - ( Opacity_VTC_T25 - 1.0 )) / (1.0 - 0.0));
  1353. float2 uv_disolveMap = IN.ase_texcoord.xy * _disolveMap_ST.xy + _disolveMap_ST.zw;
  1354. float smoothstepResult59 = smoothstep( temp_output_43_0 , ( temp_output_43_0 + Opacity_VTC_T25 ) , tex2D( _disolveMap, uv_disolveMap ).r);
  1355. float disolveMapping64 = smoothstepResult59;
  1356. float OpacityRegister79 = ( ( smoothstepResult65 * mainTex_VC_alha61 ) * disolveMapping64 );
  1357. surfaceDescription.Alpha = OpacityRegister79;
  1358. surfaceDescription.AlphaClipThreshold = 0.5;
  1359. #if _ALPHATEST_ON
  1360. float alphaClipThreshold = 0.01f;
  1361. #if ALPHA_CLIP_THRESHOLD
  1362. alphaClipThreshold = surfaceDescription.AlphaClipThreshold;
  1363. #endif
  1364. clip(surfaceDescription.Alpha - alphaClipThreshold);
  1365. #endif
  1366. half4 outColor = half4(_ObjectId, _PassValue, 1.0, 1.0);
  1367. return outColor;
  1368. }
  1369. ENDHLSL
  1370. }
  1371. Pass
  1372. {
  1373. Name "ScenePickingPass"
  1374. Tags { "LightMode"="Picking" }
  1375. HLSLPROGRAM
  1376. #pragma multi_compile_instancing
  1377. #define ASE_SRP_VERSION 999999
  1378. #pragma only_renderers d3d11 glcore gles gles3
  1379. #pragma vertex vert
  1380. #pragma fragment frag
  1381. #define ATTRIBUTES_NEED_NORMAL
  1382. #define ATTRIBUTES_NEED_TANGENT
  1383. #define SHADERPASS SHADERPASS_DEPTHONLY
  1384. #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/Color.hlsl"
  1385. #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/Texture.hlsl"
  1386. #include "Packages/com.unity.render-pipelines.universal/ShaderLibrary/Core.hlsl"
  1387. #include "Packages/com.unity.render-pipelines.universal/ShaderLibrary/Lighting.hlsl"
  1388. #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/TextureStack.hlsl"
  1389. #include "Packages/com.unity.render-pipelines.universal/ShaderLibrary/ShaderGraphFunctions.hlsl"
  1390. #include "Packages/com.unity.render-pipelines.universal/Editor/ShaderGraph/Includes/ShaderPass.hlsl"
  1391. struct VertexInput
  1392. {
  1393. float4 vertex : POSITION;
  1394. float3 ase_normal : NORMAL;
  1395. float4 ase_texcoord : TEXCOORD0;
  1396. float4 ase_color : COLOR;
  1397. UNITY_VERTEX_INPUT_INSTANCE_ID
  1398. };
  1399. struct VertexOutput
  1400. {
  1401. float4 clipPos : SV_POSITION;
  1402. float4 ase_texcoord : TEXCOORD0;
  1403. float4 ase_color : COLOR;
  1404. UNITY_VERTEX_INPUT_INSTANCE_ID
  1405. UNITY_VERTEX_OUTPUT_STEREO
  1406. };
  1407. CBUFFER_START(UnityPerMaterial)
  1408. float4 _disolveMap_ST;
  1409. float4 _R;
  1410. float4 _G;
  1411. float4 _Outline;
  1412. float4 _B;
  1413. float2 _UVDS1;
  1414. float2 _UVDP1;
  1415. float2 _UVDP;
  1416. float2 _UVDS;
  1417. float2 _UVP;
  1418. float2 _UVS;
  1419. float _ErosionSmoothness;
  1420. float _DistortionLerp;
  1421. float _Dst;
  1422. float _Src;
  1423. float _FlatColor;
  1424. float _Intensity;
  1425. float _Cull;
  1426. float _ZTest;
  1427. float _SecondDistortionLerp;
  1428. float _ZWrite;
  1429. #ifdef TESSELLATION_ON
  1430. float _TessPhongStrength;
  1431. float _TessValue;
  1432. float _TessMin;
  1433. float _TessMax;
  1434. float _TessEdgeLength;
  1435. float _TessMaxDisp;
  1436. #endif
  1437. CBUFFER_END
  1438. sampler2D _MainTexture;
  1439. sampler2D _DistortionTexture;
  1440. sampler2D _disolveMap;
  1441. float4 _SelectionID;
  1442. struct SurfaceDescription
  1443. {
  1444. float Alpha;
  1445. float AlphaClipThreshold;
  1446. };
  1447. VertexOutput VertexFunction(VertexInput v )
  1448. {
  1449. VertexOutput o;
  1450. ZERO_INITIALIZE(VertexOutput, o);
  1451. UNITY_SETUP_INSTANCE_ID(v);
  1452. UNITY_TRANSFER_INSTANCE_ID(v, o);
  1453. UNITY_INITIALIZE_VERTEX_OUTPUT_STEREO(o);
  1454. o.ase_texcoord = v.ase_texcoord;
  1455. o.ase_color = v.ase_color;
  1456. #ifdef ASE_ABSOLUTE_VERTEX_POS
  1457. float3 defaultVertexValue = v.vertex.xyz;
  1458. #else
  1459. float3 defaultVertexValue = float3(0, 0, 0);
  1460. #endif
  1461. float3 vertexValue = defaultVertexValue;
  1462. #ifdef ASE_ABSOLUTE_VERTEX_POS
  1463. v.vertex.xyz = vertexValue;
  1464. #else
  1465. v.vertex.xyz += vertexValue;
  1466. #endif
  1467. v.ase_normal = v.ase_normal;
  1468. float3 positionWS = TransformObjectToWorld( v.vertex.xyz );
  1469. o.clipPos = TransformWorldToHClip(positionWS);
  1470. return o;
  1471. }
  1472. #if defined(TESSELLATION_ON)
  1473. struct VertexControl
  1474. {
  1475. float4 vertex : INTERNALTESSPOS;
  1476. float3 ase_normal : NORMAL;
  1477. float4 ase_texcoord : TEXCOORD0;
  1478. float4 ase_color : COLOR;
  1479. UNITY_VERTEX_INPUT_INSTANCE_ID
  1480. };
  1481. struct TessellationFactors
  1482. {
  1483. float edge[3] : SV_TessFactor;
  1484. float inside : SV_InsideTessFactor;
  1485. };
  1486. VertexControl vert ( VertexInput v )
  1487. {
  1488. VertexControl o;
  1489. UNITY_SETUP_INSTANCE_ID(v);
  1490. UNITY_TRANSFER_INSTANCE_ID(v, o);
  1491. o.vertex = v.vertex;
  1492. o.ase_normal = v.ase_normal;
  1493. o.ase_texcoord = v.ase_texcoord;
  1494. o.ase_color = v.ase_color;
  1495. return o;
  1496. }
  1497. TessellationFactors TessellationFunction (InputPatch<VertexControl,3> v)
  1498. {
  1499. TessellationFactors o;
  1500. float4 tf = 1;
  1501. float tessValue = _TessValue; float tessMin = _TessMin; float tessMax = _TessMax;
  1502. float edgeLength = _TessEdgeLength; float tessMaxDisp = _TessMaxDisp;
  1503. #if defined(ASE_FIXED_TESSELLATION)
  1504. tf = FixedTess( tessValue );
  1505. #elif defined(ASE_DISTANCE_TESSELLATION)
  1506. tf = DistanceBasedTess(v[0].vertex, v[1].vertex, v[2].vertex, tessValue, tessMin, tessMax, GetObjectToWorldMatrix(), _WorldSpaceCameraPos );
  1507. #elif defined(ASE_LENGTH_TESSELLATION)
  1508. tf = EdgeLengthBasedTess(v[0].vertex, v[1].vertex, v[2].vertex, edgeLength, GetObjectToWorldMatrix(), _WorldSpaceCameraPos, _ScreenParams );
  1509. #elif defined(ASE_LENGTH_CULL_TESSELLATION)
  1510. tf = EdgeLengthBasedTessCull(v[0].vertex, v[1].vertex, v[2].vertex, edgeLength, tessMaxDisp, GetObjectToWorldMatrix(), _WorldSpaceCameraPos, _ScreenParams, unity_CameraWorldClipPlanes );
  1511. #endif
  1512. o.edge[0] = tf.x; o.edge[1] = tf.y; o.edge[2] = tf.z; o.inside = tf.w;
  1513. return o;
  1514. }
  1515. [domain("tri")]
  1516. [partitioning("fractional_odd")]
  1517. [outputtopology("triangle_cw")]
  1518. [patchconstantfunc("TessellationFunction")]
  1519. [outputcontrolpoints(3)]
  1520. VertexControl HullFunction(InputPatch<VertexControl, 3> patch, uint id : SV_OutputControlPointID)
  1521. {
  1522. return patch[id];
  1523. }
  1524. [domain("tri")]
  1525. VertexOutput DomainFunction(TessellationFactors factors, OutputPatch<VertexControl, 3> patch, float3 bary : SV_DomainLocation)
  1526. {
  1527. VertexInput o = (VertexInput) 0;
  1528. o.vertex = patch[0].vertex * bary.x + patch[1].vertex * bary.y + patch[2].vertex * bary.z;
  1529. o.ase_normal = patch[0].ase_normal * bary.x + patch[1].ase_normal * bary.y + patch[2].ase_normal * bary.z;
  1530. o.ase_texcoord = patch[0].ase_texcoord * bary.x + patch[1].ase_texcoord * bary.y + patch[2].ase_texcoord * bary.z;
  1531. o.ase_color = patch[0].ase_color * bary.x + patch[1].ase_color * bary.y + patch[2].ase_color * bary.z;
  1532. #if defined(ASE_PHONG_TESSELLATION)
  1533. float3 pp[3];
  1534. for (int i = 0; i < 3; ++i)
  1535. 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));
  1536. float phongStrength = _TessPhongStrength;
  1537. o.vertex.xyz = phongStrength * (pp[0]*bary.x + pp[1]*bary.y + pp[2]*bary.z) + (1.0f-phongStrength) * o.vertex.xyz;
  1538. #endif
  1539. UNITY_TRANSFER_INSTANCE_ID(patch[0], o);
  1540. return VertexFunction(o);
  1541. }
  1542. #else
  1543. VertexOutput vert ( VertexInput v )
  1544. {
  1545. return VertexFunction( v );
  1546. }
  1547. #endif
  1548. half4 frag(VertexOutput IN ) : SV_TARGET
  1549. {
  1550. SurfaceDescription surfaceDescription = (SurfaceDescription)0;
  1551. float2 texCoord13 = IN.ase_texcoord.xy * float2( 1,1 ) + float2( 0,0 );
  1552. float2 panner22 = ( 1.0 * _Time.y * _UVP + ( texCoord13 * _UVS ));
  1553. float2 texCoord6 = IN.ase_texcoord.xy * float2( 1,1 ) + float2( 0,0 );
  1554. float2 panner10 = ( 1.0 * _Time.y * _UVDP + ( texCoord6 * _UVDS ));
  1555. float2 lerpResult21 = lerp( float2( 0,0 ) , ( ( (tex2D( _DistortionTexture, panner10 )).rg + -0.5 ) * 2.0 ) , _DistortionLerp);
  1556. float2 DistortionRegister29 = ( panner22 + lerpResult21 );
  1557. float4 tex2DNode41 = tex2D( _MainTexture, DistortionRegister29 );
  1558. float mainTex_alpha46 = tex2DNode41.a;
  1559. float smoothstepResult65 = smoothstep( IN.ase_texcoord.z , ( IN.ase_texcoord.z + _ErosionSmoothness ) , mainTex_alpha46);
  1560. float mainTex_VC_alha61 = IN.ase_color.a;
  1561. float Opacity_VTC_W31 = IN.ase_texcoord.z;
  1562. float Opacity_VTC_T25 = IN.ase_texcoord.w;
  1563. float temp_output_43_0 = (( Opacity_VTC_T25 - 1.0 ) + (Opacity_VTC_W31 - 0.0) * (1.0 - ( Opacity_VTC_T25 - 1.0 )) / (1.0 - 0.0));
  1564. float2 uv_disolveMap = IN.ase_texcoord.xy * _disolveMap_ST.xy + _disolveMap_ST.zw;
  1565. float smoothstepResult59 = smoothstep( temp_output_43_0 , ( temp_output_43_0 + Opacity_VTC_T25 ) , tex2D( _disolveMap, uv_disolveMap ).r);
  1566. float disolveMapping64 = smoothstepResult59;
  1567. float OpacityRegister79 = ( ( smoothstepResult65 * mainTex_VC_alha61 ) * disolveMapping64 );
  1568. surfaceDescription.Alpha = OpacityRegister79;
  1569. surfaceDescription.AlphaClipThreshold = 0.5;
  1570. #if _ALPHATEST_ON
  1571. float alphaClipThreshold = 0.01f;
  1572. #if ALPHA_CLIP_THRESHOLD
  1573. alphaClipThreshold = surfaceDescription.AlphaClipThreshold;
  1574. #endif
  1575. clip(surfaceDescription.Alpha - alphaClipThreshold);
  1576. #endif
  1577. half4 outColor = 0;
  1578. outColor = _SelectionID;
  1579. return outColor;
  1580. }
  1581. ENDHLSL
  1582. }
  1583. Pass
  1584. {
  1585. Name "DepthNormals"
  1586. Tags { "LightMode"="DepthNormalsOnly" }
  1587. ZTest LEqual
  1588. ZWrite On
  1589. HLSLPROGRAM
  1590. #pragma multi_compile_instancing
  1591. #define ASE_SRP_VERSION 999999
  1592. #pragma only_renderers d3d11 glcore gles gles3
  1593. #pragma multi_compile_fog
  1594. #pragma instancing_options renderinglayer
  1595. #pragma vertex vert
  1596. #pragma fragment frag
  1597. #define ATTRIBUTES_NEED_NORMAL
  1598. #define ATTRIBUTES_NEED_TANGENT
  1599. #define VARYINGS_NEED_NORMAL_WS
  1600. #define SHADERPASS SHADERPASS_DEPTHNORMALSONLY
  1601. #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/Color.hlsl"
  1602. #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/Texture.hlsl"
  1603. #include "Packages/com.unity.render-pipelines.universal/ShaderLibrary/Core.hlsl"
  1604. #include "Packages/com.unity.render-pipelines.universal/ShaderLibrary/Lighting.hlsl"
  1605. #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/TextureStack.hlsl"
  1606. #include "Packages/com.unity.render-pipelines.universal/ShaderLibrary/ShaderGraphFunctions.hlsl"
  1607. #include "Packages/com.unity.render-pipelines.universal/Editor/ShaderGraph/Includes/ShaderPass.hlsl"
  1608. struct VertexInput
  1609. {
  1610. float4 vertex : POSITION;
  1611. float3 ase_normal : NORMAL;
  1612. float4 ase_texcoord : TEXCOORD0;
  1613. float4 ase_color : COLOR;
  1614. UNITY_VERTEX_INPUT_INSTANCE_ID
  1615. };
  1616. struct VertexOutput
  1617. {
  1618. float4 clipPos : SV_POSITION;
  1619. float3 normalWS : TEXCOORD0;
  1620. float4 ase_texcoord1 : TEXCOORD1;
  1621. float4 ase_color : COLOR;
  1622. UNITY_VERTEX_INPUT_INSTANCE_ID
  1623. UNITY_VERTEX_OUTPUT_STEREO
  1624. };
  1625. CBUFFER_START(UnityPerMaterial)
  1626. float4 _disolveMap_ST;
  1627. float4 _R;
  1628. float4 _G;
  1629. float4 _Outline;
  1630. float4 _B;
  1631. float2 _UVDS1;
  1632. float2 _UVDP1;
  1633. float2 _UVDP;
  1634. float2 _UVDS;
  1635. float2 _UVP;
  1636. float2 _UVS;
  1637. float _ErosionSmoothness;
  1638. float _DistortionLerp;
  1639. float _Dst;
  1640. float _Src;
  1641. float _FlatColor;
  1642. float _Intensity;
  1643. float _Cull;
  1644. float _ZTest;
  1645. float _SecondDistortionLerp;
  1646. float _ZWrite;
  1647. #ifdef TESSELLATION_ON
  1648. float _TessPhongStrength;
  1649. float _TessValue;
  1650. float _TessMin;
  1651. float _TessMax;
  1652. float _TessEdgeLength;
  1653. float _TessMaxDisp;
  1654. #endif
  1655. CBUFFER_END
  1656. sampler2D _MainTexture;
  1657. sampler2D _DistortionTexture;
  1658. sampler2D _disolveMap;
  1659. struct SurfaceDescription
  1660. {
  1661. float Alpha;
  1662. float AlphaClipThreshold;
  1663. };
  1664. VertexOutput VertexFunction(VertexInput v )
  1665. {
  1666. VertexOutput o;
  1667. ZERO_INITIALIZE(VertexOutput, o);
  1668. UNITY_SETUP_INSTANCE_ID(v);
  1669. UNITY_TRANSFER_INSTANCE_ID(v, o);
  1670. UNITY_INITIALIZE_VERTEX_OUTPUT_STEREO(o);
  1671. o.ase_texcoord1 = v.ase_texcoord;
  1672. o.ase_color = v.ase_color;
  1673. #ifdef ASE_ABSOLUTE_VERTEX_POS
  1674. float3 defaultVertexValue = v.vertex.xyz;
  1675. #else
  1676. float3 defaultVertexValue = float3(0, 0, 0);
  1677. #endif
  1678. float3 vertexValue = defaultVertexValue;
  1679. #ifdef ASE_ABSOLUTE_VERTEX_POS
  1680. v.vertex.xyz = vertexValue;
  1681. #else
  1682. v.vertex.xyz += vertexValue;
  1683. #endif
  1684. v.ase_normal = v.ase_normal;
  1685. float3 positionWS = TransformObjectToWorld( v.vertex.xyz );
  1686. float3 normalWS = TransformObjectToWorldNormal(v.ase_normal);
  1687. o.clipPos = TransformWorldToHClip(positionWS);
  1688. o.normalWS.xyz = normalWS;
  1689. return o;
  1690. }
  1691. #if defined(TESSELLATION_ON)
  1692. struct VertexControl
  1693. {
  1694. float4 vertex : INTERNALTESSPOS;
  1695. float3 ase_normal : NORMAL;
  1696. float4 ase_texcoord : TEXCOORD0;
  1697. float4 ase_color : COLOR;
  1698. UNITY_VERTEX_INPUT_INSTANCE_ID
  1699. };
  1700. struct TessellationFactors
  1701. {
  1702. float edge[3] : SV_TessFactor;
  1703. float inside : SV_InsideTessFactor;
  1704. };
  1705. VertexControl vert ( VertexInput v )
  1706. {
  1707. VertexControl o;
  1708. UNITY_SETUP_INSTANCE_ID(v);
  1709. UNITY_TRANSFER_INSTANCE_ID(v, o);
  1710. o.vertex = v.vertex;
  1711. o.ase_normal = v.ase_normal;
  1712. o.ase_texcoord = v.ase_texcoord;
  1713. o.ase_color = v.ase_color;
  1714. return o;
  1715. }
  1716. TessellationFactors TessellationFunction (InputPatch<VertexControl,3> v)
  1717. {
  1718. TessellationFactors o;
  1719. float4 tf = 1;
  1720. float tessValue = _TessValue; float tessMin = _TessMin; float tessMax = _TessMax;
  1721. float edgeLength = _TessEdgeLength; float tessMaxDisp = _TessMaxDisp;
  1722. #if defined(ASE_FIXED_TESSELLATION)
  1723. tf = FixedTess( tessValue );
  1724. #elif defined(ASE_DISTANCE_TESSELLATION)
  1725. tf = DistanceBasedTess(v[0].vertex, v[1].vertex, v[2].vertex, tessValue, tessMin, tessMax, GetObjectToWorldMatrix(), _WorldSpaceCameraPos );
  1726. #elif defined(ASE_LENGTH_TESSELLATION)
  1727. tf = EdgeLengthBasedTess(v[0].vertex, v[1].vertex, v[2].vertex, edgeLength, GetObjectToWorldMatrix(), _WorldSpaceCameraPos, _ScreenParams );
  1728. #elif defined(ASE_LENGTH_CULL_TESSELLATION)
  1729. tf = EdgeLengthBasedTessCull(v[0].vertex, v[1].vertex, v[2].vertex, edgeLength, tessMaxDisp, GetObjectToWorldMatrix(), _WorldSpaceCameraPos, _ScreenParams, unity_CameraWorldClipPlanes );
  1730. #endif
  1731. o.edge[0] = tf.x; o.edge[1] = tf.y; o.edge[2] = tf.z; o.inside = tf.w;
  1732. return o;
  1733. }
  1734. [domain("tri")]
  1735. [partitioning("fractional_odd")]
  1736. [outputtopology("triangle_cw")]
  1737. [patchconstantfunc("TessellationFunction")]
  1738. [outputcontrolpoints(3)]
  1739. VertexControl HullFunction(InputPatch<VertexControl, 3> patch, uint id : SV_OutputControlPointID)
  1740. {
  1741. return patch[id];
  1742. }
  1743. [domain("tri")]
  1744. VertexOutput DomainFunction(TessellationFactors factors, OutputPatch<VertexControl, 3> patch, float3 bary : SV_DomainLocation)
  1745. {
  1746. VertexInput o = (VertexInput) 0;
  1747. o.vertex = patch[0].vertex * bary.x + patch[1].vertex * bary.y + patch[2].vertex * bary.z;
  1748. o.ase_normal = patch[0].ase_normal * bary.x + patch[1].ase_normal * bary.y + patch[2].ase_normal * bary.z;
  1749. o.ase_texcoord = patch[0].ase_texcoord * bary.x + patch[1].ase_texcoord * bary.y + patch[2].ase_texcoord * bary.z;
  1750. o.ase_color = patch[0].ase_color * bary.x + patch[1].ase_color * bary.y + patch[2].ase_color * bary.z;
  1751. #if defined(ASE_PHONG_TESSELLATION)
  1752. float3 pp[3];
  1753. for (int i = 0; i < 3; ++i)
  1754. 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));
  1755. float phongStrength = _TessPhongStrength;
  1756. o.vertex.xyz = phongStrength * (pp[0]*bary.x + pp[1]*bary.y + pp[2]*bary.z) + (1.0f-phongStrength) * o.vertex.xyz;
  1757. #endif
  1758. UNITY_TRANSFER_INSTANCE_ID(patch[0], o);
  1759. return VertexFunction(o);
  1760. }
  1761. #else
  1762. VertexOutput vert ( VertexInput v )
  1763. {
  1764. return VertexFunction( v );
  1765. }
  1766. #endif
  1767. half4 frag(VertexOutput IN ) : SV_TARGET
  1768. {
  1769. SurfaceDescription surfaceDescription = (SurfaceDescription)0;
  1770. float2 texCoord13 = IN.ase_texcoord1.xy * float2( 1,1 ) + float2( 0,0 );
  1771. float2 panner22 = ( 1.0 * _Time.y * _UVP + ( texCoord13 * _UVS ));
  1772. float2 texCoord6 = IN.ase_texcoord1.xy * float2( 1,1 ) + float2( 0,0 );
  1773. float2 panner10 = ( 1.0 * _Time.y * _UVDP + ( texCoord6 * _UVDS ));
  1774. float2 lerpResult21 = lerp( float2( 0,0 ) , ( ( (tex2D( _DistortionTexture, panner10 )).rg + -0.5 ) * 2.0 ) , _DistortionLerp);
  1775. float2 DistortionRegister29 = ( panner22 + lerpResult21 );
  1776. float4 tex2DNode41 = tex2D( _MainTexture, DistortionRegister29 );
  1777. float mainTex_alpha46 = tex2DNode41.a;
  1778. float smoothstepResult65 = smoothstep( IN.ase_texcoord1.z , ( IN.ase_texcoord1.z + _ErosionSmoothness ) , mainTex_alpha46);
  1779. float mainTex_VC_alha61 = IN.ase_color.a;
  1780. float Opacity_VTC_W31 = IN.ase_texcoord1.z;
  1781. float Opacity_VTC_T25 = IN.ase_texcoord1.w;
  1782. float temp_output_43_0 = (( Opacity_VTC_T25 - 1.0 ) + (Opacity_VTC_W31 - 0.0) * (1.0 - ( Opacity_VTC_T25 - 1.0 )) / (1.0 - 0.0));
  1783. float2 uv_disolveMap = IN.ase_texcoord1.xy * _disolveMap_ST.xy + _disolveMap_ST.zw;
  1784. float smoothstepResult59 = smoothstep( temp_output_43_0 , ( temp_output_43_0 + Opacity_VTC_T25 ) , tex2D( _disolveMap, uv_disolveMap ).r);
  1785. float disolveMapping64 = smoothstepResult59;
  1786. float OpacityRegister79 = ( ( smoothstepResult65 * mainTex_VC_alha61 ) * disolveMapping64 );
  1787. surfaceDescription.Alpha = OpacityRegister79;
  1788. surfaceDescription.AlphaClipThreshold = 0.5;
  1789. #if _ALPHATEST_ON
  1790. clip(surfaceDescription.Alpha - surfaceDescription.AlphaClipThreshold);
  1791. #endif
  1792. #ifdef LOD_FADE_CROSSFADE
  1793. LODDitheringTransition( IN.clipPos.xyz, unity_LODFade.x );
  1794. #endif
  1795. float3 normalWS = IN.normalWS;
  1796. return half4(NormalizeNormalPerPixel(normalWS), 0.0);
  1797. }
  1798. ENDHLSL
  1799. }
  1800. Pass
  1801. {
  1802. Name "DepthNormalsOnly"
  1803. Tags { "LightMode"="DepthNormalsOnly" }
  1804. ZTest LEqual
  1805. ZWrite On
  1806. HLSLPROGRAM
  1807. #pragma multi_compile_instancing
  1808. #define ASE_SRP_VERSION 999999
  1809. #pragma exclude_renderers glcore gles gles3
  1810. #pragma vertex vert
  1811. #pragma fragment frag
  1812. #define ATTRIBUTES_NEED_NORMAL
  1813. #define ATTRIBUTES_NEED_TANGENT
  1814. #define ATTRIBUTES_NEED_TEXCOORD1
  1815. #define VARYINGS_NEED_NORMAL_WS
  1816. #define VARYINGS_NEED_TANGENT_WS
  1817. #define SHADERPASS SHADERPASS_DEPTHNORMALSONLY
  1818. #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/Color.hlsl"
  1819. #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/Texture.hlsl"
  1820. #include "Packages/com.unity.render-pipelines.universal/ShaderLibrary/Core.hlsl"
  1821. #include "Packages/com.unity.render-pipelines.universal/ShaderLibrary/Lighting.hlsl"
  1822. #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/TextureStack.hlsl"
  1823. #include "Packages/com.unity.render-pipelines.universal/ShaderLibrary/ShaderGraphFunctions.hlsl"
  1824. #include "Packages/com.unity.render-pipelines.universal/Editor/ShaderGraph/Includes/ShaderPass.hlsl"
  1825. struct VertexInput
  1826. {
  1827. float4 vertex : POSITION;
  1828. float3 ase_normal : NORMAL;
  1829. float4 ase_texcoord : TEXCOORD0;
  1830. float4 ase_color : COLOR;
  1831. UNITY_VERTEX_INPUT_INSTANCE_ID
  1832. };
  1833. struct VertexOutput
  1834. {
  1835. float4 clipPos : SV_POSITION;
  1836. float3 normalWS : TEXCOORD0;
  1837. float4 ase_texcoord1 : TEXCOORD1;
  1838. float4 ase_color : COLOR;
  1839. UNITY_VERTEX_INPUT_INSTANCE_ID
  1840. UNITY_VERTEX_OUTPUT_STEREO
  1841. };
  1842. CBUFFER_START(UnityPerMaterial)
  1843. float4 _disolveMap_ST;
  1844. float4 _R;
  1845. float4 _G;
  1846. float4 _Outline;
  1847. float4 _B;
  1848. float2 _UVDS1;
  1849. float2 _UVDP1;
  1850. float2 _UVDP;
  1851. float2 _UVDS;
  1852. float2 _UVP;
  1853. float2 _UVS;
  1854. float _ErosionSmoothness;
  1855. float _DistortionLerp;
  1856. float _Dst;
  1857. float _Src;
  1858. float _FlatColor;
  1859. float _Intensity;
  1860. float _Cull;
  1861. float _ZTest;
  1862. float _SecondDistortionLerp;
  1863. float _ZWrite;
  1864. #ifdef TESSELLATION_ON
  1865. float _TessPhongStrength;
  1866. float _TessValue;
  1867. float _TessMin;
  1868. float _TessMax;
  1869. float _TessEdgeLength;
  1870. float _TessMaxDisp;
  1871. #endif
  1872. CBUFFER_END
  1873. sampler2D _MainTexture;
  1874. sampler2D _DistortionTexture;
  1875. sampler2D _disolveMap;
  1876. struct SurfaceDescription
  1877. {
  1878. float Alpha;
  1879. float AlphaClipThreshold;
  1880. };
  1881. VertexOutput VertexFunction(VertexInput v )
  1882. {
  1883. VertexOutput o;
  1884. ZERO_INITIALIZE(VertexOutput, o);
  1885. UNITY_SETUP_INSTANCE_ID(v);
  1886. UNITY_TRANSFER_INSTANCE_ID(v, o);
  1887. UNITY_INITIALIZE_VERTEX_OUTPUT_STEREO(o);
  1888. o.ase_texcoord1 = v.ase_texcoord;
  1889. o.ase_color = v.ase_color;
  1890. #ifdef ASE_ABSOLUTE_VERTEX_POS
  1891. float3 defaultVertexValue = v.vertex.xyz;
  1892. #else
  1893. float3 defaultVertexValue = float3(0, 0, 0);
  1894. #endif
  1895. float3 vertexValue = defaultVertexValue;
  1896. #ifdef ASE_ABSOLUTE_VERTEX_POS
  1897. v.vertex.xyz = vertexValue;
  1898. #else
  1899. v.vertex.xyz += vertexValue;
  1900. #endif
  1901. v.ase_normal = v.ase_normal;
  1902. float3 positionWS = TransformObjectToWorld( v.vertex.xyz );
  1903. float3 normalWS = TransformObjectToWorldNormal(v.ase_normal);
  1904. o.clipPos = TransformWorldToHClip(positionWS);
  1905. o.normalWS.xyz = normalWS;
  1906. return o;
  1907. }
  1908. #if defined(TESSELLATION_ON)
  1909. struct VertexControl
  1910. {
  1911. float4 vertex : INTERNALTESSPOS;
  1912. float3 ase_normal : NORMAL;
  1913. float4 ase_texcoord : TEXCOORD0;
  1914. float4 ase_color : COLOR;
  1915. UNITY_VERTEX_INPUT_INSTANCE_ID
  1916. };
  1917. struct TessellationFactors
  1918. {
  1919. float edge[3] : SV_TessFactor;
  1920. float inside : SV_InsideTessFactor;
  1921. };
  1922. VertexControl vert ( VertexInput v )
  1923. {
  1924. VertexControl o;
  1925. UNITY_SETUP_INSTANCE_ID(v);
  1926. UNITY_TRANSFER_INSTANCE_ID(v, o);
  1927. o.vertex = v.vertex;
  1928. o.ase_normal = v.ase_normal;
  1929. o.ase_texcoord = v.ase_texcoord;
  1930. o.ase_color = v.ase_color;
  1931. return o;
  1932. }
  1933. TessellationFactors TessellationFunction (InputPatch<VertexControl,3> v)
  1934. {
  1935. TessellationFactors o;
  1936. float4 tf = 1;
  1937. float tessValue = _TessValue; float tessMin = _TessMin; float tessMax = _TessMax;
  1938. float edgeLength = _TessEdgeLength; float tessMaxDisp = _TessMaxDisp;
  1939. #if defined(ASE_FIXED_TESSELLATION)
  1940. tf = FixedTess( tessValue );
  1941. #elif defined(ASE_DISTANCE_TESSELLATION)
  1942. tf = DistanceBasedTess(v[0].vertex, v[1].vertex, v[2].vertex, tessValue, tessMin, tessMax, GetObjectToWorldMatrix(), _WorldSpaceCameraPos );
  1943. #elif defined(ASE_LENGTH_TESSELLATION)
  1944. tf = EdgeLengthBasedTess(v[0].vertex, v[1].vertex, v[2].vertex, edgeLength, GetObjectToWorldMatrix(), _WorldSpaceCameraPos, _ScreenParams );
  1945. #elif defined(ASE_LENGTH_CULL_TESSELLATION)
  1946. tf = EdgeLengthBasedTessCull(v[0].vertex, v[1].vertex, v[2].vertex, edgeLength, tessMaxDisp, GetObjectToWorldMatrix(), _WorldSpaceCameraPos, _ScreenParams, unity_CameraWorldClipPlanes );
  1947. #endif
  1948. o.edge[0] = tf.x; o.edge[1] = tf.y; o.edge[2] = tf.z; o.inside = tf.w;
  1949. return o;
  1950. }
  1951. [domain("tri")]
  1952. [partitioning("fractional_odd")]
  1953. [outputtopology("triangle_cw")]
  1954. [patchconstantfunc("TessellationFunction")]
  1955. [outputcontrolpoints(3)]
  1956. VertexControl HullFunction(InputPatch<VertexControl, 3> patch, uint id : SV_OutputControlPointID)
  1957. {
  1958. return patch[id];
  1959. }
  1960. [domain("tri")]
  1961. VertexOutput DomainFunction(TessellationFactors factors, OutputPatch<VertexControl, 3> patch, float3 bary : SV_DomainLocation)
  1962. {
  1963. VertexInput o = (VertexInput) 0;
  1964. o.vertex = patch[0].vertex * bary.x + patch[1].vertex * bary.y + patch[2].vertex * bary.z;
  1965. o.ase_normal = patch[0].ase_normal * bary.x + patch[1].ase_normal * bary.y + patch[2].ase_normal * bary.z;
  1966. o.ase_texcoord = patch[0].ase_texcoord * bary.x + patch[1].ase_texcoord * bary.y + patch[2].ase_texcoord * bary.z;
  1967. o.ase_color = patch[0].ase_color * bary.x + patch[1].ase_color * bary.y + patch[2].ase_color * bary.z;
  1968. #if defined(ASE_PHONG_TESSELLATION)
  1969. float3 pp[3];
  1970. for (int i = 0; i < 3; ++i)
  1971. 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));
  1972. float phongStrength = _TessPhongStrength;
  1973. o.vertex.xyz = phongStrength * (pp[0]*bary.x + pp[1]*bary.y + pp[2]*bary.z) + (1.0f-phongStrength) * o.vertex.xyz;
  1974. #endif
  1975. UNITY_TRANSFER_INSTANCE_ID(patch[0], o);
  1976. return VertexFunction(o);
  1977. }
  1978. #else
  1979. VertexOutput vert ( VertexInput v )
  1980. {
  1981. return VertexFunction( v );
  1982. }
  1983. #endif
  1984. half4 frag(VertexOutput IN ) : SV_TARGET
  1985. {
  1986. SurfaceDescription surfaceDescription = (SurfaceDescription)0;
  1987. float2 texCoord13 = IN.ase_texcoord1.xy * float2( 1,1 ) + float2( 0,0 );
  1988. float2 panner22 = ( 1.0 * _Time.y * _UVP + ( texCoord13 * _UVS ));
  1989. float2 texCoord6 = IN.ase_texcoord1.xy * float2( 1,1 ) + float2( 0,0 );
  1990. float2 panner10 = ( 1.0 * _Time.y * _UVDP + ( texCoord6 * _UVDS ));
  1991. float2 lerpResult21 = lerp( float2( 0,0 ) , ( ( (tex2D( _DistortionTexture, panner10 )).rg + -0.5 ) * 2.0 ) , _DistortionLerp);
  1992. float2 DistortionRegister29 = ( panner22 + lerpResult21 );
  1993. float4 tex2DNode41 = tex2D( _MainTexture, DistortionRegister29 );
  1994. float mainTex_alpha46 = tex2DNode41.a;
  1995. float smoothstepResult65 = smoothstep( IN.ase_texcoord1.z , ( IN.ase_texcoord1.z + _ErosionSmoothness ) , mainTex_alpha46);
  1996. float mainTex_VC_alha61 = IN.ase_color.a;
  1997. float Opacity_VTC_W31 = IN.ase_texcoord1.z;
  1998. float Opacity_VTC_T25 = IN.ase_texcoord1.w;
  1999. float temp_output_43_0 = (( Opacity_VTC_T25 - 1.0 ) + (Opacity_VTC_W31 - 0.0) * (1.0 - ( Opacity_VTC_T25 - 1.0 )) / (1.0 - 0.0));
  2000. float2 uv_disolveMap = IN.ase_texcoord1.xy * _disolveMap_ST.xy + _disolveMap_ST.zw;
  2001. float smoothstepResult59 = smoothstep( temp_output_43_0 , ( temp_output_43_0 + Opacity_VTC_T25 ) , tex2D( _disolveMap, uv_disolveMap ).r);
  2002. float disolveMapping64 = smoothstepResult59;
  2003. float OpacityRegister79 = ( ( smoothstepResult65 * mainTex_VC_alha61 ) * disolveMapping64 );
  2004. surfaceDescription.Alpha = OpacityRegister79;
  2005. surfaceDescription.AlphaClipThreshold = 0.5;
  2006. #if _ALPHATEST_ON
  2007. clip(surfaceDescription.Alpha - surfaceDescription.AlphaClipThreshold);
  2008. #endif
  2009. #ifdef LOD_FADE_CROSSFADE
  2010. LODDitheringTransition( IN.clipPos.xyz, unity_LODFade.x );
  2011. #endif
  2012. float3 normalWS = IN.normalWS;
  2013. return half4(NormalizeNormalPerPixel(normalWS), 0.0);
  2014. }
  2015. ENDHLSL
  2016. }
  2017. }
  2018. CustomEditor "UnityEditor.ShaderGraphUnlitGUI"
  2019. Fallback "Hidden/InternalErrorShader"
  2020. }
  2021. /*ASEBEGIN
  2022. Version=18935
  2023. 197.6;127.2;1654.4;800.6;5008.828;1434.673;3.711637;True;False
  2024. Node;AmplifyShaderEditor.CommentaryNode;5;-4406.739,-1557.337;Inherit;False;1992;995;Distortion;18;29;26;22;21;19;18;17;16;15;14;13;12;11;10;9;8;7;6;;0,0,0,1;0;0
  2025. Node;AmplifyShaderEditor.TextureCoordinatesNode;6;-4356.739,-867.3375;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
  2026. Node;AmplifyShaderEditor.Vector2Node;7;-4100.739,-739.3375;Inherit;False;Property;_UVDS;UV D S;17;0;Create;True;0;0;0;False;0;False;1,1;1,1;0;3;FLOAT2;0;FLOAT;1;FLOAT;2
  2027. Node;AmplifyShaderEditor.Vector2Node;9;-3844.74,-739.3375;Inherit;False;Property;_UVDP;UV D P;18;0;Create;True;0;0;0;False;0;False;0.1,-0.2;0.1,-0.2;0;3;FLOAT2;0;FLOAT;1;FLOAT;2
  2028. Node;AmplifyShaderEditor.SimpleMultiplyOpNode;8;-4100.739,-867.3375;Inherit;False;2;2;0;FLOAT2;0,0;False;1;FLOAT2;0,0;False;1;FLOAT2;0
  2029. Node;AmplifyShaderEditor.PannerNode;10;-3844.74,-867.3375;Inherit;False;3;0;FLOAT2;0,0;False;2;FLOAT2;0,0;False;1;FLOAT;1;False;1;FLOAT2;0
  2030. Node;AmplifyShaderEditor.SamplerNode;11;-3588.741,-867.3375;Inherit;True;Property;_DistortionTexture;Distortion Texture;12;0;Create;True;0;0;0;False;3;Space(13);Header(Distortion);Space(13);False;-1;98c3d568d9032a34eb5b038e20fea05d;98c3d568d9032a34eb5b038e20fea05d;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
  2031. Node;AmplifyShaderEditor.ComponentMaskNode;14;-3204.74,-867.3375;Inherit;False;True;True;False;False;1;0;COLOR;0,0,0,0;False;1;FLOAT2;0
  2032. Node;AmplifyShaderEditor.Vector2Node;12;-3460.74,-1379.337;Inherit;False;Property;_UVS;UV S;1;0;Create;True;0;0;0;False;0;False;1,1;1,1;0;3;FLOAT2;0;FLOAT;1;FLOAT;2
  2033. Node;AmplifyShaderEditor.TextureCoordinatesNode;13;-3716.74,-1507.337;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
  2034. Node;AmplifyShaderEditor.Vector2Node;16;-3204.74,-1379.337;Inherit;False;Property;_UVP;UV P;2;0;Create;True;0;0;0;False;0;False;0,0;0,0;0;3;FLOAT2;0;FLOAT;1;FLOAT;2
  2035. Node;AmplifyShaderEditor.RangedFloatNode;15;-3204.74,-995.337;Inherit;False;Property;_DistortionLerp;Distortion Lerp;14;0;Create;True;0;0;0;False;0;False;0;0;0;0.1;0;1;FLOAT;0
  2036. Node;AmplifyShaderEditor.Vector2Node;18;-3204.74,-1123.337;Inherit;False;Constant;_Vector0;Vector 0;8;0;Create;True;0;0;0;False;0;False;0,0;0,0;0;3;FLOAT2;0;FLOAT;1;FLOAT;2
  2037. Node;AmplifyShaderEditor.FunctionNode;19;-2948.74,-867.3375;Inherit;False;ConstantBiasScale;-1;;1;63208df05c83e8e49a48ffbdce2e43a0;0;3;3;FLOAT2;0,0;False;1;FLOAT;-0.5;False;2;FLOAT;2;False;1;FLOAT2;0
  2038. Node;AmplifyShaderEditor.SimpleMultiplyOpNode;17;-3460.74,-1507.337;Inherit;False;2;2;0;FLOAT2;0,0;False;1;FLOAT2;0,0;False;1;FLOAT2;0
  2039. Node;AmplifyShaderEditor.CommentaryNode;20;-4396.491,-150.5913;Inherit;False;1538.791;442.8129;Opacity;12;79;73;70;69;65;62;60;58;50;31;25;23;;0,0,0,1;0;0
  2040. Node;AmplifyShaderEditor.PannerNode;22;-3204.74,-1507.337;Inherit;False;3;0;FLOAT2;0,0;False;2;FLOAT2;0,0;False;1;FLOAT;1;False;1;FLOAT2;0
  2041. Node;AmplifyShaderEditor.TexCoordVertexDataNode;23;-4367.955,-45.42992;Inherit;False;0;4;0;5;FLOAT4;0;FLOAT;1;FLOAT;2;FLOAT;3;FLOAT;4
  2042. Node;AmplifyShaderEditor.LerpOp;21;-2820.74,-1123.337;Inherit;False;3;0;FLOAT2;0,0;False;1;FLOAT2;0,0;False;2;FLOAT;0;False;1;FLOAT2;0
  2043. Node;AmplifyShaderEditor.CommentaryNode;24;-4390.519,318.9148;Inherit;False;1486.067;526.0999;DisolveMaping;13;64;59;54;53;44;43;38;36;35;34;32;28;27;;0.1037736,0.1037736,0.1037736,1;0;0
  2044. Node;AmplifyShaderEditor.RegisterLocalVarNode;25;-4051.538,217.7457;Inherit;False;Opacity_VTC_T;-1;True;1;0;FLOAT;0;False;1;FLOAT;0
  2045. Node;AmplifyShaderEditor.SimpleAddOpNode;26;-2820.74,-1507.337;Inherit;False;2;2;0;FLOAT2;0,0;False;1;FLOAT2;0,0;False;1;FLOAT2;0
  2046. Node;AmplifyShaderEditor.CommentaryNode;30;-2350.081,-1553.506;Inherit;False;1896;1537;Color;15;76;72;71;63;61;57;56;49;48;47;46;41;40;39;33;;0,0,0,1;0;0
  2047. Node;AmplifyShaderEditor.RegisterLocalVarNode;29;-2648.479,-1505.797;Inherit;False;DistortionRegister;-1;True;1;0;FLOAT2;0,0;False;1;FLOAT2;0
  2048. Node;AmplifyShaderEditor.GetLocalVarNode;27;-4372.905,437.3667;Inherit;False;25;Opacity_VTC_T;1;0;OBJECT;;False;1;FLOAT;0
  2049. Node;AmplifyShaderEditor.RangedFloatNode;28;-4332.554,603.6216;Inherit;False;Constant;_Float2;Float 2;20;0;Create;True;0;0;0;False;0;False;1;0;0;0;0;1;FLOAT;0
  2050. Node;AmplifyShaderEditor.RegisterLocalVarNode;31;-3872.587,139.3684;Inherit;False;Opacity_VTC_W;-1;True;1;0;FLOAT;0;False;1;FLOAT;0
  2051. Node;AmplifyShaderEditor.RangedFloatNode;32;-4167.302,439.2896;Inherit;False;Constant;_Float0;Float 0;20;0;Create;True;0;0;0;False;0;False;0;0;0;0;0;1;FLOAT;0
  2052. Node;AmplifyShaderEditor.GetLocalVarNode;33;-2239.512,-474.8922;Inherit;False;29;DistortionRegister;1;0;OBJECT;;False;1;FLOAT2;0
  2053. Node;AmplifyShaderEditor.RangedFloatNode;38;-4163.238,701.5252;Inherit;False;Constant;_Float3;Float 3;20;0;Create;True;0;0;0;False;0;False;1;0;0;0;0;1;FLOAT;0
  2054. Node;AmplifyShaderEditor.SimpleSubtractOpNode;34;-4168.401,595.4957;Inherit;False;2;0;FLOAT;0;False;1;FLOAT;0;False;1;FLOAT;0
  2055. Node;AmplifyShaderEditor.RangedFloatNode;35;-4160.801,512.4284;Inherit;False;Constant;_Float1;Float 1;20;0;Create;True;0;0;0;False;0;False;1;0;0;0;0;1;FLOAT;0
  2056. Node;AmplifyShaderEditor.GetLocalVarNode;36;-4040.271,363.0916;Inherit;False;31;Opacity_VTC_W;1;0;OBJECT;;False;1;FLOAT;0
  2057. Node;AmplifyShaderEditor.TFHCRemapNode;43;-3913.589,450.4979;Inherit;False;5;0;FLOAT;0;False;1;FLOAT;0;False;2;FLOAT;1;False;3;FLOAT;0;False;4;FLOAT;1;False;1;FLOAT;0
  2058. Node;AmplifyShaderEditor.GetLocalVarNode;44;-3847.871,361.7917;Inherit;False;25;Opacity_VTC_T;1;0;OBJECT;;False;1;FLOAT;0
  2059. Node;AmplifyShaderEditor.SamplerNode;41;-1983.512,-474.8922;Inherit;True;Property;_MainTexture;Main Texture;0;0;Create;True;0;0;0;False;3;Space(13);Header(Main Texture);Space(13);False;-1;5e9cda599296bd74a9a45a7b3a63c0a9;6f0bad7c6d47efb4abe92a24bef80f7c;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
  2060. Node;AmplifyShaderEditor.SamplerNode;53;-3945.371,623.0638;Inherit;True;Property;_disolveMap;disolveMap;7;0;Create;True;0;0;0;False;3;Space(13);Header(DisolveMapping);Space(13);False;-1;None;None;True;0;False;white;Auto;False;Object;-1;Auto;Texture2D;8;0;SAMPLER2D;;False;1;FLOAT2;0,0;False;2;FLOAT;0;False;3;FLOAT2;0,0;False;4;FLOAT2;0,0;False;5;FLOAT;1;False;6;FLOAT;0;False;7;SAMPLERSTATE;;False;5;COLOR;0;FLOAT;1;FLOAT;2;FLOAT;3;FLOAT;4
  2061. Node;AmplifyShaderEditor.VertexColorNode;47;-1215.513,-858.8922;Inherit;False;0;5;COLOR;0;FLOAT;1;FLOAT;2;FLOAT;3;FLOAT;4
  2062. Node;AmplifyShaderEditor.RegisterLocalVarNode;46;-1599.513,-474.8922;Inherit;False;mainTex_alpha;-1;True;1;0;FLOAT;0;False;1;FLOAT;0
  2063. Node;AmplifyShaderEditor.RangedFloatNode;50;-4100.182,-37.49779;Inherit;False;Property;_ErosionSmoothness;Erosion Smoothness;9;0;Create;True;0;0;0;False;0;False;0.1;1.57;0.1;15;0;1;FLOAT;0
  2064. Node;AmplifyShaderEditor.SimpleAddOpNode;54;-3645.458,395.1449;Inherit;False;2;2;0;FLOAT;0;False;1;FLOAT;0;False;1;FLOAT;0
  2065. Node;AmplifyShaderEditor.GetLocalVarNode;60;-3900.109,-112.0571;Inherit;False;46;mainTex_alpha;1;0;OBJECT;;False;1;FLOAT;0
  2066. Node;AmplifyShaderEditor.SimpleAddOpNode;58;-3797.954,39.57032;Inherit;False;2;2;0;FLOAT;0;False;1;FLOAT;0;False;1;FLOAT;0
  2067. Node;AmplifyShaderEditor.SmoothstepOpNode;59;-3461.026,497.9172;Inherit;False;3;0;FLOAT;0;False;1;FLOAT;0;False;2;FLOAT;1;False;1;FLOAT;0
  2068. Node;AmplifyShaderEditor.RegisterLocalVarNode;61;-1215.513,-602.8923;Inherit;False;mainTex_VC_alha;-1;True;1;0;FLOAT;0;False;1;FLOAT;0
  2069. Node;AmplifyShaderEditor.GetLocalVarNode;62;-3705.528,-110.9707;Inherit;False;61;mainTex_VC_alha;1;0;OBJECT;;False;1;FLOAT;0
  2070. Node;AmplifyShaderEditor.RegisterLocalVarNode;64;-3256.326,503.3525;Inherit;False;disolveMapping;-1;True;1;0;FLOAT;0;False;1;FLOAT;0
  2071. Node;AmplifyShaderEditor.SmoothstepOpNode;65;-3658.053,-29.83007;Inherit;False;3;0;FLOAT;0;False;1;FLOAT;0;False;2;FLOAT;1;False;1;FLOAT;0
  2072. Node;AmplifyShaderEditor.GetLocalVarNode;69;-3540.009,167.2513;Inherit;False;64;disolveMapping;1;0;OBJECT;;False;1;FLOAT;0
  2073. Node;AmplifyShaderEditor.SimpleMultiplyOpNode;70;-3471.953,-45.42992;Inherit;False;2;2;0;FLOAT;0;False;1;FLOAT;0;False;1;FLOAT;0
  2074. Node;AmplifyShaderEditor.SimpleMultiplyOpNode;73;-3294.495,47.09986;Inherit;False;2;2;0;FLOAT;0;False;1;FLOAT;0;False;1;FLOAT;0
  2075. Node;AmplifyShaderEditor.CommentaryNode;82;526.4872,-12.89208;Inherit;False;1243;166;AR;5;103;101;99;96;88;;0,0,0,1;0;0
  2076. Node;AmplifyShaderEditor.RegisterLocalVarNode;79;-3052.477,44.47511;Inherit;False;OpacityRegister;-1;True;1;0;FLOAT;0;False;1;FLOAT;0
  2077. Node;AmplifyShaderEditor.CommentaryNode;37;-4396.601,-543.4255;Inherit;False;1665.348;371.0714;SecondDistortion;9;75;68;67;66;55;52;51;45;42;;0,0,0,1;0;0
  2078. Node;AmplifyShaderEditor.CommentaryNode;80;-2205.277,617.8608;Inherit;False;1194.858;412.5891;Depth Fade;7;107;105;87;86;85;84;83;;0,0,0,1;0;0
  2079. Node;AmplifyShaderEditor.CommentaryNode;81;-4389.937,872.5266;Inherit;False;1354.227;543.6159;VertexDisplacement;10;104;102;98;97;95;94;93;92;91;90;;0,0,0,1;0;0
  2080. Node;AmplifyShaderEditor.PannerNode;55;-3834.6,-461.0504;Inherit;False;3;0;FLOAT2;0,0;False;2;FLOAT2;0,0;False;1;FLOAT;1;False;1;FLOAT2;0
  2081. Node;AmplifyShaderEditor.NormalVertexDataNode;98;-4160.741,922.5264;Inherit;False;0;5;FLOAT3;0;FLOAT;1;FLOAT;2;FLOAT;3;FLOAT;4
  2082. Node;AmplifyShaderEditor.GetLocalVarNode;89;-703.5128,293.1082;Inherit;False;79;OpacityRegister;1;0;OBJECT;;False;1;FLOAT;0
  2083. Node;AmplifyShaderEditor.Vector2Node;42;-4090.599,-333.05;Inherit;False;Property;_UVDS1;UV D S;11;0;Create;True;0;0;0;False;0;False;1,1;1,1;0;3;FLOAT2;0;FLOAT;1;FLOAT;2
  2084. Node;AmplifyShaderEditor.RegisterLocalVarNode;90;-3273.692,1033.46;Inherit;False;VertexDisplacement;-1;True;1;0;COLOR;0,0,0,0;False;1;COLOR;0
  2085. Node;AmplifyShaderEditor.SimpleMultiplyOpNode;104;-4084.938,1132.126;Inherit;False;2;2;0;FLOAT;0;False;1;FLOAT;0;False;1;FLOAT;0
  2086. Node;AmplifyShaderEditor.LerpOp;49;-1727.513,-1114.892;Inherit;True;3;0;COLOR;0,0,0,0;False;1;COLOR;0,0,0,0;False;2;FLOAT;0;False;1;COLOR;0
  2087. Node;AmplifyShaderEditor.LerpOp;57;-1343.513,-1242.892;Inherit;True;3;0;COLOR;0,0,0,0;False;1;COLOR;0,0,0,0;False;2;FLOAT;0;False;1;COLOR;0
  2088. Node;AmplifyShaderEditor.TextureCoordinatesNode;45;-4346.601,-461.0504;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
  2089. Node;AmplifyShaderEditor.SimpleMultiplyOpNode;77;-319.5128,-90.89206;Inherit;False;2;2;0;COLOR;0,0,0,0;False;1;FLOAT;0;False;1;COLOR;0
  2090. Node;AmplifyShaderEditor.ScreenPosInputsNode;83;-2155.278,687.608;Float;False;1;False;0;5;FLOAT4;0;FLOAT;1;FLOAT;2;FLOAT;3;FLOAT;4
  2091. Node;AmplifyShaderEditor.ColorNode;39;-2239.512,-986.8922;Inherit;False;Property;_B;B;5;1;[HDR];Create;True;0;0;0;False;0;False;0.5943396,0.259371,0.09812209,0;0.2641509,0.2616589,0.2554289,0;True;0;5;COLOR;0;FLOAT;1;FLOAT;2;FLOAT;3;FLOAT;4
  2092. Node;AmplifyShaderEditor.ScreenDepthNode;84;-1950.375,667.8608;Inherit;False;1;True;1;0;FLOAT4;0,0,0,0;False;1;FLOAT;0
  2093. Node;AmplifyShaderEditor.SimpleMultiplyOpNode;87;-1409.844,779.473;Inherit;False;2;2;0;FLOAT;0;False;1;FLOAT;0;False;1;FLOAT;0
  2094. Node;AmplifyShaderEditor.ColorNode;48;-2239.512,-1242.892;Inherit;False;Property;_G;G;4;1;[HDR];Create;True;0;0;0;False;0;False;1,0.7230805,0.25,0;1,0.3523919,0,0;True;0;5;COLOR;0;FLOAT;1;FLOAT;2;FLOAT;3;FLOAT;4
  2095. Node;AmplifyShaderEditor.SimpleSubtractOpNode;107;-1724.899,763.4898;Inherit;False;2;0;FLOAT;0;False;1;FLOAT;0;False;1;FLOAT;0
  2096. Node;AmplifyShaderEditor.RangedFloatNode;103;1600.488,37.10817;Inherit;False;Property;_Dst;Dst;27;0;Create;True;0;0;0;True;0;False;10;10;0;0;0;1;FLOAT;0
  2097. Node;AmplifyShaderEditor.SimpleMultiplyOpNode;106;-319.5128,165.1082;Inherit;False;2;2;0;COLOR;0,0,0,0;False;1;COLOR;0,0,0,0;False;1;COLOR;0
  2098. Node;AmplifyShaderEditor.AbsOpNode;105;-1547.767,776.4069;Inherit;False;1;0;FLOAT;0;False;1;FLOAT;0
  2099. Node;AmplifyShaderEditor.ColorNode;40;-2239.512,-730.8922;Inherit;False;Property;_Outline;Outline;6;1;[HDR];Create;True;0;0;0;False;0;False;0.2169811,0.03320287,0.02354041,0;0,0,0,0;True;0;5;COLOR;0;FLOAT;1;FLOAT;2;FLOAT;3;FLOAT;4
  2100. Node;AmplifyShaderEditor.RangedFloatNode;72;-1087.513,-218.8921;Inherit;False;Property;_FlatColor;Flat Color;10;0;Create;True;0;0;0;False;0;False;0;0;0;1;0;1;FLOAT;0
  2101. Node;AmplifyShaderEditor.RegisterLocalVarNode;86;-1258.42,771.45;Inherit;True;DepthFadeRegister;-1;True;1;0;FLOAT;0;False;1;FLOAT;0
  2102. Node;AmplifyShaderEditor.RangedFloatNode;74;-703.5128,37.10817;Inherit;False;Property;_Intensity;Intensity;8;1;[Header];Create;True;1;TextureProps;0;0;False;1;Space(13);False;1;1;0;5;0;1;FLOAT;0
  2103. Node;AmplifyShaderEditor.RangedFloatNode;85;-1711.23,875.5078;Inherit;False;Property;_Float4;Float 4;22;0;Create;True;0;0;0;False;0;False;0;0;0;1;0;1;FLOAT;0
  2104. Node;AmplifyShaderEditor.LerpOp;76;-703.5128,-474.8922;Inherit;True;3;0;COLOR;0,0,0,0;False;1;COLOR;0,0,0,0;False;2;FLOAT;0;False;1;COLOR;0
  2105. Node;AmplifyShaderEditor.RangedFloatNode;99;576.4872,37.10817;Inherit;False;Property;_Cull;Cull;23;0;Create;True;0;0;0;True;3;Space(13);Header(AR);Space(13);False;2;2;0;0;0;1;FLOAT;0
  2106. Node;AmplifyShaderEditor.RangedFloatNode;96;1344.488,37.10817;Inherit;False;Property;_Src;Src;26;0;Create;True;0;0;0;True;0;False;5;5;0;0;0;1;FLOAT;0
  2107. Node;AmplifyShaderEditor.GetLocalVarNode;100;-703.5128,421.1082;Inherit;False;90;VertexDisplacement;1;0;OBJECT;;False;1;COLOR;0
  2108. Node;AmplifyShaderEditor.LerpOp;63;-1087.513,-1498.892;Inherit;True;3;0;COLOR;0,0,0,0;False;1;COLOR;0,0,0,0;False;2;FLOAT;0;False;1;COLOR;0
  2109. Node;AmplifyShaderEditor.RangedFloatNode;88;832.4872,37.10817;Inherit;False;Property;_ZWrite;ZWrite;24;0;Create;True;0;0;0;True;0;False;0;0;0;0;0;1;FLOAT;0
  2110. Node;AmplifyShaderEditor.SamplerNode;93;-3802.189,995.6923;Inherit;True;Property;_VertexDistortionNoise_tex;VertexDistortionNoise_tex;19;0;Create;True;0;0;0;False;0;False;-1;None;None;True;0;False;white;Auto;False;Object;-1;Auto;Texture2D;8;0;SAMPLER2D;;False;1;FLOAT2;0,0;False;2;FLOAT;0;False;3;FLOAT2;0,0;False;4;FLOAT2;0,0;False;5;FLOAT;1;False;6;FLOAT;0;False;7;SAMPLERSTATE;;False;5;COLOR;0;FLOAT;1;FLOAT;2;FLOAT;3;FLOAT;4
  2111. Node;AmplifyShaderEditor.RangedFloatNode;94;-4360.837,1190.126;Inherit;False;Property;_VertexDistortion_Speed;VertexDistortion_Speed;21;0;Create;True;0;0;0;False;0;False;0;0;0;10;0;1;FLOAT;0
  2112. Node;AmplifyShaderEditor.RangedFloatNode;101;1088.488,35.73597;Inherit;False;Property;_ZTest;ZTest;25;0;Create;True;0;0;0;True;0;False;2;2;0;0;0;1;FLOAT;0
  2113. Node;AmplifyShaderEditor.SimpleTimeNode;92;-4262.736,1100.126;Inherit;False;1;0;FLOAT;1;False;1;FLOAT;0
  2114. Node;AmplifyShaderEditor.SimpleMultiplyOpNode;97;-3733.539,1222.425;Inherit;False;2;2;0;FLOAT;0;False;1;FLOAT;0;False;1;FLOAT;0
  2115. Node;AmplifyShaderEditor.GetLocalVarNode;78;-703.5128,165.1082;Inherit;False;75;SecondDistortion;1;0;OBJECT;;False;1;COLOR;0
  2116. Node;AmplifyShaderEditor.SimpleAddOpNode;95;-3925.54,1047.326;Inherit;False;2;2;0;FLOAT3;0,0,0;False;1;FLOAT;0;False;1;FLOAT3;0
  2117. Node;AmplifyShaderEditor.SimpleMultiplyOpNode;51;-4090.599,-461.0504;Inherit;False;2;2;0;FLOAT2;0,0;False;1;FLOAT2;0,0;False;1;FLOAT2;0
  2118. Node;AmplifyShaderEditor.Vector2Node;52;-3834.6,-333.05;Inherit;False;Property;_UVDP1;UV D P;13;0;Create;True;0;0;0;False;0;False;0.1,-0.2;0.1,-0.2;0;3;FLOAT2;0;FLOAT;1;FLOAT;2
  2119. Node;AmplifyShaderEditor.RangedFloatNode;102;-4023.339,1311.024;Inherit;False;Property;_VertexDistortion_Scale;VertexDistortion_Scale;20;0;Create;True;0;0;0;False;0;False;0;0;-0.1;0.25;0;1;FLOAT;0
  2120. Node;AmplifyShaderEditor.ColorNode;56;-2239.512,-1498.892;Inherit;False;Property;_R;R;3;1;[HDR];Create;True;0;0;0;False;0;False;1,0.9719134,0.5896226,0;0.3679245,0.3679245,0.3679245,0;True;0;5;COLOR;0;FLOAT;1;FLOAT;2;FLOAT;3;FLOAT;4
  2121. Node;AmplifyShaderEditor.SamplerNode;66;-3493.306,-493.4263;Inherit;True;Property;_DistortionSecond;DistortionSecond;15;1;[Header];Create;True;1;SecondDistortion;0;0;False;1;Space(13);False;-1;None;None;True;0;False;white;Auto;False;Object;-1;Auto;Texture2D;8;0;SAMPLER2D;;False;1;FLOAT2;0,0;False;2;FLOAT;0;False;3;FLOAT2;0,0;False;4;FLOAT2;0,0;False;5;FLOAT;1;False;6;FLOAT;0;False;7;SAMPLERSTATE;;False;5;COLOR;0;FLOAT;1;FLOAT;2;FLOAT;3;FLOAT;4
  2122. Node;AmplifyShaderEditor.RegisterLocalVarNode;75;-2959.95,-342.2839;Inherit;False;SecondDistortion;-1;True;1;0;COLOR;0,0,0,0;False;1;COLOR;0
  2123. Node;AmplifyShaderEditor.RangedFloatNode;67;-3475.22,-275.5714;Inherit;False;Property;_SecondDistortionLerp;SecondDistortionLerp;16;0;Create;True;0;0;0;False;0;False;0.5;0;0.5;1;0;1;FLOAT;0
  2124. Node;AmplifyShaderEditor.SimpleAddOpNode;68;-3166.335,-344.3034;Inherit;False;2;2;0;COLOR;0,0,0,0;False;1;FLOAT;0;False;1;COLOR;0
  2125. Node;AmplifyShaderEditor.SimpleMultiplyOpNode;71;-703.5128,-986.8922;Inherit;True;2;2;0;COLOR;0,0,0,0;False;1;COLOR;0,0,0,0;False;1;COLOR;0
  2126. Node;AmplifyShaderEditor.TFHCRemapNode;91;-3481.655,1170.297;Inherit;False;5;0;COLOR;0,0,0,0;False;1;COLOR;0,0,0,0;False;2;COLOR;1,1,1,1;False;3;COLOR;0,0,0,0;False;4;COLOR;1,1,1,1;False;1;COLOR;0
  2127. Node;AmplifyShaderEditor.TemplateMultiPassMasterNode;113;59.53443,206.2779;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
  2128. Node;AmplifyShaderEditor.TemplateMultiPassMasterNode;111;59.53443,206.2779;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
  2129. Node;AmplifyShaderEditor.TemplateMultiPassMasterNode;109;59.53443,206.2779;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;2;5;True;96;10;True;103;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;True;88;True;3;True;101;True;True;0;False;-1;0;False;-1;True;1;LightMode=Universal2D;False;False;0;Hidden/InternalErrorShader;0;0;Standard;0;False;0
  2130. 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
  2131. Node;AmplifyShaderEditor.TemplateMultiPassMasterNode;112;59.53443,206.2779;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
  2132. 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
  2133. Node;AmplifyShaderEditor.TemplateMultiPassMasterNode;1;59.53443,156.2779;Float;False;True;-1;2;UnityEditor.ShaderGraphUnlitGUI;0;3;Vefects/SH_Unlit_Flipbook_URP;2992e84f91cbeb14eab234972e07ea9d;True;Forward;0;1;Forward;8;False;False;False;False;False;False;False;False;False;False;False;False;True;0;False;-1;True;True;0;True;99;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;17;d3d9;d3d11;glcore;gles;gles3;metal;vulkan;xbox360;xboxone;xboxseries;ps4;playstation;psp2;n3ds;wiiu;switch;nomrt;0;True;True;2;5;True;96;10;True;103;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;True;True;2;True;88;True;3;True;101;True;True;0;False;-1;0;False;-1;True;1;LightMode=UniversalForwardOnly;False;False;0;Hidden/InternalErrorShader;0;0;Standard;22;Surface;1;638051149049410875; Blend;0;0;Two Sided;1;0;Cast Shadows;1;0; Use Shadow Threshold;0;0;Receive Shadows;1;0;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;True;True;False;True;True;True;True;True;False;;False;0
  2134. 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
  2135. 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
  2136. Node;AmplifyShaderEditor.TemplateMultiPassMasterNode;110;59.53443,206.2779;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
  2137. Node;AmplifyShaderEditor.CommentaryNode;108;1171.885,-323.3989;Inherit;False;304;100;Lush was here! <3;0;Lush was here! <3;0,0,0,1;0;0
  2138. WireConnection;8;0;6;0
  2139. WireConnection;8;1;7;0
  2140. WireConnection;10;0;8;0
  2141. WireConnection;10;2;9;0
  2142. WireConnection;11;1;10;0
  2143. WireConnection;14;0;11;0
  2144. WireConnection;19;3;14;0
  2145. WireConnection;17;0;13;0
  2146. WireConnection;17;1;12;0
  2147. WireConnection;22;0;17;0
  2148. WireConnection;22;2;16;0
  2149. WireConnection;21;0;18;0
  2150. WireConnection;21;1;19;0
  2151. WireConnection;21;2;15;0
  2152. WireConnection;25;0;23;4
  2153. WireConnection;26;0;22;0
  2154. WireConnection;26;1;21;0
  2155. WireConnection;29;0;26;0
  2156. WireConnection;31;0;23;3
  2157. WireConnection;34;0;27;0
  2158. WireConnection;34;1;28;0
  2159. WireConnection;43;0;36;0
  2160. WireConnection;43;1;32;0
  2161. WireConnection;43;2;35;0
  2162. WireConnection;43;3;34;0
  2163. WireConnection;43;4;38;0
  2164. WireConnection;41;1;33;0
  2165. WireConnection;46;0;41;4
  2166. WireConnection;54;0;43;0
  2167. WireConnection;54;1;44;0
  2168. WireConnection;58;0;23;3
  2169. WireConnection;58;1;50;0
  2170. WireConnection;59;0;53;1
  2171. WireConnection;59;1;43;0
  2172. WireConnection;59;2;54;0
  2173. WireConnection;61;0;47;4
  2174. WireConnection;64;0;59;0
  2175. WireConnection;65;0;60;0
  2176. WireConnection;65;1;23;3
  2177. WireConnection;65;2;58;0
  2178. WireConnection;70;0;65;0
  2179. WireConnection;70;1;62;0
  2180. WireConnection;73;0;70;0
  2181. WireConnection;73;1;69;0
  2182. WireConnection;79;0;73;0
  2183. WireConnection;55;0;51;0
  2184. WireConnection;55;2;52;0
  2185. WireConnection;90;0;91;0
  2186. WireConnection;104;0;92;0
  2187. WireConnection;104;1;94;0
  2188. WireConnection;49;0;40;0
  2189. WireConnection;49;1;39;0
  2190. WireConnection;49;2;41;3
  2191. WireConnection;57;0;49;0
  2192. WireConnection;57;1;48;0
  2193. WireConnection;57;2;41;2
  2194. WireConnection;77;0;76;0
  2195. WireConnection;77;1;74;0
  2196. WireConnection;84;0;83;0
  2197. WireConnection;87;0;105;0
  2198. WireConnection;87;1;85;0
  2199. WireConnection;107;0;84;0
  2200. WireConnection;107;1;83;4
  2201. WireConnection;106;0;77;0
  2202. WireConnection;106;1;78;0
  2203. WireConnection;105;0;107;0
  2204. WireConnection;86;0;87;0
  2205. WireConnection;76;0;71;0
  2206. WireConnection;76;1;47;0
  2207. WireConnection;76;2;72;0
  2208. WireConnection;63;0;57;0
  2209. WireConnection;63;1;56;0
  2210. WireConnection;63;2;41;1
  2211. WireConnection;93;1;95;0
  2212. WireConnection;97;0;102;0
  2213. WireConnection;95;0;98;0
  2214. WireConnection;95;1;104;0
  2215. WireConnection;51;0;45;0
  2216. WireConnection;51;1;42;0
  2217. WireConnection;66;1;55;0
  2218. WireConnection;75;0;68;0
  2219. WireConnection;68;0;66;0
  2220. WireConnection;68;1;67;0
  2221. WireConnection;71;0;47;0
  2222. WireConnection;71;1;63;0
  2223. WireConnection;91;0;93;0
  2224. WireConnection;91;3;97;0
  2225. WireConnection;91;4;102;0
  2226. WireConnection;1;2;106;0
  2227. WireConnection;1;3;89;0
  2228. ASEEND*/
  2229. //CHKSM=A04B18B7C701926EFA31C04B82C222F7596968F0