源战役客户端
Ви не можете вибрати більше 25 тем Теми мають розпочинатися з літери або цифри, можуть містити дефіси (-) і не повинні перевищувати 35 символів.

74 рядки
2.3 KiB

1 місяць тому
  1. Shader "Custom/CircleMask" {
  2. Properties {
  3. _MainTex ("MainTex", 2D) = "white" {}
  4. _MaskTex ("MaskTex", 2D) = "white" {}
  5. [HideInInspector]_Cutoff ("Alpha cutoff", Range(0,1)) = 0.5
  6. //MASK SUPPORT ADD
  7. _StencilComp ("Stencil Comparison", Float) = 8
  8. _Stencil ("Stencil ID", Float) = 0
  9. _StencilOp ("Stencil Operation", Float) = 0
  10. _StencilWriteMask ("Stencil Write Mask", Float) = 255
  11. _StencilReadMask ("Stencil Read Mask", Float) = 255
  12. _ColorMask ("Color Mask", Float) = 15
  13. //MASK SUPPORT END
  14. }
  15. SubShader {
  16. Tags {
  17. "IgnoreProjector"="True"
  18. "Queue"="Transparent"
  19. "RenderType"="Transparent"
  20. }
  21. //MASK SUPPORT ADD
  22. Stencil
  23. {
  24. Ref [_Stencil]
  25. Comp [_StencilComp]
  26. Pass [_StencilOp]
  27. ReadMask [_StencilReadMask]
  28. WriteMask [_StencilWriteMask]
  29. }
  30. ColorMask [_ColorMask]
  31. //MASK SUPPORT END
  32. Pass {
  33. Blend SrcAlpha OneMinusSrcAlpha
  34. ZWrite Off
  35. CGPROGRAM
  36. #pragma vertex vert
  37. #pragma fragment frag
  38. #include "UnityCG.cginc"
  39. #pragma target 3.0
  40. uniform sampler2D _MainTex; uniform float4 _MainTex_ST;
  41. uniform sampler2D _MaskTex; uniform float4 _MaskTex_ST;
  42. struct VertexInput {
  43. float4 vertex : POSITION;
  44. float2 texcoord0 : TEXCOORD0;
  45. };
  46. struct VertexOutput {
  47. float4 pos : SV_POSITION;
  48. float2 uv0 : TEXCOORD0;
  49. };
  50. VertexOutput vert (VertexInput v) {
  51. VertexOutput o = (VertexOutput)0;
  52. o.uv0 = v.texcoord0;
  53. o.pos = UnityObjectToClipPos( v.vertex );
  54. return o;
  55. }
  56. float4 frag(VertexOutput i) : COLOR {
  57. float4 _MainTex_var = tex2D(_MainTex,TRANSFORM_TEX(i.uv0, _MainTex));
  58. float3 finalColor = _MainTex_var.rgb;
  59. float4 _MaskTex_var = tex2D(_MaskTex,TRANSFORM_TEX(i.uv0, _MaskTex));
  60. return fixed4(finalColor,_MaskTex_var.a*_MainTex_var.a);
  61. }
  62. ENDCG
  63. }
  64. }
  65. //FallBack "Diffuse"
  66. }