summaryrefslogtreecommitdiff
path: root/shaders/unity/8.shader_test
blob: 3897d26745646c88e0b013c5c56d03aa4221d791 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
# Built-in shader from Unity 5.0.0b19:
# Skybox/Procedural
# internal variant: UNITY_COLORSPACE_GAMMA
# This shader GLSL dump is put under MIT license
[require]
GLSL >= 1.10

[vertex shader]
uniform vec4 _WorldSpaceLightPos0;

uniform mat4 _Object2World;
uniform vec3 _SkyTint;
uniform float _AtmosphereThickness;
varying vec3 xlv_TEXCOORD0;
varying vec3 xlv_TEXCOORD1;
varying vec3 xlv_TEXCOORD2;
void main ()
{
  vec3 tmpvar_1;
  vec3 tmpvar_2;
  vec4 tmpvar_3;
  tmpvar_3 = (gl_ModelViewProjectionMatrix * gl_Vertex);
  vec3 tmpvar_4;
  tmpvar_4 = (1.0/(pow (mix (vec3(0.5, 0.42, 0.325), vec3(0.8, 0.72, 0.625), 
    (vec3(1.0, 1.0, 1.0) - _SkyTint)
  ), vec3(4.0, 4.0, 4.0))));
  float tmpvar_5;
  float cse_6;
  cse_6 = pow (_AtmosphereThickness, 2.5);
  tmpvar_5 = (mix (0.0, 0.0025, cse_6) * 20.0);
  float tmpvar_7;
  tmpvar_7 = (12.5664 * mix (0.0, 0.0025, cse_6));
  mat3 tmpvar_8;
  tmpvar_8[0] = _Object2World[0].xyz;
  tmpvar_8[1] = _Object2World[1].xyz;
  tmpvar_8[2] = _Object2World[2].xyz;
  vec3 tmpvar_9;
  tmpvar_9 = normalize((tmpvar_8 * gl_Vertex.xyz));
  vec3 tmpvar_10;
  tmpvar_10 = -(tmpvar_9);
  if ((tmpvar_9.y >= 0.0)) {
    float tmpvar_11;
    tmpvar_11 = (1.0 - (dot (tmpvar_9, vec3(0.0, 1.0001, 0.0)) / 1.0001));
    float tmpvar_12;
    tmpvar_12 = (exp((-0.00287 + 
      (tmpvar_11 * (0.459 + (tmpvar_11 * (3.83 + 
        (tmpvar_11 * (-6.8 + (tmpvar_11 * 5.25)))
      ))))
    )) * 0.246032);
    float tmpvar_13;
    tmpvar_13 = ((sqrt(
      ((1.05062 + (tmpvar_9.y * tmpvar_9.y)) - 1.0)
    ) - tmpvar_9.y) / 2.0);
    float tmpvar_14;
    tmpvar_14 = (tmpvar_13 * 40.0);
    vec3 tmpvar_15;
    tmpvar_15 = (tmpvar_9 * tmpvar_13);
    vec3 tmpvar_16;
    tmpvar_16 = (vec3(0.0, 1.0001, 0.0) + (tmpvar_15 * 0.5));
    float tmpvar_17;
    tmpvar_17 = sqrt(dot (tmpvar_16, tmpvar_16));
    float tmpvar_18;
    tmpvar_18 = exp((160.0 * (1.0 - tmpvar_17)));
    float tmpvar_19;
    tmpvar_19 = (1.0 - (dot (_WorldSpaceLightPos0.xyz, tmpvar_16) / tmpvar_17));
    float tmpvar_20;
    tmpvar_20 = (1.0 - (dot (tmpvar_9, tmpvar_16) / tmpvar_17));
    vec3 tmpvar_21;
    tmpvar_21 = (tmpvar_16 + tmpvar_15);
    float tmpvar_22;
    tmpvar_22 = sqrt(dot (tmpvar_21, tmpvar_21));
    float tmpvar_23;
    tmpvar_23 = exp((160.0 * (1.0 - tmpvar_22)));
    float tmpvar_24;
    tmpvar_24 = (1.0 - (dot (_WorldSpaceLightPos0.xyz, tmpvar_21) / tmpvar_22));
    float tmpvar_25;
    tmpvar_25 = (1.0 - (dot (tmpvar_9, tmpvar_21) / tmpvar_22));
    vec3 tmpvar_26;
    tmpvar_26 = ((exp(
      (-((tmpvar_12 + (tmpvar_18 * 
        ((0.25 * exp((-0.00287 + 
          (tmpvar_19 * (0.459 + (tmpvar_19 * (3.83 + 
            (tmpvar_19 * (-6.8 + (tmpvar_19 * 5.25)))
          ))))
        ))) - (0.25 * exp((-0.00287 + 
          (tmpvar_20 * (0.459 + (tmpvar_20 * (3.83 + 
            (tmpvar_20 * (-6.8 + (tmpvar_20 * 5.25)))
          ))))
        ))))
      ))) * ((tmpvar_4 * tmpvar_7) + 0.0125664))
    ) * (tmpvar_18 * tmpvar_14)) + (exp(
      (-((tmpvar_12 + (tmpvar_23 * 
        ((0.25 * exp((-0.00287 + 
          (tmpvar_24 * (0.459 + (tmpvar_24 * (3.83 + 
            (tmpvar_24 * (-6.8 + (tmpvar_24 * 5.25)))
          ))))
        ))) - (0.25 * exp((-0.00287 + 
          (tmpvar_25 * (0.459 + (tmpvar_25 * (3.83 + 
            (tmpvar_25 * (-6.8 + (tmpvar_25 * 5.25)))
          ))))
        ))))
      ))) * ((tmpvar_4 * tmpvar_7) + 0.0125664))
    ) * (tmpvar_23 * tmpvar_14)));
    tmpvar_1 = (tmpvar_26 * (tmpvar_4 * tmpvar_5));
    tmpvar_2 = (tmpvar_26 * 0.02);
  } else {
    float tmpvar_27;
    tmpvar_27 = (-0.0001 / min (-1e-05, tmpvar_9.y));
    vec3 tmpvar_28;
    tmpvar_28 = (vec3(0.0, 1.0001, 0.0) + (tmpvar_27 * tmpvar_9));
    float tmpvar_29;
    float tmpvar_30;
    tmpvar_30 = (1.0 - dot (-(tmpvar_9), tmpvar_28));
    tmpvar_29 = (0.25 * exp((-0.00287 + 
      (tmpvar_30 * (0.459 + (tmpvar_30 * (3.83 + 
        (tmpvar_30 * (-6.8 + (tmpvar_30 * 5.25)))
      ))))
    )));
    float tmpvar_31;
    tmpvar_31 = (1.0 - dot (_WorldSpaceLightPos0.xyz, tmpvar_28));
    float tmpvar_32;
    tmpvar_32 = (tmpvar_27 / 2.0);
    vec3 tmpvar_33;
    tmpvar_33 = (vec3(0.0, 1.0001, 0.0) + ((tmpvar_9 * tmpvar_32) * 0.5));
    float tmpvar_34;
    tmpvar_34 = exp((160.0 * (1.0 - 
      sqrt(dot (tmpvar_33, tmpvar_33))
    )));
    vec3 tmpvar_35;
    tmpvar_35 = exp(((
      (0.9996 * tmpvar_29)
     - 
      (tmpvar_34 * ((0.25 * exp(
        (-0.00287 + (tmpvar_31 * (0.459 + (tmpvar_31 * 
          (3.83 + (tmpvar_31 * (-6.8 + (tmpvar_31 * 5.25))))
        ))))
      )) + tmpvar_29))
    ) * (
      (tmpvar_4 * tmpvar_7)
     + 0.0125664)));
    tmpvar_1 = ((tmpvar_35 * (tmpvar_34 * 
      (tmpvar_32 * 40.0)
    )) * ((tmpvar_4 * tmpvar_5) + 0.02));
    tmpvar_2 = clamp (tmpvar_35, vec3(0.0, 0.0, 0.0), vec3(1.0, 1.0, 1.0));
  };
  gl_Position = tmpvar_3;
  xlv_TEXCOORD0 = tmpvar_10;
  xlv_TEXCOORD1 = tmpvar_1;
  xlv_TEXCOORD2 = tmpvar_2;
}

