- Home /
Making a character appear through 1 layer of objects but not 2 or more
Hi,
I am working on a project using Kinect and Zigfu. I have a Kinect feed object (a flat screen between the main camera and the rest of the scene) through which I want my character to appear. This works pretty well, I have written the following shader to achieve this:
Properties {
_Color ("Main Color", Color) = (1,1,1,1)
_MainTex ("Base (RGB)", 2D) = "white" {}
}
Category {
SubShader {
//sampler2D _MainTex;
Tags { "Queue"="Overlay+1" }
Pass
{
ZTest Greater
Lighting Off
SetTexture [_MainTex] {combine texture}
}
Pass
{
ZTest Less
SetTexture [_MainTex] {combine texture}
}
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"
}
However, if there is an object between this Kinect screen and the character, I want that part of the character to be occluded. Right now, the character appears through everything regardless of the number of objects standing between it and the camera. Is there a way for the character to only be rendered with 1 or less objects being between it and the camera? I have also read that I could add a second Z buffer or something, would that be a better solution?
Also I think the CPROGRAM part of my shader is not doing anything. I included that as I wanted phong/specular shading applied to my model but right now it seems as though I am only getting diffuse. Any help with this would also be greatly appreciated.
I'll answer any questions and provide more info if that makes it any easier.
Your answer
Follow this Question
Related Questions
Noob - Fern Tree Not Working Properly - Occlusion Error 2 Answers
Adding Occlusion and Specular Map to Shader? 1 Answer
Shaders and ambient occlusion 1 Answer
adapting the green screen shader from Kinect v2 package 1 Answer
Shader Problem 1 Answer