#version 150 core uniform sampler2D DiffuseSampler; in vec2 texCoord; in vec2 oneTexel; uniform vec2 InSize; uniform vec2 BlurDir; uniform float Radius; uniform float Progress; out vec4 outColor; void main() { vec4 blurred = vec4(0.0); float progRadius = floor(Radius * Progress); for (float r = -progRadius; r <= progRadius; r += 1.0) { blurred += texture(DiffuseSampler, texCoord + oneTexel * r * BlurDir); } // force alpha to be 1.0 since otherwise areas with zero alpha turn black? outColor = vec4(blurred.rgb / (progRadius * 2.0 + 1.0), 1.0); }