Statistics
| Branch: | Tag: | Revision:

root / Assets / Standard Assets / Effects / Projectors / Shaders / ProjectorLight.shader @ 175:f9f5640c2a3a

History | View | Annotate | Download (1.4 kB)

1
// Upgrade NOTE: replaced '_Projector' with 'unity_Projector'
2
// Upgrade NOTE: replaced '_ProjectorClip' with 'unity_ProjectorClip'
3
4
Shader "Projector/Light" {
5
	Properties {
6
		_Color ("Main Color", Color) = (1,1,1,1)
7
		_ShadowTex ("Cookie", 2D) = "" {}
8
		_FalloffTex ("FallOff", 2D) = "" {}
9
	}
10
	
11
	Subshader {
12
		Tags {"Queue"="Transparent"}
13
		Pass {
14
			ZWrite Off
15
			ColorMask RGB
16
			Blend DstColor One
17
			Offset -1, -1
18
	
19
			CGPROGRAM
20
			#pragma vertex vert
21
			#pragma fragment frag
22
			#pragma multi_compile_fog
23
			#include "UnityCG.cginc"
24
			
25
			struct v2f {
26
				float4 uvShadow : TEXCOORD0;
27
				float4 uvFalloff : TEXCOORD1;
28
				UNITY_FOG_COORDS(2)
29
				float4 pos : SV_POSITION;
30
			};
31
			
32
			float4x4 unity_Projector;
33
			float4x4 unity_ProjectorClip;
34
			
35
			v2f vert (float4 vertex : POSITION)
36
			{
37
				v2f o;
38
				o.pos = mul (UNITY_MATRIX_MVP, vertex);
39
				o.uvShadow = mul (unity_Projector, vertex);
40
				o.uvFalloff = mul (unity_ProjectorClip, vertex);
41
				UNITY_TRANSFER_FOG(o,o.pos);
42
				return o;
43
			}
44
			
45
			fixed4 _Color;
46
			sampler2D _ShadowTex;
47
			sampler2D _FalloffTex;
48
			
49
			fixed4 frag (v2f i) : SV_Target
50
			{
51
				fixed4 texS = tex2Dproj (_ShadowTex, UNITY_PROJ_COORD(i.uvShadow));
52
				texS.rgb *= _Color.rgb;
53
				texS.a = 1.0-texS.a;
54
	
55
				fixed4 texF = tex2Dproj (_FalloffTex, UNITY_PROJ_COORD(i.uvFalloff));
56
				fixed4 res = texS * texF.a;
57
58
				UNITY_APPLY_FOG_COLOR(i.fogCoord, res, fixed4(0,0,0,0));
59
				return res;
60
			}
61
			ENDCG
62
		}
63
	}
64
}