spot_urp.shader 20 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434
  1. // Made with Amplify Shader Editor v1.9.1
  2. // Available at the Unity Asset Store - http://u3d.as/y3X
  3. Shader "spot_urp"
  4. {
  5. Properties
  6. {
  7. [HideInInspector] _AlphaCutoff("Alpha Cutoff ", Range(0, 1)) = 0.5
  8. [HideInInspector] _EmissionColor("Emission Color", Color) = (1,1,1,1)
  9. [ASEEnd][ASEBegin]_Color0("Color 0", Color) = (0,1,0,0)
  10. //_TessPhongStrength( "Tess Phong Strength", Range( 0, 1 ) ) = 0.5
  11. //_TessValue( "Tess Max Tessellation", Range( 1, 32 ) ) = 16
  12. //_TessMin( "Tess Min Distance", Float ) = 10
  13. //_TessMax( "Tess Max Distance", Float ) = 25
  14. //_TessEdgeLength ( "Tess Edge length", Range( 2, 50 ) ) = 16
  15. //_TessMaxDisp( "Tess Max Displacement", Float ) = 25
  16. }
  17. SubShader
  18. {
  19. LOD 0
  20. Tags { "RenderPipeline"="UniversalPipeline" "RenderType"="Transparent" "Queue"="Transparent" }
  21. Cull Back
  22. AlphaToMask Off
  23. HLSLINCLUDE
  24. #pragma target 4.6
  25. #pragma prefer_hlslcc gles
  26. // ensure rendering platforms toggle list is visible
  27. #ifndef ASE_TESS_FUNCS
  28. #define ASE_TESS_FUNCS
  29. float4 FixedTess( float tessValue )
  30. {
  31. return tessValue;
  32. }
  33. float CalcDistanceTessFactor (float4 vertex, float minDist, float maxDist, float tess, float4x4 o2w, float3 cameraPos )
  34. {
  35. float3 wpos = mul(o2w,vertex).xyz;
  36. float dist = distance (wpos, cameraPos);
  37. float f = clamp(1.0 - (dist - minDist) / (maxDist - minDist), 0.01, 1.0) * tess;
  38. return f;
  39. }
  40. float4 CalcTriEdgeTessFactors (float3 triVertexFactors)
  41. {
  42. float4 tess;
  43. tess.x = 0.5 * (triVertexFactors.y + triVertexFactors.z);
  44. tess.y = 0.5 * (triVertexFactors.x + triVertexFactors.z);
  45. tess.z = 0.5 * (triVertexFactors.x + triVertexFactors.y);
  46. tess.w = (triVertexFactors.x + triVertexFactors.y + triVertexFactors.z) / 3.0f;
  47. return tess;
  48. }
  49. float CalcEdgeTessFactor (float3 wpos0, float3 wpos1, float edgeLen, float3 cameraPos, float4 scParams )
  50. {
  51. float dist = distance (0.5 * (wpos0+wpos1), cameraPos);
  52. float len = distance(wpos0, wpos1);
  53. float f = max(len * scParams.y / (edgeLen * dist), 1.0);
  54. return f;
  55. }
  56. float DistanceFromPlane (float3 pos, float4 plane)
  57. {
  58. float d = dot (float4(pos,1.0f), plane);
  59. return d;
  60. }
  61. bool WorldViewFrustumCull (float3 wpos0, float3 wpos1, float3 wpos2, float cullEps, float4 planes[6] )
  62. {
  63. float4 planeTest;
  64. planeTest.x = (( DistanceFromPlane(wpos0, planes[0]) > -cullEps) ? 1.0f : 0.0f ) +
  65. (( DistanceFromPlane(wpos1, planes[0]) > -cullEps) ? 1.0f : 0.0f ) +
  66. (( DistanceFromPlane(wpos2, planes[0]) > -cullEps) ? 1.0f : 0.0f );
  67. planeTest.y = (( DistanceFromPlane(wpos0, planes[1]) > -cullEps) ? 1.0f : 0.0f ) +
  68. (( DistanceFromPlane(wpos1, planes[1]) > -cullEps) ? 1.0f : 0.0f ) +
  69. (( DistanceFromPlane(wpos2, planes[1]) > -cullEps) ? 1.0f : 0.0f );
  70. planeTest.z = (( DistanceFromPlane(wpos0, planes[2]) > -cullEps) ? 1.0f : 0.0f ) +
  71. (( DistanceFromPlane(wpos1, planes[2]) > -cullEps) ? 1.0f : 0.0f ) +
  72. (( DistanceFromPlane(wpos2, planes[2]) > -cullEps) ? 1.0f : 0.0f );
  73. planeTest.w = (( DistanceFromPlane(wpos0, planes[3]) > -cullEps) ? 1.0f : 0.0f ) +
  74. (( DistanceFromPlane(wpos1, planes[3]) > -cullEps) ? 1.0f : 0.0f ) +
  75. (( DistanceFromPlane(wpos2, planes[3]) > -cullEps) ? 1.0f : 0.0f );
  76. return !all (planeTest);
  77. }
  78. float4 DistanceBasedTess( float4 v0, float4 v1, float4 v2, float tess, float minDist, float maxDist, float4x4 o2w, float3 cameraPos )
  79. {
  80. float3 f;
  81. f.x = CalcDistanceTessFactor (v0,minDist,maxDist,tess,o2w,cameraPos);
  82. f.y = CalcDistanceTessFactor (v1,minDist,maxDist,tess,o2w,cameraPos);
  83. f.z = CalcDistanceTessFactor (v2,minDist,maxDist,tess,o2w,cameraPos);
  84. return CalcTriEdgeTessFactors (f);
  85. }
  86. float4 EdgeLengthBasedTess( float4 v0, float4 v1, float4 v2, float edgeLength, float4x4 o2w, float3 cameraPos, float4 scParams )
  87. {
  88. float3 pos0 = mul(o2w,v0).xyz;
  89. float3 pos1 = mul(o2w,v1).xyz;
  90. float3 pos2 = mul(o2w,v2).xyz;
  91. float4 tess;
  92. tess.x = CalcEdgeTessFactor (pos1, pos2, edgeLength, cameraPos, scParams);
  93. tess.y = CalcEdgeTessFactor (pos2, pos0, edgeLength, cameraPos, scParams);
  94. tess.z = CalcEdgeTessFactor (pos0, pos1, edgeLength, cameraPos, scParams);
  95. tess.w = (tess.x + tess.y + tess.z) / 3.0f;
  96. return tess;
  97. }
  98. float4 EdgeLengthBasedTessCull( float4 v0, float4 v1, float4 v2, float edgeLength, float maxDisplacement, float4x4 o2w, float3 cameraPos, float4 scParams, float4 planes[6] )
  99. {
  100. float3 pos0 = mul(o2w,v0).xyz;
  101. float3 pos1 = mul(o2w,v1).xyz;
  102. float3 pos2 = mul(o2w,v2).xyz;
  103. float4 tess;
  104. if (WorldViewFrustumCull(pos0, pos1, pos2, maxDisplacement, planes))
  105. {
  106. tess = 0.0f;
  107. }
  108. else
  109. {
  110. tess.x = CalcEdgeTessFactor (pos1, pos2, edgeLength, cameraPos, scParams);
  111. tess.y = CalcEdgeTessFactor (pos2, pos0, edgeLength, cameraPos, scParams);
  112. tess.z = CalcEdgeTessFactor (pos0, pos1, edgeLength, cameraPos, scParams);
  113. tess.w = (tess.x + tess.y + tess.z) / 3.0f;
  114. }
  115. return tess;
  116. }
  117. #endif //ASE_TESS_FUNCS
  118. ENDHLSL
  119. Pass
  120. {
  121. Name "Forward"
  122. Tags { "LightMode"="UniversalForward" }
  123. Blend One One, One OneMinusSrcAlpha
  124. ZWrite Off
  125. ZTest LEqual
  126. Offset 0,0
  127. ColorMask RGBA
  128. HLSLPROGRAM
  129. #define _SURFACE_TYPE_TRANSPARENT 1
  130. #define _RECEIVE_SHADOWS_OFF 1
  131. #define ASE_SRP_VERSION 100801
  132. #pragma vertex vert
  133. #pragma fragment frag
  134. #include "Packages/com.unity.render-pipelines.universal/ShaderLibrary/Core.hlsl"
  135. #include "Packages/com.unity.render-pipelines.universal/ShaderLibrary/Lighting.hlsl"
  136. #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/Color.hlsl"
  137. #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/UnityInstancing.hlsl"
  138. #include "Packages/com.unity.render-pipelines.universal/ShaderLibrary/ShaderGraphFunctions.hlsl"
  139. struct VertexInput
  140. {
  141. float4 vertex : POSITION;
  142. float3 ase_normal : NORMAL;
  143. float4 ase_texcoord : TEXCOORD0;
  144. half4 ase_color : COLOR;
  145. UNITY_VERTEX_INPUT_INSTANCE_ID
  146. };
  147. struct VertexOutput
  148. {
  149. float4 clipPos : SV_POSITION;
  150. #if defined(ASE_NEEDS_FRAG_WORLD_POSITION)
  151. float3 worldPos : TEXCOORD0;
  152. #endif
  153. #if defined(REQUIRES_VERTEX_SHADOW_COORD_INTERPOLATOR) && defined(ASE_NEEDS_FRAG_SHADOWCOORDS)
  154. float4 shadowCoord : TEXCOORD1;
  155. #endif
  156. #ifdef ASE_FOG
  157. float fogFactor : TEXCOORD2;
  158. #endif
  159. float4 ase_texcoord3 : TEXCOORD3;
  160. float4 ase_color : COLOR;
  161. UNITY_VERTEX_INPUT_INSTANCE_ID
  162. UNITY_VERTEX_OUTPUT_STEREO
  163. };
  164. CBUFFER_START(UnityPerMaterial)
  165. half4 _Color0;
  166. #ifdef ASE_TESSELLATION
  167. float _TessPhongStrength;
  168. float _TessValue;
  169. float _TessMin;
  170. float _TessMax;
  171. float _TessEdgeLength;
  172. float _TessMaxDisp;
  173. #endif
  174. CBUFFER_END
  175. VertexOutput VertexFunction ( VertexInput v )
  176. {
  177. VertexOutput o = (VertexOutput)0;
  178. UNITY_SETUP_INSTANCE_ID(v);
  179. UNITY_TRANSFER_INSTANCE_ID(v, o);
  180. UNITY_INITIALIZE_VERTEX_OUTPUT_STEREO(o);
  181. o.ase_texcoord3.xy = v.ase_texcoord.xy;
  182. o.ase_color = v.ase_color;
  183. //setting value to unused interpolator channels and avoid initialization warnings
  184. o.ase_texcoord3.zw = 0;
  185. #ifdef ASE_ABSOLUTE_VERTEX_POS
  186. float3 defaultVertexValue = v.vertex.xyz;
  187. #else
  188. float3 defaultVertexValue = float3(0, 0, 0);
  189. #endif
  190. float3 vertexValue = defaultVertexValue;
  191. #ifdef ASE_ABSOLUTE_VERTEX_POS
  192. v.vertex.xyz = vertexValue;
  193. #else
  194. v.vertex.xyz += vertexValue;
  195. #endif
  196. v.ase_normal = v.ase_normal;
  197. float3 positionWS = TransformObjectToWorld( v.vertex.xyz );
  198. float4 positionCS = TransformWorldToHClip( positionWS );
  199. #if defined(ASE_NEEDS_FRAG_WORLD_POSITION)
  200. o.worldPos = positionWS;
  201. #endif
  202. #if defined(REQUIRES_VERTEX_SHADOW_COORD_INTERPOLATOR) && defined(ASE_NEEDS_FRAG_SHADOWCOORDS)
  203. VertexPositionInputs vertexInput = (VertexPositionInputs)0;
  204. vertexInput.positionWS = positionWS;
  205. vertexInput.positionCS = positionCS;
  206. o.shadowCoord = GetShadowCoord( vertexInput );
  207. #endif
  208. #ifdef ASE_FOG
  209. o.fogFactor = ComputeFogFactor( positionCS.z );
  210. #endif
  211. o.clipPos = positionCS;
  212. return o;
  213. }
  214. #if defined(ASE_TESSELLATION)
  215. struct VertexControl
  216. {
  217. float4 vertex : INTERNALTESSPOS;
  218. float3 ase_normal : NORMAL;
  219. float4 ase_texcoord : TEXCOORD0;
  220. half4 ase_color : COLOR;
  221. UNITY_VERTEX_INPUT_INSTANCE_ID
  222. };
  223. struct TessellationFactors
  224. {
  225. float edge[3] : SV_TessFactor;
  226. float inside : SV_InsideTessFactor;
  227. };
  228. VertexControl vert ( VertexInput v )
  229. {
  230. VertexControl o;
  231. UNITY_SETUP_INSTANCE_ID(v);
  232. UNITY_TRANSFER_INSTANCE_ID(v, o);
  233. o.vertex = v.vertex;
  234. o.ase_normal = v.ase_normal;
  235. o.ase_texcoord = v.ase_texcoord;
  236. o.ase_color = v.ase_color;
  237. return o;
  238. }
  239. TessellationFactors TessellationFunction (InputPatch<VertexControl,3> v)
  240. {
  241. TessellationFactors o;
  242. float4 tf = 1;
  243. float tessValue = _TessValue; float tessMin = _TessMin; float tessMax = _TessMax;
  244. float edgeLength = _TessEdgeLength; float tessMaxDisp = _TessMaxDisp;
  245. #if defined(ASE_FIXED_TESSELLATION)
  246. tf = FixedTess( tessValue );
  247. #elif defined(ASE_DISTANCE_TESSELLATION)
  248. tf = DistanceBasedTess(v[0].vertex, v[1].vertex, v[2].vertex, tessValue, tessMin, tessMax, GetObjectToWorldMatrix(), _WorldSpaceCameraPos );
  249. #elif defined(ASE_LENGTH_TESSELLATION)
  250. tf = EdgeLengthBasedTess(v[0].vertex, v[1].vertex, v[2].vertex, edgeLength, GetObjectToWorldMatrix(), _WorldSpaceCameraPos, _ScreenParams );
  251. #elif defined(ASE_LENGTH_CULL_TESSELLATION)
  252. tf = EdgeLengthBasedTessCull(v[0].vertex, v[1].vertex, v[2].vertex, edgeLength, tessMaxDisp, GetObjectToWorldMatrix(), _WorldSpaceCameraPos, _ScreenParams, unity_CameraWorldClipPlanes );
  253. #endif
  254. o.edge[0] = tf.x; o.edge[1] = tf.y; o.edge[2] = tf.z; o.inside = tf.w;
  255. return o;
  256. }
  257. [domain("tri")]
  258. [partitioning("fractional_odd")]
  259. [outputtopology("triangle_cw")]
  260. [patchconstantfunc("TessellationFunction")]
  261. [outputcontrolpoints(3)]
  262. VertexControl HullFunction(InputPatch<VertexControl, 3> patch, uint id : SV_OutputControlPointID)
  263. {
  264. return patch[id];
  265. }
  266. [domain("tri")]
  267. VertexOutput DomainFunction(TessellationFactors factors, OutputPatch<VertexControl, 3> patch, float3 bary : SV_DomainLocation)
  268. {
  269. VertexInput o = (VertexInput) 0;
  270. o.vertex = patch[0].vertex * bary.x + patch[1].vertex * bary.y + patch[2].vertex * bary.z;
  271. o.ase_normal = patch[0].ase_normal * bary.x + patch[1].ase_normal * bary.y + patch[2].ase_normal * bary.z;
  272. o.ase_texcoord = patch[0].ase_texcoord * bary.x + patch[1].ase_texcoord * bary.y + patch[2].ase_texcoord * bary.z;
  273. o.ase_color = patch[0].ase_color * bary.x + patch[1].ase_color * bary.y + patch[2].ase_color * bary.z;
  274. #if defined(ASE_PHONG_TESSELLATION)
  275. float3 pp[3];
  276. for (int i = 0; i < 3; ++i)
  277. 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));
  278. float phongStrength = _TessPhongStrength;
  279. o.vertex.xyz = phongStrength * (pp[0]*bary.x + pp[1]*bary.y + pp[2]*bary.z) + (1.0f-phongStrength) * o.vertex.xyz;
  280. #endif
  281. UNITY_TRANSFER_INSTANCE_ID(patch[0], o);
  282. return VertexFunction(o);
  283. }
  284. #else
  285. VertexOutput vert ( VertexInput v )
  286. {
  287. return VertexFunction( v );
  288. }
  289. #endif
  290. half4 frag ( VertexOutput IN ) : SV_Target
  291. {
  292. UNITY_SETUP_INSTANCE_ID( IN );
  293. UNITY_SETUP_STEREO_EYE_INDEX_POST_VERTEX( IN );
  294. #if defined(ASE_NEEDS_FRAG_WORLD_POSITION)
  295. float3 WorldPosition = IN.worldPos;
  296. #endif
  297. float4 ShadowCoords = float4( 0, 0, 0, 0 );
  298. #if defined(ASE_NEEDS_FRAG_SHADOWCOORDS)
  299. #if defined(REQUIRES_VERTEX_SHADOW_COORD_INTERPOLATOR)
  300. ShadowCoords = IN.shadowCoord;
  301. #elif defined(MAIN_LIGHT_CALCULATE_SHADOWS)
  302. ShadowCoords = TransformWorldToShadowCoord( WorldPosition );
  303. #endif
  304. #endif
  305. half2 texCoord6 = IN.ase_texcoord3.xy * float2( 1,1 ) + float2( 0,0 );
  306. half2 temp_cast_0 = (0.5).xx;
  307. float3 BakedAlbedo = 0;
  308. float3 BakedEmission = 0;
  309. float3 Color = ( saturate( pow( ( 1.0 - length( ( texCoord6 - temp_cast_0 ) ) ) , 11.64 ) ) * _Color0 * IN.ase_color ).rgb;
  310. float Alpha = 1;
  311. float AlphaClipThreshold = 0.5;
  312. float AlphaClipThresholdShadow = 0.5;
  313. #ifdef _ALPHATEST_ON
  314. clip( Alpha - AlphaClipThreshold );
  315. #endif
  316. #ifdef LOD_FADE_CROSSFADE
  317. LODDitheringTransition( IN.clipPos.xyz, unity_LODFade.x );
  318. #endif
  319. #ifdef ASE_FOG
  320. Color = MixFog( Color, IN.fogFactor );
  321. #endif
  322. return half4( Color, Alpha );
  323. }
  324. ENDHLSL
  325. }
  326. }
  327. CustomEditor "UnityEditor.ShaderGraph.PBRMasterGUI"
  328. Fallback "Hidden/InternalErrorShader"
  329. }
  330. /*ASEBEGIN
  331. Version=19100
  332. Node;AmplifyShaderEditor.SimpleSubtractOpNode;5;-1059.584,-99.74779;Inherit;False;2;0;FLOAT2;0,0;False;1;FLOAT;0;False;1;FLOAT2;0
  333. Node;AmplifyShaderEditor.TextureCoordinatesNode;6;-1289.584,-188.7478;Inherit;False;0;-1;2;3;2;SAMPLER2D;;False;0;FLOAT2;1,1;False;1;FLOAT2;0,0;False;5;FLOAT2;0;FLOAT;1;FLOAT;2;FLOAT;3;FLOAT;4
  334. Node;AmplifyShaderEditor.RangedFloatNode;7;-1225.584,-32.74777;Inherit;False;Constant;_Float0;Float 0;0;0;Create;True;0;0;0;False;0;False;0.5;0;0;0;0;1;FLOAT;0
  335. Node;AmplifyShaderEditor.LengthOpNode;8;-919.5837,-197.7478;Inherit;True;1;0;FLOAT2;0,0;False;1;FLOAT;0
  336. Node;AmplifyShaderEditor.OneMinusNode;9;-708.6332,-177.8015;Inherit;True;1;0;FLOAT;0;False;1;FLOAT;0
  337. Node;AmplifyShaderEditor.PowerNode;10;-500.2593,-198.6389;Inherit;True;False;2;0;FLOAT;0;False;1;FLOAT;1;False;1;FLOAT;0
  338. Node;AmplifyShaderEditor.SimpleMultiplyOpNode;13;-188.8898,-18.58083;Inherit;True;3;3;0;FLOAT;0;False;1;COLOR;0,0,0,0;False;2;COLOR;0,0,0,0;False;1;COLOR;0
  339. Node;AmplifyShaderEditor.RangedFloatNode;14;-692.2786,43.56077;Inherit;False;Constant;_Float1;Float 1;2;0;Create;True;0;0;0;False;0;False;11.64;0;0;0;0;1;FLOAT;0
  340. Node;AmplifyShaderEditor.TemplateMultiPassMasterNode;23;37,-12;Float;False;False;-1;2;UnityEditor.ShaderGraph.PBRMasterGUI;0;1;New Amplify Shader;2992e84f91cbeb14eab234972e07ea9d;True;ExtraPrePass;0;0;ExtraPrePass;5;False;False;False;False;False;False;False;False;False;False;False;False;True;0;False;;False;True;0;False;;False;False;False;False;False;False;False;False;False;True;False;0;False;;255;False;;255;False;;0;False;;0;False;;0;False;;0;False;;0;False;;0;False;;0;False;;0;False;;False;False;False;False;True;3;RenderPipeline=UniversalPipeline;RenderType=Opaque=RenderType;Queue=Geometry=Queue=0;True;5;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;0;False;;255;False;;255;False;;0;False;;0;False;;0;False;;0;False;;0;False;;0;False;;0;False;;0;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
  341. Node;AmplifyShaderEditor.TemplateMultiPassMasterNode;25;37,-12;Float;False;False;-1;2;UnityEditor.ShaderGraph.PBRMasterGUI;0;1;New Amplify Shader;2992e84f91cbeb14eab234972e07ea9d;True;ShadowCaster;0;2;ShadowCaster;0;False;False;False;False;False;False;False;False;False;False;False;False;True;0;False;;False;True;0;False;;False;False;False;False;False;False;False;False;False;True;False;0;False;;255;False;;255;False;;0;False;;0;False;;0;False;;0;False;;0;False;;0;False;;0;False;;0;False;;False;False;False;False;True;3;RenderPipeline=UniversalPipeline;RenderType=Opaque=RenderType;Queue=Geometry=Queue=0;True;5;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
  342. Node;AmplifyShaderEditor.TemplateMultiPassMasterNode;26;37,-12;Float;False;False;-1;2;UnityEditor.ShaderGraph.PBRMasterGUI;0;1;New Amplify Shader;2992e84f91cbeb14eab234972e07ea9d;True;DepthOnly;0;3;DepthOnly;0;False;False;False;False;False;False;False;False;False;False;False;False;True;0;False;;False;True;0;False;;False;False;False;False;False;False;False;False;False;True;False;0;False;;255;False;;255;False;;0;False;;0;False;;0;False;;0;False;;0;False;;0;False;;0;False;;0;False;;False;False;False;False;True;3;RenderPipeline=UniversalPipeline;RenderType=Opaque=RenderType;Queue=Geometry=Queue=0;True;5;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
  343. Node;AmplifyShaderEditor.TemplateMultiPassMasterNode;27;37,-12;Float;False;False;-1;2;UnityEditor.ShaderGraph.PBRMasterGUI;0;1;New Amplify Shader;2992e84f91cbeb14eab234972e07ea9d;True;Meta;0;4;Meta;0;False;False;False;False;False;False;False;False;False;False;False;False;True;0;False;;False;True;0;False;;False;False;False;False;False;False;False;False;False;True;False;0;False;;255;False;;255;False;;0;False;;0;False;;0;False;;0;False;;0;False;;0;False;;0;False;;0;False;;False;False;False;False;True;3;RenderPipeline=UniversalPipeline;RenderType=Opaque=RenderType;Queue=Geometry=Queue=0;True;5;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
  344. Node;AmplifyShaderEditor.SaturateNode;11;-399.1652,47.21062;Inherit;False;1;0;FLOAT;0;False;1;FLOAT;0
  345. Node;AmplifyShaderEditor.TemplateMultiPassMasterNode;24;140,-26;Half;False;True;-1;2;UnityEditor.ShaderGraph.PBRMasterGUI;0;13;spot_urp;2992e84f91cbeb14eab234972e07ea9d;True;Forward;0;1;Forward;8;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;0;False;;255;False;;255;False;;0;False;;0;False;;0;False;;0;False;;0;False;;0;False;;0;False;;0;False;;False;False;False;False;True;3;RenderPipeline=UniversalPipeline;RenderType=Transparent=RenderType;Queue=Transparent=Queue=0;True;6;True;12;all;0;False;True;1;1;False;;1;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;0;False;;255;False;;255;False;;0;False;;0;False;;0;False;;0;False;;0;False;;0;False;;0;False;;0;False;;True;True;2;False;;True;0;False;;True;False;0;False;;0;False;;True;1;LightMode=UniversalForward;False;False;0;Hidden/InternalErrorShader;0;0;Standard;22;Surface;1;638376036534515089; Blend;2;638376036634118297;Two Sided;1;0;Cast Shadows;0;638376036560483764; Use Shadow Threshold;0;0;Receive Shadows;0;638376036574490175;GPU Instancing;0;638376110599050079;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;5;False;True;False;False;False;False;;False;0
  346. Node;AmplifyShaderEditor.ColorNode;12;-523.4386,138.0409;Inherit;False;Property;_Color0;Color 0;0;0;Create;True;0;0;0;False;0;False;0,1,0,0;0,0,1,0;True;0;5;COLOR;0;FLOAT;1;FLOAT;2;FLOAT;3;FLOAT;4
  347. Node;AmplifyShaderEditor.VertexColorNode;28;-472.3492,321.3797;Inherit;False;0;5;COLOR;0;FLOAT;1;FLOAT;2;FLOAT;3;FLOAT;4
  348. WireConnection;5;0;6;0
  349. WireConnection;5;1;7;0
  350. WireConnection;8;0;5;0
  351. WireConnection;9;0;8;0
  352. WireConnection;10;0;9;0
  353. WireConnection;10;1;14;0
  354. WireConnection;13;0;11;0
  355. WireConnection;13;1;12;0
  356. WireConnection;13;2;28;0
  357. WireConnection;11;0;10;0
  358. WireConnection;24;2;13;0
  359. ASEEND*/
  360. //CHKSM=F6BC6C6394A12855925C790C580FA585900DE5BE