89 lines
2.3 KiB
Plaintext
89 lines
2.3 KiB
Plaintext
|
|
// Upgrade NOTE: replaced '_Projector' with 'unity_Projector'
|
||
|
|
// Upgrade NOTE: replaced '_ProjectorClip' with 'unity_ProjectorClip'
|
||
|
|
// Upgrade NOTE: replaced 'mul(UNITY_MATRIX_MVP,*)' with 'UnityObjectToClipPos(*)'
|
||
|
|
|
||
|
|
Shader "Effects/Projector/AlphaBlended" {
|
||
|
|
Properties {
|
||
|
|
_TintColor ("Tint Color", Color) = (0.5,0.5,0.5,1)
|
||
|
|
_ColorStrength ("Color strength", Float) = 1.0
|
||
|
|
_MainTex ("Main Texture", 2D) = "gray" {}
|
||
|
|
//_CutoutTex ("Cutout Texture (R)", 2D) = "white" {}
|
||
|
|
_FalloffTex ("FallOff", 2D) = "white" {}
|
||
|
|
}
|
||
|
|
Subshader {
|
||
|
|
Tags {"Queue"="Transparent"}
|
||
|
|
Pass {
|
||
|
|
ZWrite Off
|
||
|
|
Fog { Mode Off}
|
||
|
|
Blend SrcAlpha OneMinusSrcAlpha
|
||
|
|
Offset -1, -1
|
||
|
|
|
||
|
|
CGPROGRAM
|
||
|
|
#pragma vertex vert
|
||
|
|
#pragma fragment frag
|
||
|
|
#include "UnityCG.cginc"
|
||
|
|
|
||
|
|
fixed4 _TintColor;
|
||
|
|
fixed _ColorStrength;
|
||
|
|
|
||
|
|
struct v2f {
|
||
|
|
float4 uvMainTex : TEXCOORD0;
|
||
|
|
float4 uvFalloff : TEXCOORD1;
|
||
|
|
//float4 uv_CutoutTex : TEXCOORD3;
|
||
|
|
float4 pos : SV_POSITION;
|
||
|
|
float2 texcoord : TEXCOORD2;
|
||
|
|
};
|
||
|
|
|
||
|
|
float4x4 unity_Projector;
|
||
|
|
float4x4 unity_ProjectorClip;
|
||
|
|
float4 _MainTex_ST;
|
||
|
|
|
||
|
|
|
||
|
|
v2f vert (float4 vertex : POSITION)
|
||
|
|
{
|
||
|
|
v2f o;
|
||
|
|
o.pos = UnityObjectToClipPos (vertex);
|
||
|
|
o.uvMainTex = mul (unity_Projector, vertex);
|
||
|
|
o.uvFalloff = mul (unity_ProjectorClip, vertex);
|
||
|
|
//o.uv_CutoutTex = mul (_Projector, vertex);
|
||
|
|
//o.uv = TRANSFORM_TEX (mul (_Projector, vertex).xy, _MainTex);
|
||
|
|
|
||
|
|
o.texcoord = TRANSFORM_TEX( o.uvMainTex.xyz,_MainTex);
|
||
|
|
|
||
|
|
return o;
|
||
|
|
}
|
||
|
|
|
||
|
|
sampler2D _MainTex;
|
||
|
|
sampler2D _CutoutTex;
|
||
|
|
sampler2D _FalloffTex;
|
||
|
|
|
||
|
|
fixed4 frag (v2f i) : COLOR
|
||
|
|
{
|
||
|
|
//fixed4 texS = tex2Dproj (_ShadowTex, UNITY_PROJ_COORD(i.uvShadow));
|
||
|
|
//texS.a = 1.0-texS.a;
|
||
|
|
|
||
|
|
fixed4 texF = tex2Dproj (_FalloffTex, UNITY_PROJ_COORD(i.uvFalloff));
|
||
|
|
|
||
|
|
//fixed4 texC = tex2Dproj (_CutoutTex, UNITY_PROJ_COORD(i.uv_CutoutTex));
|
||
|
|
|
||
|
|
//return texS;
|
||
|
|
//fixed4 tex = tex2Dproj(_MainTex, UNITY_PROJ_COORD(i.uvMainTex));
|
||
|
|
|
||
|
|
fixed4 tex;
|
||
|
|
if(i.uvMainTex.y<0 || i.uvMainTex.y>1 || i.uvMainTex.x < 0 || i.uvMainTex.x > 1) {
|
||
|
|
tex = fixed4 (0,0,0,0);
|
||
|
|
}
|
||
|
|
else {
|
||
|
|
tex = tex2D(_MainTex, float2(i.texcoord));
|
||
|
|
}
|
||
|
|
|
||
|
|
fixed4 res = lerp(fixed4(1,1,1,0), tex * _TintColor * _ColorStrength*tex.a, texF.a);
|
||
|
|
if(res.a > 1 ) res.a = 1;
|
||
|
|
//res.a *= texC.a;
|
||
|
|
return res;
|
||
|
|
}
|
||
|
|
ENDCG
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|