2016-03-15 11:29:53 +01:00
|
|
|
#version 450
|
|
|
|
|
|
|
|
#ifdef GL_ES
|
|
|
|
precision mediump float;
|
|
|
|
#endif
|
|
|
|
|
2016-03-22 12:04:08 +01:00
|
|
|
uniform sampler2D tex;
|
2016-03-15 11:29:53 +01:00
|
|
|
uniform vec2 dir;
|
|
|
|
|
|
|
|
in vec2 texCoord;
|
|
|
|
|
2016-06-03 17:18:38 +02:00
|
|
|
const vec2 screenSize = vec2(1920, 1080);
|
2016-04-01 01:48:18 +02:00
|
|
|
|
2016-03-15 11:29:53 +01:00
|
|
|
void main() {
|
2016-04-20 19:35:22 +02:00
|
|
|
vec2 step = dir / screenSize;
|
2016-04-01 01:48:18 +02:00
|
|
|
|
2016-06-03 17:18:38 +02:00
|
|
|
float result = texture(tex, texCoord + (step * 4.0)).r;
|
|
|
|
result += texture(tex, texCoord + (step * 3.0)).r;
|
|
|
|
result += texture(tex, texCoord + (step * 2.0)).r;
|
|
|
|
result += texture(tex, texCoord + step).r;
|
|
|
|
result += texture(tex, texCoord).r;
|
|
|
|
result += texture(tex, texCoord - step).r;
|
|
|
|
result += texture(tex, texCoord - (step * 2.0)).r;
|
|
|
|
result += texture(tex, texCoord - (step * 3.0)).r;
|
|
|
|
result += texture(tex, texCoord - (step * 4.0)).r;
|
|
|
|
result /= 9.0;
|
2016-04-01 01:48:18 +02:00
|
|
|
|
2016-06-03 17:18:38 +02:00
|
|
|
gl_FragColor.rgb = vec3(result);
|
2016-03-15 11:29:53 +01:00
|
|
|
}
|