AlphaMoveTurbDissolve.shader 84 KB

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