Spine-Sprite-URP.shader 6.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210
  1. Shader "Universal Render Pipeline/Spine/Sprite"
  2. {
  3. Properties
  4. {
  5. _MainTex("Main Texture", 2D) = "white" {}
  6. _Color("Color", Color) = (1,1,1,1)
  7. _BumpScale("Scale", Float) = 1.0
  8. _BumpMap("Normal Map", 2D) = "bump" {}
  9. [MaterialToggle] PixelSnap("Pixel snap", Float) = 0
  10. _EmissionColor("Color", Color) = (0,0,0,0)
  11. _EmissionMap("Emission", 2D) = "white" {}
  12. _EmissionPower("Emission Power", Float) = 2.0
  13. _Glossiness("Smoothness", Range(0.0, 1.0)) = 0.5
  14. _GlossMapScale("Smoothness Scale", Range(0.0, 1.0)) = 1.0
  15. [Gamma] _Metallic("Metallic", Range(0.0, 1.0)) = 0.0
  16. _MetallicGlossMap("Metallic", 2D) = "white" {}
  17. _DiffuseRamp("Diffuse Ramp Texture", 2D) = "gray" {}
  18. _FixedNormal("Fixed Normal", Vector) = (0,0,1,1)
  19. _ZWrite("Depth Write", Float) = 0.0
  20. _Cutoff("Depth alpha cutoff", Range(0,1)) = 0.0
  21. _ShadowAlphaCutoff("Shadow alpha cutoff", Range(0,1)) = 0.1
  22. _CustomRenderQueue("Custom Render Queue", Float) = 0.0
  23. _OverlayColor("Overlay Color", Color) = (0,0,0,0)
  24. _Hue("Hue", Range(-0.5,0.5)) = 0.0
  25. _Saturation("Saturation", Range(0,2)) = 1.0
  26. _Brightness("Brightness", Range(0,2)) = 1.0
  27. _RimPower("Rim Power", Float) = 2.0
  28. _RimColor("Rim Color", Color) = (1,1,1,1)
  29. _BlendTex("Blend Texture", 2D) = "white" {}
  30. _BlendAmount("Blend", Range(0,1)) = 0.0
  31. [HideInInspector] _SrcBlend("__src", Float) = 1.0
  32. [HideInInspector] _DstBlend("__dst", Float) = 0.0
  33. [HideInInspector] _RenderQueue("__queue", Float) = 0.0
  34. [HideInInspector] _Cull("__cull", Float) = 0.0
  35. [HideInInspector] _StencilRef("Stencil Reference", Float) = 1.0
  36. [Enum(UnityEngine.Rendering.CompareFunction)] _StencilComp("Stencil Compare", Float) = 0.0 // Disabled stencil test by default
  37. }
  38. SubShader
  39. {
  40. // Universal Pipeline tag is required. If Universal render pipeline is not set in the graphics settings
  41. // this Subshader will fail.
  42. Tags { "RenderPipeline"="UniversalPipeline" "Queue"="Transparent" "RenderType"="Sprite" "AlphaDepth"="False" "CanUseSpriteAtlas"="True" "IgnoreProjector"="True" }
  43. LOD 150
  44. Stencil {
  45. Ref[_StencilRef]
  46. Comp[_StencilComp]
  47. Pass Keep
  48. }
  49. // ------------------------------------------------------------------
  50. // Forward pass.
  51. Pass
  52. {
  53. // Lightmode matches the ShaderPassName set in UniversalRenderPipeline.cs. SRPDefaultUnlit and passes with
  54. // no LightMode tag are also rendered by Universal Render Pipeline
  55. Name "ForwardLit"
  56. Tags{"LightMode" = "UniversalForward"}
  57. Blend[_SrcBlend][_DstBlend]
  58. ZWrite[_ZWrite]
  59. Cull[_Cull]
  60. HLSLPROGRAM
  61. // Required to compile gles 2.0 with standard SRP library
  62. // All shaders must be compiled with HLSLcc and currently only gles is not using HLSLcc by default
  63. #pragma prefer_hlslcc gles
  64. #pragma exclude_renderers d3d11_9x
  65. // -------------------------------------
  66. // Material Keywords
  67. #pragma shader_feature _ _ALPHABLEND_ON _ALPHAPREMULTIPLY_ON _ADDITIVEBLEND _ADDITIVEBLEND_SOFT _MULTIPLYBLEND _MULTIPLYBLEND_X2
  68. #pragma shader_feature _ _FIXED_NORMALS_VIEWSPACE _FIXED_NORMALS_VIEWSPACE_BACKFACE _FIXED_NORMALS_MODELSPACE _FIXED_NORMALS_MODELSPACE_BACKFACE _FIXED_NORMALS_WORLDSPACE
  69. #pragma shader_feature _ _SPECULAR _SPECULAR_GLOSSMAP
  70. #pragma shader_feature _NORMALMAP
  71. #pragma shader_feature _ALPHA_CLIP
  72. #pragma shader_feature _EMISSION
  73. #pragma shader_feature _DIFFUSE_RAMP
  74. #pragma shader_feature _COLOR_ADJUST
  75. #pragma shader_feature _RIM_LIGHTING
  76. #pragma shader_feature _TEXTURE_BLEND
  77. #pragma shader_feature _FOG
  78. #pragma shader_feature _RECEIVE_SHADOWS_OFF
  79. #pragma fragmentoption ARB_precision_hint_fastest
  80. #pragma multi_compile_fog
  81. #pragma multi_compile _ PIXELSNAP_ON
  82. #pragma multi_compile _ ETC1_EXTERNAL_ALPHA
  83. // -------------------------------------
  84. // Universal Pipeline keywords
  85. #pragma multi_compile _ _MAIN_LIGHT_SHADOWS
  86. #pragma multi_compile _ MAIN_LIGHT_CALCULATE_SHADOWS
  87. #pragma multi_compile _ REQUIRES_VERTEX_SHADOW_COORD_INTERPOLATOR
  88. #pragma multi_compile _ _MAIN_LIGHT_SHADOWS_CASCADE
  89. #pragma multi_compile _ _ADDITIONAL_LIGHTS_VERTEX _ADDITIONAL_LIGHTS
  90. #pragma multi_compile _ _ADDITIONAL_LIGHT_SHADOWS
  91. #pragma multi_compile _ _SHADOWS_SOFT
  92. #pragma multi_compile _ _MIXED_LIGHTING_SUBTRACTIVE
  93. // -------------------------------------
  94. // Unity defined keywords
  95. #pragma multi_compile _ DIRLIGHTMAP_COMBINED
  96. #pragma multi_compile _ LIGHTMAP_ON
  97. #pragma multi_compile_fog
  98. //--------------------------------------
  99. // GPU Instancing
  100. #pragma multi_compile_instancing
  101. //--------------------------------------
  102. // Spine related keywords
  103. #pragma shader_feature _ _STRAIGHT_ALPHA_INPUT
  104. #pragma vertex ForwardPassVertexSprite
  105. #pragma fragment ForwardPassFragmentSprite
  106. #define USE_URP
  107. #define fixed4 half4
  108. #define fixed3 half3
  109. #define fixed half
  110. #include "Include/Spine-Input-Sprite-URP.hlsl"
  111. #include "Include/Spine-Sprite-ForwardPass-URP.hlsl"
  112. ENDHLSL
  113. }
  114. Pass
  115. {
  116. Name "ShadowCaster"
  117. Tags{"LightMode" = "ShadowCaster"}
  118. ZWrite On
  119. ZTest LEqual
  120. Cull Off
  121. HLSLPROGRAM
  122. // Required to compile gles 2.0 with standard srp library
  123. #pragma prefer_hlslcc gles
  124. #pragma exclude_renderers d3d11_9x
  125. #pragma target 2.0
  126. // -------------------------------------
  127. // Material Keywords
  128. #pragma shader_feature _ALPHATEST_ON
  129. //--------------------------------------
  130. // GPU Instancing
  131. #pragma multi_compile_instancing
  132. #pragma shader_feature _SMOOTHNESS_TEXTURE_ALBEDO_CHANNEL_A
  133. #pragma vertex ShadowPassVertexSprite
  134. #pragma fragment ShadowPassFragmentSprite
  135. #define USE_URP
  136. #define fixed4 half4
  137. #define fixed3 half3
  138. #define fixed half
  139. #include "Include/Spine-Input-Sprite-URP.hlsl"
  140. #include "Include/Spine-Sprite-ShadowCasterPass-URP.hlsl"
  141. ENDHLSL
  142. }
  143. Pass
  144. {
  145. Name "DepthOnly"
  146. Tags{"LightMode" = "DepthOnly"}
  147. ZWrite On
  148. ColorMask 0
  149. Cull Off
  150. HLSLPROGRAM
  151. // Required to compile gles 2.0 with standard srp library
  152. #pragma prefer_hlslcc gles
  153. #pragma exclude_renderers d3d11_9x
  154. #pragma vertex DepthOnlyVertexSprite
  155. #pragma fragment DepthOnlyFragmentSprite
  156. // -------------------------------------
  157. // Material Keywords
  158. #pragma shader_feature _ALPHATEST_ON
  159. #pragma shader_feature _SMOOTHNESS_TEXTURE_ALBEDO_CHANNEL_A
  160. //--------------------------------------
  161. // GPU Instancing
  162. #pragma multi_compile_instancing
  163. #define USE_URP
  164. #define fixed4 half4
  165. #define fixed3 half3
  166. #define fixed half
  167. #include "Include/Spine-Input-Sprite-URP.hlsl"
  168. #include "Include/Spine-Sprite-DepthOnlyPass-URP.hlsl"
  169. ENDHLSL
  170. }
  171. }
  172. FallBack "Hidden/InternalErrorShader"
  173. CustomEditor "SpineSpriteShaderGUI"
  174. }