summary refs log tree commit diff
path: root/assets/shaders/fragment.glsl
blob: cc60d65fcc8bb405c2a052b3386193f5721b8ec4 (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
#version 330 core

uniform sampler2D tex;
uniform vec3 sun_direction;
uniform vec3 sky_color;

in vec3 surface_normal;
in vec2 frag_tex_coord;
in float frag_ambient_occlusion;
in float depth;

out vec4 color;

void main() {
    float brightness = dot(normalize(surface_normal), normalize(-sun_direction));
    vec3 diffuse = vec3(max(brightness, 0.3));

    vec4 texture_color = texture(tex, frag_tex_coord);
    if (texture_color.a < 0.5) {
        discard;
    }
    float ao = 1 - frag_ambient_occlusion / 2;
    color = vec4(diffuse, 1.0) * texture_color * ao;
    color = mix(vec4(sky_color, 1.0), color, 1 - depth);
}