- Home /
Shader is not displaying alpha correctly
Hi. This is my first time trying to edit a shader.
Here's the thing: I have to fade a GameObject, until it gets completely transparent. Things are working fine when I have a shader that natively supports transparency (like Transparent/Diffuse, and the others from the Transparent family).
But I have this model that uses a material with a Self-Illumin/Diffuse shader. There is no equivalent on the Transparent family, so I decided to try and edit it.
Here's what I did:
Shader "Jungle/Self-Illumin/Diffuse" {
Properties {
_Color ("Main Color", Color) = (1,1,1,1)
_MainTex ("Base (RGB) Gloss (A)", 2D) = "white" {}
_Illum ("Illumin (A)", 2D) = "white" {}
_EmissionLM ("Emission (Lightmapper)", Float) = 0
}
SubShader {
Tags { "RenderType"="Transparent" "Queue"="Transparent"}
Blend SrcAlpha OneMinusSrcAlpha
LOD 200
CGPROGRAM
#pragma surface surf Lambert
sampler2D _MainTex;
sampler2D _Illum;
fixed4 _Color;
struct Input {
float2 uv_MainTex;
float2 uv_Illum;
};
void surf (Input IN, inout SurfaceOutput o) {
fixed4 tex = tex2D(_MainTex, IN.uv_MainTex);
fixed4 c = tex * _Color;
o.Albedo = c.rgb;
o.Emission = c.rgb * tex2D(_Illum, IN.uv_Illum).a;
o.Alpha = c.a;
}
ENDCG
}
FallBack "Self-Illumin/VertexLit"
}
I basically added the Blend line after the SubShader was declared. When I do this, the shader fades out the object correctly, but it doesn't show what's behind the object. For some reason, it blends with the terrain texture, but 3D objects are not rendered if they are behind a faded-out object with this shader.
I've also tried adding the "alpha" keyword to the #pragma, and it fixed the problem. But then, my objects were not faded out and I could see what was behind them, like if they were transparent.
Any insights here? I'm really lost. I'm new to shader writing.
Thanks.
Your answer
Follow this Question
Related Questions
Shaders -- Tinting while respecting texture alpha 0 Answers
Transparent / Vertex Lit Ignore Sides 1 Answer
Cutout Shader getting Opaque when turning alpha off and on again 1 Answer
Add transparency to clipping plane shader 0 Answers
Issues with fade Transparency overlaping front polygons in a same Mesh. 1 Answer