- Home /
Removing the Texture BUT keeping the outline of an Object once it is behind an obstacle.
I have been trying for ages to combine the first and last outline script of this but to no avail. I have managed to get both the texture and the "outline" to show up with Ztest but im trying to get rid of the texture if the object is hidden. Here is my code so far:
Shader "Outlined/Silhouette Only" {
Properties {
_Color ("Main Color", Color) = (.5,.5,.5,1)
_OutlineColor ("Outline Color", Color) = (0,0,0,1)
_Outline ("Outline width", Range (0.0, 0.03)) = .005
_MainTex ("Base (RGB)", 2D) = "white" { }
_BumpMap ("Bumpmap", 2D) = "bump" {}
}
CGINCLUDE
#include "UnityCG.cginc"
struct appdata {
float4 vertex : POSITION;
float3 normal : NORMAL;
};
struct v2f {
float4 pos : POSITION;
float4 color : COLOR;
};
uniform float _Outline;
uniform float4 _OutlineColor;
v2f vert(appdata v) {
// just make a copy of incoming vertex data but scaled according to normal direction
v2f o;
o.pos = mul(UNITY_MATRIX_MVP, v.vertex);
float3 norm = mul ((float3x3)UNITY_MATRIX_IT_MV, v.normal);
float2 offset = TransformViewToProjection(norm.xy);
o.pos.xy += offset * o.pos.z * _Outline;
o.color = _OutlineColor;
return o;
}
ENDCG
SubShader {
Tags { "Queue" = "Transparent" }
Pass {
Name "BASE"
Cull Back
Blend Zero One
SetTexture [_OutlineColor] {
ConstantColor (0,0,0,0)
Combine constant
}
}
Pass {
Name "OUTLINE"
Tags { "LightMode" = "Always" }
Cull Front
ZTest Always
Blend One OneMinusDstColor
CGPROGRAM
#pragma vertex vert
#pragma fragment frag
half4 frag(v2f i) :COLOR {
return i.color;
}
ENDCG
}
CGPROGRAM
#pragma surface surf Lambert
struct Input {
float2 uv_MainTex;
float2 uv_BumpMap;
};
sampler2D _MainTex;
sampler2D _BumpMap;
uniform float3 _Color;
void surf(Input IN, inout SurfaceOutput o) {
o.Albedo = tex2D(_MainTex, IN.uv_MainTex).rgb * _Color;
//o.Normal = UnpackNormal(tex2D(_BumpMap, IN.uv_BumpMap));
}
ENDCG
}
Fallback "Diffuse"
}
Here is a screenshot of my current scene
And here is what I want to appear once the skeleton is hidden.
If I find the solution myself il let you guys know.
Comment
Your answer
Follow this Question
Related Questions
Multiple Cars not working 1 Answer
Ramp shader with outline ? 0 Answers
Problem with Unity 0 Answers
Make the first person controller transparent? 1 Answer
Giving MatCap_TextureAdd a black outline 0 Answers