armory/raw/blur_pass/blur_pass.frag.glsl
2016-04-01 01:48:18 +02:00

46 lines
1.4 KiB
GLSL

#version 450
#ifdef GL_ES
precision mediump float;
#endif
uniform sampler2D tex;
uniform vec2 dir;
in vec2 texCoord;
const float weight[5] = float[] (0.227027, 0.1945946, 0.1216216, 0.054054, 0.016216);
void main() {
vec2 step = dir / vec2(400, 300);
// vec2 step = dir / vec2(800, 600);
vec3 result = texture(tex, texCoord).rgb * weight[0];
result += texture(tex, texCoord + step * 1).rgb * weight[1];
result += texture(tex, texCoord - step * 1).rgb * weight[1];
result += texture(tex, texCoord + step * 2).rgb * weight[2];
result += texture(tex, texCoord - step * 2).rgb * weight[2];
result += texture(tex, texCoord + step * 3).rgb * weight[3];
result += texture(tex, texCoord - step * 3).rgb * weight[3];
result += texture(tex, texCoord + step * 4).rgb * weight[4];
result += texture(tex, texCoord - step * 4).rgb * weight[4];
gl_FragColor = vec4(vec3(result), 1.0);
/*
float res = texture( tex, texCoord + (step * 4.0) ).r;
res += texture( tex, texCoord + (step * 3.0) ).r;
res += texture( tex, texCoord + (step * 2.0) ).r;
res += texture( tex, texCoord + step ).r;
res += texture( tex, texCoord ).r;
res += texture( tex, texCoord -step ).r;
res += texture( tex, texCoord -(step * 2.0) ).r;
res += texture( tex, texCoord -(step * 3.0) ).r;
res += texture( tex, texCoord -(step * 4.0) ).r;
res /= 9.0;
gl_FragColor = vec4(vec3(res), 1.0);*/
// gl_FragColor = texture(tex, texCoord);
}