some meshgen and map rendering updates
[voxelands-alt.git] / data / shaders / map_fragment.glsl
blob11f14fb8a75f2ba95050335358f99a21094b59f5
1 #version 330 core
3 in vec2 uv;
4 in vec3 normal;
5 in vec3 to_cam;
6 in vec3 light0_to;
8 out vec4 final_colour;
10 uniform sampler2D texture0;
12 vec4 light0_colour = vec4(1.0,1.0,1.0,1.0);
13 float light0_att = 0.0;
15 void main(void)
17         vec3 n = normalize(normal);
18         vec3 diffuse = vec3(0.0);
20         float att = 1.0;
21         if (light0_att > 0.0) {
22                 float dist = length(light0_to);
23                 if (dist > light0_att) {
24                         att = 0.0;
25                 }else{
26                         att = 1.0-((1.0/light0_att)*dist);
27                 }
28         }
29         if (att > 0.0) {
30                 vec3 to = normalize(light0_to);
31                 diffuse += max((max(dot(n,to),0.0)*light0_colour.rgb)*att,0.2);
32         }else{
33                 diffuse += vec3(0.2);
34         }
36         vec4 texdata = texture(texture0,uv);
38         final_colour = vec4(diffuse,1.0)*texdata;