I wan't to produce a semi transparent overlay over my UI for which I'm using this simple variant of the standard surface shader in with added transparency: Code (CSharp): Shader "Custom/FakeUIMaskShader" { Properties { _Color ("Color", Color) = (1,1,1,1) _MainTex ("Albedo (RGB)", 2D) = "white" {} _Glossiness ("Smoothness", Range(0,1)) = 0.5 _Metallic ("Metallic", Range(0,1)) = 0.0 } SubShader { Tags { "Queue" = "Overlay+1" "IgnoreProjector" = "True" "RenderType" = "Transparent" } LOD 100 Stencil { Ref 2 Comp Equal } CGPROGRAM // Physically based Standard lighting model, and enable shadows on all light types #pragma surface surf Standard fullforwardshadows alpha // Use shader model 3.0 target, to get nicer looking lighting #pragma target 3.0 sampler2D _MainTex; struct Input { float2 uv_MainTex; }; half _Glossiness; half _Metallic; fixed4 _Color; // Add instancing support for this shader. You need to check 'Enable Instancing' on materials that use the shader. // See https://docs.unity3d.com/Manual/GPUInstancing.html for more information about instancing. // #pragma instancing_options assumeuniformscaling UNITY_INSTANCING_BUFFER_START(Props) // put more per-instance properties here UNITY_INSTANCING_BUFFER_END(Props) void surf (Input IN, inout SurfaceOutputStandard o) { // Albedo comes from a texture tinted by color fixed4 c = tex2D (_MainTex, IN.uv_MainTex) * _Color; o.Albedo = c.rgb; // Metallic and smoothness come from slider variables o.Metallic = _Metallic; o.Smoothness = _Glossiness; o.Alpha = c.a; } ENDCG } FallBack "Diffuse" } This works fine as long as the object is't in front of my Screen Space Camera UI (UI elements all are using the default unity UI shader). If the object is in front of the UI the UI get's rendered over the object like this: See the red part is hidden behind the UI inspite of the object (selected) is in front of the UI. If I remove the alpha pragma, everything works fine (except the transparency missing of course): The fact that this uses a stencil should be irrelevant, as this also happens when removing the stencil part. Is there anything I'm missing? Thanks in advance!
Hi, I just ran into a similar problem and solved with adding the two line in Pass function Code (CSharp): SubShader { Pass { ZWrite On ColorMask 0 } }