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 | } |