﻿Shader "Custom/MaskShader" {
	Properties {
		_MainTex ("Base (RGB)", 2D) = "white" {}
		_Offset ("Offset", Float) = 1
		_BlendArea ("BlendArea", Range(0,1)) = 0.1
		_Power ("Power", Float) = 1
	}
	SubShader {
		Tags { "Queue" = "Transparent" }
		
		CGPROGRAM
		#pragma surface surf Lambert alpha

		sampler2D _MainTex;
		float _Offset;
		float _BlendArea;
		float _Power;

		struct Input {
			float2 uv_MainTex;
			float4 color : COLOR;
		};

		void surf (Input IN, inout SurfaceOutput o) {
			half4 c = tex2D (_MainTex, IN.uv_MainTex);
			float v = (IN.color.a - _Offset) / _BlendArea;
			v = abs(1-v);
			v = pow(v,_Power);
			o.Albedo = c.rgb;
			o.Alpha = c.a * (1-clamp(v,0,1));
		}
		ENDCG
	} 
	FallBack "Diffuse"
}