[fragment shader]
uniform vec4 _WorldSpaceLightPos0;
uniform vec4 _LightColor0;
uniform float _Exposure;
uniform vec3 _GroundColor;
uniform float _SunSize;
varying vec3 xlv_TEXCOORD0;
varying vec3 xlv_TEXCOORD1;
varying vec3 xlv_TEXCOORD2;
void main ()
{
  vec3 col_1;
  col_1 = vec3(0.0, 0.0, 0.0);
  if ((xlv_TEXCOORD0.y < 0.02)) {
    vec3 tmpvar_2;
    tmpvar_2 = normalize(xlv_TEXCOORD0);
    float tmpvar_3;
    tmpvar_3 = dot (_WorldSpaceLightPos0.xyz, tmpvar_2);
    float tmpvar_4;
    vec3 tmpvar_5;
    tmpvar_5 = (_WorldSpaceLightPos0.xyz - -(tmpvar_2));
    float tmpvar_6;
    tmpvar_6 = clamp ((sqrt(
      dot (tmpvar_5, tmpvar_5)
    ) / _SunSize), 0.0, 1.0);
    float tmpvar_7;
    tmpvar_7 = (1.0 - (tmpvar_6 * (tmpvar_6 * 
      (3.0 - (2.0 * tmpvar_6))
    )));
    tmpvar_4 = ((8000.0 * tmpvar_7) * tmpvar_7);
    vec3 tmpvar_8;
    tmpvar_8 = ((0.75 + (0.75 * 
      (tmpvar_3 * tmpvar_3)
    )) * xlv_TEXCOORD1);
    col_1 = tmpvar_8;
    if ((xlv_TEXCOORD0.y < 0.0)) {
      col_1 = (tmpvar_8 + ((tmpvar_4 * xlv_TEXCOORD2) * _LightColor0.xyz));
    } else {
      col_1 = mix (col_1, (xlv_TEXCOORD1 + (
        (_GroundColor * _GroundColor)
       * xlv_TEXCOORD2)), vec3((xlv_TEXCOORD0.y / 0.02)));
    };
  } else {
    col_1 = (xlv_TEXCOORD1 + ((_GroundColor * _GroundColor) * xlv_TEXCOORD2));
  };
  vec3 tmpvar_9;
  tmpvar_9 = sqrt((col_1 * _Exposure));
  col_1 = tmpvar_9;
  vec4 tmpvar_10;
  tmpvar_10.w = 1.0;
  tmpvar_10.xyz = tmpvar_9;
  gl_FragData[0] = tmpvar_10;
}