源战役客户端
Nevar pievienot vairāk kā 25 tēmas Tēmai ir jāsākas ar burtu vai ciparu, tā var saturēt domu zīmes ('-') un var būt līdz 35 simboliem gara.

141 rinda
3.5 KiB

pirms 1 mēnesi
  1. // Upgrade NOTE: replaced 'mul(UNITY_MATRIX_MVP,*)' with 'UnityObjectToClipPos(*)'
  2. Shader "UIMask/AdditiveMask" {
  3. Properties {
  4. _TintColor ("Tint Color", Color) = (0.5,0.5,0.5,0.5)
  5. _MainTex ("Particle Texture", 2D) = "white" {}
  6. _InvFade ("Soft Particles Factor", Range(0.01,3.0)) = 1.0
  7. //-------------------add----------------------
  8. _MaskTex("MaskTexture",2D) = "white"{}
  9. _MinX("Min X", Float) = -10
  10. _MaxX("Max X", Float) = 10
  11. _MinY("Min Y", Float) = -10
  12. _MaxY("Max Y", Float) = 10
  13. //-------------------add---------------------
  14. }
  15. Category {
  16. Tags { "Queue"="Transparent" "IgnoreProjector"="True" "RenderType"="Transparent" }
  17. Blend SrcAlpha One
  18. AlphaTest Greater .01
  19. ColorMask RGB
  20. Cull Off Lighting Off ZWrite Off Fog { Color (0,0,0,0) }
  21. BindChannels {
  22. Bind "Color", color
  23. Bind "Vertex", vertex
  24. Bind "TexCoord", texcoord
  25. }
  26. // ---- Fragment program cards
  27. SubShader {
  28. Pass {
  29. CGPROGRAM
  30. #pragma vertex vert
  31. #pragma fragment frag
  32. #pragma fragmentoption ARB_precision_hint_fastest
  33. #pragma multi_compile_particles
  34. #include "UnityCG.cginc"
  35. sampler2D _MainTex;
  36. fixed4 _TintColor;
  37. //-------------------add----------------------
  38. sampler2D _MaskTex;
  39. float _MinX;
  40. float _MaxX;
  41. float _MinY;
  42. float _MaxY;
  43. //-------------------add----------------------
  44. struct appdata_t {
  45. float4 vertex : POSITION;
  46. fixed4 color : COLOR;
  47. float2 texcoord : TEXCOORD0;
  48. };
  49. struct v2f {
  50. float4 vertex : POSITION;
  51. fixed4 color : COLOR;
  52. float2 texcoord : TEXCOORD0;
  53. #ifdef SOFTPARTICLES_ON
  54. float4 projPos : TEXCOORD1;
  55. #endif
  56. //-------------------add----------------------
  57. float3 vpos : TEXCOORD2;
  58. //-------------------add----------------------
  59. };
  60. float4 _MainTex_ST;
  61. v2f vert (appdata_t v)
  62. {
  63. v2f o;
  64. o.vertex = UnityObjectToClipPos(v.vertex);
  65. #ifdef SOFTPARTICLES_ON
  66. o.projPos = ComputeScreenPos (o.vertex);
  67. COMPUTE_EYEDEPTH(o.projPos.z);
  68. #endif
  69. o.color = v.color;
  70. o.texcoord = TRANSFORM_TEX(v.texcoord,_MainTex);
  71. //-------------------add----------------------
  72. o.vpos = mul(unity_ObjectToWorld, v.vertex).xyz;
  73. //-------------------add----------------------
  74. return o;
  75. }
  76. sampler2D _CameraDepthTexture;
  77. float _InvFade;
  78. fixed4 frag (v2f i) : COLOR
  79. {
  80. #ifdef SOFTPARTICLES_ON
  81. float sceneZ = LinearEyeDepth (UNITY_SAMPLE_DEPTH(tex2Dproj(_CameraDepthTexture, UNITY_PROJ_COORD(i.projPos))));
  82. float partZ = i.projPos.z;
  83. float fade = saturate (_InvFade * (sceneZ-partZ));
  84. i.color.a *= fade;
  85. #endif
  86. fixed4 c = 2.0f * i.color * _TintColor * tex2D(_MainTex, i.texcoord);
  87. //-------------------add----------------------
  88. fixed2 mask_uv = fixed2((i.vpos.x - _MinX) / (_MaxX - _MinX), (i.vpos.y - _MinY) / (_MaxY - _MinY));
  89. fixed4 mask_col = tex2D(_MaskTex, mask_uv);
  90. mask_col.a *= (i.vpos.x >= _MinX);
  91. mask_col.a *= (i.vpos.x <= _MaxX);
  92. mask_col.a *= (i.vpos.y >= _MinY);
  93. mask_col.a *= (i.vpos.y <= _MaxY);
  94. //c.a = mask_col.a;
  95. clip(mask_col.a - 0.6);
  96. //return (1, 0, 0, mask_col.a);
  97. return c;
  98. //-------------------add----------------------
  99. }
  100. ENDCG
  101. }
  102. }
  103. // ---- Dual texture cards
  104. SubShader {
  105. Pass {
  106. SetTexture [_MainTex] {
  107. constantColor [_TintColor]
  108. combine constant * primary
  109. }
  110. SetTexture [_MainTex] {
  111. combine texture * previous DOUBLE
  112. }
  113. }
  114. }
  115. // ---- Single texture cards (does not do color tint)
  116. SubShader {
  117. Pass {
  118. SetTexture [_MainTex] {
  119. combine texture * primary
  120. }
  121. }
  122. }
  123. }
  124. }