Implement Bitmap 'blur'

I was a bit confused at first because I thought Enterbrain
had actually implemented a full Gaussian blur, but nope,
just dumb averaging.
This commit is contained in:
Jonas Kulla 2013-10-01 18:10:43 +02:00
parent 20ec560145
commit a54acce6b7
10 changed files with 149 additions and 1 deletions

16
shader/blur.frag Normal file
View file

@ -0,0 +1,16 @@
uniform sampler2D texture;
varying vec2 v_texCoord;
varying vec2 v_blurCoord[2];
void main()
{
vec4 frag = vec4(0, 0, 0, 0);
frag += texture2D(texture, v_texCoord);
frag += texture2D(texture, v_blurCoord[0]);
frag += texture2D(texture, v_blurCoord[1]);
gl_FragColor = frag / 3.0;
}

19
shader/blurH.vert Normal file
View file

@ -0,0 +1,19 @@
uniform mat4 projMat;
uniform vec2 texSizeInv;
attribute vec2 position;
attribute vec2 texCoord;
varying vec2 v_texCoord;
varying vec2 v_blurCoord[2];
void main()
{
gl_Position = projMat * vec4(position, 0, 1);
v_texCoord = texCoord * texSizeInv;
v_blurCoord[0] = vec2(texCoord.x-1, texCoord.y) * texSizeInv;
v_blurCoord[1] = vec2(texCoord.x+1, texCoord.y) * texSizeInv;
}

19
shader/blurV.vert Normal file
View file

@ -0,0 +1,19 @@
uniform mat4 projMat;
uniform vec2 texSizeInv;
attribute vec2 position;
attribute vec2 texCoord;
varying vec2 v_texCoord;
varying vec2 v_blurCoord[2];
void main()
{
gl_Position = projMat * vec4(position, 0, 1);
v_texCoord = texCoord * texSizeInv;
v_blurCoord[0] = vec2(texCoord.x, texCoord.y-1) * texSizeInv;
v_blurCoord[1] = vec2(texCoord.x, texCoord.y+1) * texSizeInv;
}