uniform sampler2D texUnit; uniform float offset; uniform vec2 halfpixel; varying vec2 uv; void main(void) { vec4 sum = texture2D(texUnit, uv + vec2(-halfpixel.x * 2.0, 0.0) * offset); sum += texture2D(texUnit, uv + vec2(-halfpixel.x, halfpixel.y) * offset) * 2.0; sum += texture2D(texUnit, uv + vec2(0.0, halfpixel.y * 2.0) * offset); sum += texture2D(texUnit, uv + vec2(halfpixel.x, halfpixel.y) * offset) * 2.0; sum += texture2D(texUnit, uv + vec2(halfpixel.x * 2.0, 0.0) * offset); sum += texture2D(texUnit, uv + vec2(halfpixel.x, -halfpixel.y) * offset) * 2.0; sum += texture2D(texUnit, uv + vec2(0.0, -halfpixel.y * 2.0) * offset); sum += texture2D(texUnit, uv + vec2(-halfpixel.x, -halfpixel.y) * offset) * 2.0; gl_FragColor = sum / 12.0; }