Statistics
| Branch: | Tag: | Revision:

root / Assets / Time of Day / Assets / Shaders / Stars.shader @ 175:f9f5640c2a3a

History | View | Annotate | Download (1.6 kB)

1
// Upgrade NOTE: replaced '_Object2World' with 'unity_ObjectToWorld'
2
3
Shader "Time of Day/Stars"
4
{
5
	Properties
6
	{
7
	}
8
9
	CGINCLUDE
10
	#include "UnityCG.cginc"
11
	#include "TOD_Base.cginc"
12
13
	struct v2f {
14
		float4 position : SV_POSITION;
15
		half4  color    : COLOR;
16
		half3  tex      : TEXCOORD0;
17
	};
18
19
	v2f vert(appdata_full v) {
20
		v2f o;
21
22
		float tanFovHalf = 1.0 / max(0.1, UNITY_MATRIX_P[0][0]); // (r-l) / (2*n)
23
		float radius = 4.0 * tanFovHalf / _ScreenParams.x;
24
		float alpha = TOD_StarBrightness * TOD_StarVisibility * 0.00001 * v.color.a / (radius * radius);
25
		float size = TOD_StarSize * radius;
26
27
		float3 u_vec = v.tangent;
28
		float3 v_vec = cross(v.normal, v.tangent);
29
30
		float u_fac = v.texcoord.x - 0.5;
31
		float v_fac = v.texcoord.y - 0.5;
32
33
		v.vertex.xyz -= u_vec * u_fac * size;
34
		v.vertex.xyz -= v_vec * v_fac * size;
35
36
		o.position = TOD_TRANSFORM_VERT(v.vertex);
37
38
		float3 skyPos = mul(TOD_World2Sky, mul(unity_ObjectToWorld, v.vertex)).xyz;
39
40
		o.tex.xy = 2.0 * v.texcoord - 1.0;
41
		o.tex.z  = skyPos.y * 25;
42
43
		o.color = half4(alpha, alpha, alpha, 1);
44
45
#if !TOD_OUTPUT_LINEAR
46
		o.color = TOD_LINEAR2GAMMA(o.color);
47
#endif
48
49
		return o;
50
	}
51
52
	half4 frag(v2f i) : COLOR {
53
		half  dist  = length(i.tex.xy);
54
		half  spot  = saturate(1.0 - dist);
55
		half  alpha = saturate(i.tex.z) * spot;
56
57
		return half4(i.color.rgb * alpha, i.color.a);
58
	}
59
	ENDCG
60
61
	SubShader
62
	{
63
		Tags
64
		{
65
			"Queue"="Background+20"
66
			"RenderType"="Background"
67
			"IgnoreProjector"="True"
68
		}
69
70
		Pass
71
		{
72
			ZWrite Off
73
			ZTest LEqual
74
			Blend One One
75
			Fog { Mode Off }
76
77
			CGPROGRAM
78
			#pragma vertex vert
79
			#pragma fragment frag
80
			#pragma multi_compile _ TOD_OUTPUT_LINEAR
81
			ENDCG
82
		}
83
	}
84
85
	Fallback Off
86
}