AlphaMoveTurbDissolve.shader 94 KB

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