root / Assets / Time of Day / Assets / Shaders / Moon.shader @ 175:f9f5640c2a3a
History | View | Annotate | Download (1.3 kB)
1 | // Upgrade NOTE: replaced '_Object2World' with 'unity_ObjectToWorld' |
---|---|
2 | |
3 | Shader "Time of Day/Moon" |
4 | { |
5 | Properties |
6 | { |
7 | _MainTex ("Base (RGB)", 2D) = "white" {} |
8 | } |
9 | |
10 | CGINCLUDE |
11 | #include "UnityCG.cginc" |
12 | #include "TOD_Base.cginc" |
13 | |
14 | uniform sampler2D _MainTex; |
15 | uniform float4 _MainTex_ST; |
16 | |
17 | struct v2f { |
18 | float4 position : SV_POSITION; |
19 | half3 tex : TEXCOORD0; |
20 | half3 normal : TEXCOORD1; |
21 | }; |
22 | |
23 | v2f vert(appdata_base v) { |
24 | v2f o; |
25 | |
26 | o.position = TOD_TRANSFORM_VERT(v.vertex); |
27 | |
28 | o.normal = normalize(mul((float3x3)unity_ObjectToWorld, v.normal)); |
29 | |
30 | float3 skyPos = mul(TOD_World2Sky, mul(unity_ObjectToWorld, v.vertex)).xyz; |
31 | |
32 | o.tex.xy = TRANSFORM_TEX(v.texcoord, _MainTex); |
33 | o.tex.z = skyPos.y * 25; |
34 | |
35 | return o; |
36 | } |
37 | |
38 | half4 frag(v2f i) : COLOR { |
39 | half4 color = half4(TOD_MoonMeshColor, 1); |
40 | |
41 | half alpha = max(0, dot(i.normal, TOD_SunDirection)); |
42 | alpha = saturate(i.tex.z) * TOD_MoonMeshBrightness * pow(alpha, TOD_MoonMeshContrast); |
43 | |
44 | half3 maintex = tex2D(_MainTex, i.tex).rgb; |
45 | |
46 | color.rgb *= maintex * alpha; |
47 | |
48 | return color; |
49 | } |
50 | ENDCG |
51 | |
52 | SubShader |
53 | { |
54 | Tags |
55 | { |
56 | "Queue"="Background+40" |
57 | "RenderType"="Background" |
58 | "IgnoreProjector"="True" |
59 | } |
60 | |
61 | Pass |
62 | { |
63 | ZWrite Off |
64 | ZTest LEqual |
65 | Fog { Mode Off } |
66 | |
67 | CGPROGRAM |
68 | #pragma vertex vert |
69 | #pragma fragment frag |
70 | ENDCG |
71 | } |
72 | } |
73 | |
74 | Fallback Off |
75 | } |