Shader "Demo/Demo28/DissolveWithBlend"
{
Properties
{
_Color("Color&Alpha",Color)=(1,1,1,1)
_MainTex("MainTex",2D)="white"{}
_Mask("Mask",2D)="white"{}
_AlphaFactor("AlphaFactor",Range(0,1))=0.5
}
Subshader
{
Tags{"Queue"="Transparent" "IgnoreProjector"="True""RenderType"="Transparent"}
Pass{
Tags{"LigthMode"="ForwardBase"}
Blend SrcAlpha OneMinusSrcAlpha
Cull Front
ZWrite off
CGPROGRAM
#pragma vertex vert
#pragma fragment frag
#include "UnityCG.cginc"
sampler2D _MainTex;
float4 _MainTex_ST;
sampler2D _Mask;
float4 _Mask_ST;
float4 _Color;
float _AlphaFactor;
struct a2v
{
float4 vertex:POSITION;
float2 texcoord:TEXCOORD0;
};
struct v2f
{
float4 pos:SV_POSITION;
float2 uv0:TEXCOORD0;
float2 uv1:TEXCOORD1;
};
v2f vert(a2v i)
{
v2f o;
o.pos = mul(UNITY_MATRIX_MVP,i.vertex);
o.uv0 = TRANSFORM_TEX(i.texcoord,_MainTex);
o.uv1 = TRANSFORM_TEX(i.texcoord,_Mask);
return o;
}
fixed4 frag(v2f i):Color
{
float4 _mainVar = tex2D(_MainTex,i.uv0);
float4 _maskVar = tex2D(_Mask,i.uv1);
float3 emissive = _Color.rgb * _mainVar.rgb;
return fixed4(emissive,_Color.a * _mainVar.a * step(_maskVar.r,_AlphaFactor));
}
ENDCG
}
}
FallBack"Diffuse"
}