- Home /
How to manipulate a shader's alpha channel while using a texture?
New to shaders here so I hope my explanation of the shader I'm using is correct... here we go.
I'm using a shader that takes a texture, then I believe the .r (R of RGB?) and cycles through the colors. The following 3 code snippets are variations of just the frag portion of the shader. This first snippet shows the shader working as is, cycling through the colors.
fixed4 frag(v2f_img i) : COLOR
{
fixed4 col = tex2D(_MainTex, i.uv);
return tex2D(_RampTex, fixed2(col.r + _Time.x * _Speed, 0.5));
}
I want to manipulate the Alpha channel, so I can not only cycle through the colors of the texture, but also make it semi-transparent. This is where I'm running into issues. I have figured out how to control the Alpha channel as can be seen below (I'm able to manually pick a color, and manipulate it's alpha channel, but the cycling through colors does not work):
fixed4 frag (v2f_img i) : COLOR
{
fixed4 col = tex2D(_MainTex, i.uv) * _Color;
col.a = 0.5;
return col;
}
I cannot figure out how to mix these two concepts above together, successfully. This is what I've tried so far below:
fixed4 frag (v2f_img i) : COLOR
{
fixed4 col = tex2D(_RampTex, fixed2(col.r + _Time.x * _Speed, 0.5));
col.a = 0.5;
return col;
}
The most recent code snippet above does not modify the Alpha channel nor does it cycle through the colors, leaving me with just a solid color. Any ideas?
Answer by Sergio7888 · Dec 05, 2016 at 08:20 AM
You are not setting col value in the last example.
Look this code:
fixed4 frag (v2f_img i) : COLOR
{
fixed4 col = tex2D(_MainTex, i.uv);
fixed4 col2 =tex2D(_RampTex, fixed2(col.r + _Time.x * _Speed, 0.5));
col2.a = 0.5;
return col2;
}