needs a lot of cleaning but lights are OK
[carveJwlIkooP6JGAAIwe30JlM.git] / shaders / model_sky.fs
1 uniform sampler2D uTexGarbage;
2
3 in vec4 aColour;
4 in vec2 aUv;
5 in vec3 aNorm;
6 in vec3 aCo;
7 in vec3 aWorldCo;
8
9 #include "common_world.glsl"
10 #include "motion_vectors_fs.glsl"
11 #include "light_clearskies.glsl"
12
13 void main()
14 {
15 compute_motion_vectors();
16
17 world_info world;
18 scene_state( g_time, world );
19
20 vec3 rd = normalize(aNorm);
21
22 float fmove = g_time * 0.004;
23 vec2 cloudplane = (rd.xz / (rd.y*sign(rd.y))) * 0.025;
24 vec4 clouds1 = texture( uTexGarbage, cloudplane + vec2(0.1,0.4)*fmove*2.0 );
25 vec4 clouds2 = texture( uTexGarbage, cloudplane*2.0 + vec2(0.3,0.1)*fmove );
26
27 float cloud_d = max(clouds1.b*clouds2.r -0.2 - clouds2.g*0.4,0.0);
28 float cloud_e = pow(cloud_d,1.5)*pow(abs(rd.y),0.3)*2.0;
29
30 oColour = vec4( scene_sky( -rd, world ) ,1.0);
31
32 vec3 cloud_colour = mix( mix(NIGHTSKY_COLOUR,vec3(1.0),world.day_phase),
33 SUNSET_COLOUR, world.sunset_phase );
34 oColour.rgb = mix( oColour.rgb, cloud_colour, cloud_e );
35 }