Spine-Skeleton-Lit-ZWrite.shader 2.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384
  1. // - Vertex Lit + ShadowCaster
  2. // - Premultiplied Alpha Blending (Optional straight alpha input)
  3. // - Double-sided, ZWrite
  4. Shader "Spine/Skeleton Lit ZWrite" {
  5. Properties {
  6. _Cutoff ("Depth alpha cutoff", Range(0,1)) = 0.1
  7. _ShadowAlphaCutoff ("Shadow alpha cutoff", Range(0,1)) = 0.1
  8. [NoScaleOffset] _MainTex ("Main Texture", 2D) = "black" {}
  9. [Toggle(_STRAIGHT_ALPHA_INPUT)] _StraightAlphaInput("Straight Alpha Texture", Int) = 0
  10. [Toggle(_DOUBLE_SIDED_LIGHTING)] _DoubleSidedLighting("Double-Sided Lighting", Int) = 0
  11. [MaterialToggle(_LIGHT_AFFECTS_ADDITIVE)] _LightAffectsAdditive("Light Affects Additive", Float) = 0
  12. [HideInInspector] _StencilRef("Stencil Reference", Float) = 1.0
  13. [HideInInspector][Enum(UnityEngine.Rendering.CompareFunction)] _StencilComp("Stencil Comparison", Float) = 8 // Set to Always as default
  14. // Outline properties are drawn via custom editor.
  15. [HideInInspector] _OutlineWidth("Outline Width", Range(0,8)) = 3.0
  16. [HideInInspector] _OutlineColor("Outline Color", Color) = (1,1,0,1)
  17. [HideInInspector] _OutlineReferenceTexWidth("Reference Texture Width", Int) = 1024
  18. [HideInInspector] _ThresholdEnd("Outline Threshold", Range(0,1)) = 0.25
  19. [HideInInspector] _OutlineSmoothness("Outline Smoothness", Range(0,1)) = 1.0
  20. [HideInInspector][MaterialToggle(_USE8NEIGHBOURHOOD_ON)] _Use8Neighbourhood("Sample 8 Neighbours", Float) = 1
  21. [HideInInspector] _OutlineMipLevel("Outline Mip Level", Range(0,3)) = 0
  22. }
  23. SubShader {
  24. Tags { "Queue"="Transparent" "IgnoreProjector"="True" "RenderType"="Transparent" }
  25. LOD 100
  26. Stencil {
  27. Ref[_StencilRef]
  28. Comp[_StencilComp]
  29. Pass Keep
  30. }
  31. Pass {
  32. Name "Normal"
  33. Tags { "LightMode"="Vertex" "Queue"="Transparent" "IgnoreProjector"="true" "RenderType"="Transparent" }
  34. ZWrite On
  35. Cull Off
  36. Blend One OneMinusSrcAlpha
  37. CGPROGRAM
  38. #pragma shader_feature _ _STRAIGHT_ALPHA_INPUT
  39. #pragma shader_feature _ _DOUBLE_SIDED_LIGHTING
  40. #pragma shader_feature _ _LIGHT_AFFECTS_ADDITIVE
  41. #pragma vertex vert
  42. #pragma fragment frag
  43. #pragma target 2.0
  44. #define _ALPHA_CLIP
  45. #pragma multi_compile __ POINT SPOT
  46. #include "CGIncludes/Spine-Skeleton-Lit-Common.cginc"
  47. ENDCG
  48. }
  49. Pass {
  50. Name "Caster"
  51. Tags { "LightMode"="ShadowCaster" }
  52. Offset 1, 1
  53. Fog { Mode Off }
  54. ZWrite On
  55. ZTest LEqual
  56. Cull Off
  57. Lighting Off
  58. CGPROGRAM
  59. #pragma vertex vertShadow
  60. #pragma fragment fragShadow
  61. #pragma multi_compile_shadowcaster
  62. #pragma fragmentoption ARB_precision_hint_fastest
  63. #define SHADOW_CUTOFF _ShadowAlphaCutoff
  64. #include "CGIncludes/Spine-Skeleton-Lit-Common-Shadow.cginc"
  65. ENDCG
  66. }
  67. }
  68. CustomEditor "SpineShaderWithOutlineGUI"
  69. }