No Lighting seen through Stencil Window
I have created a red dot sight using shaders with the Stencil Buffer. Anything seen through the buffer is setting its stencil buffer value to 1. I guess that the lighting in unity is calculated using the stencil buffer so I am interfering with that.
I am trying to create the effect of a red dot sight, so the dot is only viewable through the sight. Currently, with the sight, there is no lighting to be seen, so it is quite dark looking through the sight. I have tried changing some of the comparison values, but I think I must be missing something.
Is there any way I can keep the red dot effect, while also not interfering with the lighting when looking through the sight.
Shader code Attached to the sighted viewer: Shader "Custom/Stencil/Diffuse EqualOne" {
Properties
{
_Color ("Main Color", Color) = (1,1,1,1)
_MainTex ("Base (RGB)", 2D) = "white" {}
}
SubShader
{
Tags { "RenderType" = "Opaque" "Queue" = "Geometry" }
LOD 200
Stencil
{
Ref 2
Comp equal
Pass keep
}
CGPROGRAM
#pragma surface surf Lambert
sampler2D _MainTex;
fixed4 _Color;
struct Input
{
float2 uv_MainTex;
};
void surf (Input IN, inout SurfaceOutput o)
{
fixed4 c = tex2D(_MainTex, IN.uv_MainTex) * _Color;
o.Albedo = c.rgb;
o.Alpha = c.a;
}
ENDCG
}
Fallback "VertexLit"
}
Shader Code attached to the Red Dot in the sight: Shader "Custom/Stencil/Mask OneZLess" { SubShader { Tags { "RenderType"="Opaque" "Queue"="Geometry-1" } ColorMask 0 ZWrite off
Stencil
{
Ref 2
Comp always
Pass replace
}
Pass
{
Cull Back
ZTest Less
CGPROGRAM
#pragma vertex vert
#pragma fragment frag
struct appdata
{
float4 vertex : POSITION;
};
struct v2f
{
float4 pos : SV_POSITION;
};
v2f vert(appdata v)
{
v2f o;
o.pos = mul(UNITY_MATRIX_MVP, v.vertex);
return o;
}
half4 frag(v2f i) : COLOR
{
return half4(1,1,0,1);
}
ENDCG
}
}
}
Your answer
Follow this Question
Related Questions
Unity Standard Cutout - Black Border Issues,Standard Cutout Shader - Darker Areas Bug 1 Answer
Meshes appears very dark than expectation 0 Answers
Backside of planes appear black and not transparent? (PBR Shader Graph) 0 Answers
Vertex Lit Transparent Shader problem with Z 0 Answers
Small bug? on ShaderGraph 0 Answers