uniform sampler2D tex;
uniform vec2 pixel;

// Gaussian separated blur with radius 3.

out vec4 FragColor;

void main()
{
    vec2 uv = gl_FragCoord.xy * pixel;
    vec4 sum = vec4(0.0);
    float X = uv.x;
    float Y = uv.y;

    sum += texture(tex, vec2(X - 3.0 * pixel.x, Y)) * 0.03125;
    sum += texture(tex, vec2(X - 1.3333 * pixel.x, Y)) * 0.328125;
    sum += texture(tex, vec2(X, Y)) * 0.273438;
    sum += texture(tex, vec2(X + 1.3333 * pixel.x, Y)) * 0.328125;
    sum += texture(tex, vec2(X + 3.0 * pixel.x, Y)) * 0.03125;

    FragColor = sum;
}