summaryrefslogtreecommitdiff
path: root/advanced_lighting/7.bloom/shaders/test_blur.frag
blob: 8d7ee9a08c889af383918ed53a11c04f6ad6cc76 (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
#version 330 core

in vert_t {
    vec2 tex_coords;
} vert;

out vec4 frag_color;

uniform sampler2D colorbuffer;

uniform float weights[5] = float[](0.2270270270, 0.1945945946, 0.1216216216, 0.0540540541, 0.0162162162);

void main()
{
    vec2 texture_offset = 1.0 / textureSize(colorbuffer, 0);
    vec3 result = texture(colorbuffer, vert.tex_coords).rgb * weights[0];
    for (int x = 1; x < weights.length(); x++) {
        vec2 offset = vec2(texture_offset.x * x, 0.0f);
        result += texture(colorbuffer, vert.tex_coords + offset).rgb * weights[x];
        result += texture(colorbuffer, vert.tex_coords - offset).rgb * weights[x];
    }
    for (int y = 1; y < weights.length(); y++) {
        vec2 offset = vec2(0.0f, texture_offset.y * y);
        result += texture(colorbuffer, vert.tex_coords + offset).rgb * weights[y];
        result += texture(colorbuffer, vert.tex_coords - offset).rgb * weights[y];
    }
    frag_color = vec4(result, 1.0);
}