- Home /
 
Alpha mask to have a fading effect
Hello everyone,
Am trying to make a fading effects with many styles (top-down, in-out, and vice versa) and i think that the best way to do that is to have an alpha mask applied to the two textures that am gonna fade between, the alpha mask should be a gradient black and white image where white give 1.0 alpha and black give 0.0 (in respect of the value between) so by drawing different gradient texture i will have different fading effects, the question is : is it possible to have that gradient texture applied to some material, so the main texture of that material will have different alpha values ??
thank you
Answer by Aladine · Oct 07, 2013 at 10:50 PM
creating a custom shader with this code solved the problem :
 Shader "Custom/ShaderTest"
 {
 Properties {
     _Color ("Main Color", Color) = (1,1,1,1)
     _MainTex ("Base (RGB) Trans (A)", 2D) = "white" {}
     _AlphaMap ("Additional Alpha Map (Greyscale)", 2D) = "white" {}
 }
  
 SubShader {
     Tags {"Queue"="Transparent" "IgnoreProjector"="True" "RenderType"="Transparent"}
     LOD 200
  
 CGPROGRAM
 #pragma surface surf Lambert alpha
  
 sampler2D _MainTex;
 sampler2D _AlphaMap;
 float4 _Color;
  
 struct Input {
     float2 uv_MainTex;
 };
  
 void surf (Input IN, inout SurfaceOutput o) {
     half4 c = tex2D(_MainTex, IN.uv_MainTex) * _Color;
     o.Albedo = c.rgb;
     o.Alpha = c.a * tex2D(_AlphaMap, IN.uv_MainTex).r;
 }
 ENDCG
 }
  
 Fallback "Transparent/VertexLit"
 }
 
              Answer by transporter_gate_studios · Mar 11, 2018 at 05:59 PM
Is there a way to do this same thing but with an unlit sprite shader instead of a surface??
Thanks!
Your answer