armory/raw/blur_pass/blur_pass.frag.glsl

45 lines
1.5 KiB
Text
Raw Normal View History

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-04-01 12:37:46 +02:00
// const float weight[5] = float[] (0.227027, 0.1945946, 0.1216216, 0.054054, 0.016216);
2016-04-01 01:48:18 +02:00
2016-03-15 11:29:53 +01:00
void main() {
2016-04-03 23:25:53 +02:00
// vec2 step = dir / vec2(400, 300);
vec2 step = dir / vec2(960, 540);
2016-04-01 01:48:18 +02:00
// vec2 step = dir / vec2(800, 600);
2016-04-01 12:37:46 +02:00
// 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);
2016-04-01 01:48:18 +02:00
2016-03-26 12:53:25 +01:00
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;
2016-03-22 12:04:08 +01:00
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;
2016-03-26 12:53:25 +01:00
res += texture( tex, texCoord -(step * 3.0) ).r;
res += texture( tex, texCoord -(step * 4.0) ).r;
res /= 9.0;
2016-04-01 12:37:46 +02:00
gl_FragColor = vec4(vec3(res), 1.0);
2016-03-15 11:29:53 +01:00
2016-03-26 12:53:25 +01:00
// gl_FragColor = texture(tex, texCoord);
2016-03-15 11:29:53 +01:00
}