- Home /
Question by
Kim-Shin-Wook-a-k-a-Forward-of-South-Korea · Mar 09, 2015 at 11:43 AM ·
shadermaterialunity5alphatransparent
[Unity5]how to change alpha by using shader.
I'm struggle to make fog of war watching this video.
https://www.youtube.com/watch?v=PNAvNeOTnSE
but I get stuck in some problem. Fog's alpha don't change!
Shader "Custom/FogOfWarMasking" {
Properties {
_Color("Main Color", Color) = (1,1,1,1)
_MainTex ("Base (RGB)", 2D) = "white" {}
}
SubShader {
Tags { "Queue"="Transparent" "RenderType"="Transparent" "LightMode"="ForwardBase"}
Blend SrcAlpha OneMinusSrcAlpha
Lighting off
LOD 200
CGPROGRAM
#pragma surface surf NoLighting noambient
fixed4 LightingNoLighting(SurfaceOutput s, fixed3 lightDir, float aten)
{
fixed4 color;
color.rgb = s.Albedo;
color.a = s.Alpha;
return color;
}
fixed4 _Color;
sampler2D _MainTex;
struct Input {
float2 uv_MainTex;
};
void surf (Input IN, inout SurfaceOutput o) {
half4 baseColor = tex2D (_MainTex, IN.uv_MainTex);
o.Albedo = _Color.rgb * baseColor.b;
o.Alpha = _Color.a - baseColor.g; //green - color of aperture mask
}
ENDCG
}
Fallback "Diffuse"
}
Everything is ok except transparent...
What was worse, set o.Alpha specific value like 0.0f, 0.5f, It doesn't work either. :(
This tutorial worked well in Unity4.x, Unity5.x not. but I don't know why alpha was not changed.
To sum up, how to change alpha to make transparent shader in Unity5?
Comment
Best Answer
Answer by Kim-Shin-Wook-a-k-a-Forward-of-South-Korea · Mar 11, 2015 at 09:33 AM
I found answer myself.
#pragma surface surf NoLighting noambient **alpha:blend**
it's worked well in unity5