Spine-Sprite-LW.shader 7.1 KB

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