Spine-Sprite-URP.shader 6.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209
  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. [MaterialToggle(_LIGHT_AFFECTS_ADDITIVE)] _LightAffectsAdditive("Light Affects Additive", Float) = 0
  32. [HideInInspector] _SrcBlend("__src", Float) = 1.0
  33. [HideInInspector] _DstBlend("__dst", Float) = 0.0
  34. [HideInInspector] _RenderQueue("__queue", Float) = 0.0
  35. [HideInInspector] _Cull("__cull", Float) = 0.0
  36. [HideInInspector] _StencilRef("Stencil Reference", Float) = 1.0
  37. [Enum(UnityEngine.Rendering.CompareFunction)] _StencilComp("Stencil Compare", Float) = 0.0 // Disabled stencil test by default
  38. }
  39. SubShader
  40. {
  41. // Universal Pipeline tag is required. If Universal render pipeline is not set in the graphics settings
  42. // this Subshader will fail.
  43. Tags { "RenderPipeline"="UniversalPipeline" "Queue"="Transparent" "RenderType"="Sprite" "AlphaDepth"="False" "CanUseSpriteAtlas"="True" "IgnoreProjector"="True" }
  44. LOD 150
  45. Stencil {
  46. Ref[_StencilRef]
  47. Comp[_StencilComp]
  48. Pass Keep
  49. }
  50. // ------------------------------------------------------------------
  51. // Forward pass.
  52. Pass
  53. {
  54. // Lightmode matches the ShaderPassName set in UniversalRenderPipeline.cs. SRPDefaultUnlit and passes with
  55. // no LightMode tag are also rendered by Universal Render Pipeline
  56. Name "ForwardLit"
  57. Tags{"LightMode" = "UniversalForward"}
  58. Blend[_SrcBlend][_DstBlend]
  59. ZWrite[_ZWrite]
  60. Cull[_Cull]
  61. HLSLPROGRAM
  62. // Required to compile gles 2.0 with standard SRP library
  63. // All shaders must be compiled with HLSLcc and currently only gles is not using HLSLcc by default
  64. #pragma prefer_hlslcc gles
  65. #pragma exclude_renderers d3d11_9x
  66. // -------------------------------------
  67. // Material Keywords
  68. #pragma shader_feature _ _ALPHABLEND_ON _ALPHAPREMULTIPLY_ON _ALPHAPREMULTIPLY_VERTEX_ONLY _ADDITIVEBLEND _ADDITIVEBLEND_SOFT _MULTIPLYBLEND _MULTIPLYBLEND_X2
  69. #pragma shader_feature _ _FIXED_NORMALS_VIEWSPACE _FIXED_NORMALS_VIEWSPACE_BACKFACE _FIXED_NORMALS_MODELSPACE _FIXED_NORMALS_MODELSPACE_BACKFACE _FIXED_NORMALS_WORLDSPACE
  70. #pragma shader_feature _ _SPECULAR _SPECULAR_GLOSSMAP
  71. #pragma shader_feature _NORMALMAP
  72. #pragma shader_feature _ALPHA_CLIP
  73. #pragma shader_feature _EMISSION
  74. #pragma shader_feature _DIFFUSE_RAMP
  75. #pragma shader_feature _ _FULLRANGE_HARD_RAMP _FULLRANGE_SOFT_RAMP _OLD_HARD_RAMP _OLD_SOFT_RAMP
  76. #pragma shader_feature _COLOR_ADJUST
  77. #pragma shader_feature _RIM_LIGHTING
  78. #pragma shader_feature _TEXTURE_BLEND
  79. #pragma shader_feature _FOG
  80. #pragma shader_feature _RECEIVE_SHADOWS_OFF
  81. #pragma shader_feature _LIGHT_AFFECTS_ADDITIVE
  82. #pragma fragmentoption ARB_precision_hint_fastest
  83. #pragma multi_compile_fog
  84. #pragma multi_compile _ PIXELSNAP_ON
  85. // -------------------------------------
  86. // Universal Pipeline keywords
  87. #pragma multi_compile _ _MAIN_LIGHT_SHADOWS _MAIN_LIGHT_SHADOWS_CASCADE _MAIN_LIGHT_SHADOWS_SCREEN
  88. #pragma multi_compile _ _ADDITIONAL_LIGHTS_VERTEX _ADDITIONAL_LIGHTS
  89. #pragma multi_compile _ _ADDITIONAL_LIGHT_SHADOWS
  90. #pragma multi_compile _ _SHADOWS_SOFT
  91. #pragma multi_compile _ _MIXED_LIGHTING_SUBTRACTIVE
  92. // -------------------------------------
  93. // Unity defined keywords
  94. #pragma multi_compile _ DIRLIGHTMAP_COMBINED
  95. #pragma multi_compile _ LIGHTMAP_ON
  96. //--------------------------------------
  97. // GPU Instancing
  98. #pragma multi_compile_instancing
  99. //--------------------------------------
  100. // Spine related keywords
  101. #pragma shader_feature _ _STRAIGHT_ALPHA_INPUT
  102. #pragma vertex ForwardPassVertexSprite
  103. #pragma fragment ForwardPassFragmentSprite
  104. #define USE_URP
  105. #define fixed4 half4
  106. #define fixed3 half3
  107. #define fixed half
  108. #include "Include/Spine-Input-Sprite-URP.hlsl"
  109. #include "Include/Spine-Sprite-ForwardPass-URP.hlsl"
  110. ENDHLSL
  111. }
  112. Pass
  113. {
  114. Name "ShadowCaster"
  115. Tags{"LightMode" = "ShadowCaster"}
  116. ZWrite On
  117. ZTest LEqual
  118. Cull Off
  119. HLSLPROGRAM
  120. // Required to compile gles 2.0 with standard srp library
  121. #pragma prefer_hlslcc gles
  122. #pragma exclude_renderers d3d11_9x
  123. #pragma target 2.0
  124. // -------------------------------------
  125. // Material Keywords
  126. #pragma shader_feature _ALPHATEST_ON
  127. //--------------------------------------
  128. // GPU Instancing
  129. #pragma multi_compile_instancing
  130. #pragma shader_feature _SMOOTHNESS_TEXTURE_ALBEDO_CHANNEL_A
  131. #pragma vertex ShadowPassVertexSprite
  132. #pragma fragment ShadowPassFragmentSprite
  133. #define USE_URP
  134. #define fixed4 half4
  135. #define fixed3 half3
  136. #define fixed half
  137. #include "Include/Spine-Input-Sprite-URP.hlsl"
  138. #include "Include/Spine-Sprite-ShadowCasterPass-URP.hlsl"
  139. ENDHLSL
  140. }
  141. Pass
  142. {
  143. Name "DepthOnly"
  144. Tags{"LightMode" = "DepthOnly"}
  145. ZWrite On
  146. ColorMask 0
  147. Cull Off
  148. HLSLPROGRAM
  149. // Required to compile gles 2.0 with standard srp library
  150. #pragma prefer_hlslcc gles
  151. #pragma exclude_renderers d3d11_9x
  152. #pragma vertex DepthOnlyVertexSprite
  153. #pragma fragment DepthOnlyFragmentSprite
  154. // -------------------------------------
  155. // Material Keywords
  156. #pragma shader_feature _ALPHATEST_ON
  157. #pragma shader_feature _SMOOTHNESS_TEXTURE_ALBEDO_CHANNEL_A
  158. //--------------------------------------
  159. // GPU Instancing
  160. #pragma multi_compile_instancing
  161. #define USE_URP
  162. #define fixed4 half4
  163. #define fixed3 half3
  164. #define fixed half
  165. #include "Include/Spine-Input-Sprite-URP.hlsl"
  166. #include "Include/Spine-Sprite-DepthOnlyPass-URP.hlsl"
  167. ENDHLSL
  168. }
  169. }
  170. FallBack "Hidden/InternalErrorShader"
  171. CustomEditor "SpineSpriteShaderGUI"
  172. }