blur.frag 1.05 KB
#ifdef GL_ES
precision mediump float;
#endif

varying vec4 v_fragmentColor;
varying vec2 v_texCoord;

uniform sampler2D CC_Texture0;

uniform vec2 blurSize;

void main() {
	vec4 sum = vec4(0.0);
	vec4 substract = vec4(0,0,0,0);

	float alpha = texture2D(CC_Texture0 , v_texCoord).a;

	sum += texture2D(CC_Texture0, v_texCoord - 4.0 * blurSize) * 0.05;
	sum += texture2D(CC_Texture0, v_texCoord - 3.0 * blurSize) * 0.09;
	sum += texture2D(CC_Texture0, v_texCoord - 2.0 * blurSize) * 0.12;
	sum += texture2D(CC_Texture0, v_texCoord - 1.0 * blurSize) * 0.15;
	sum += texture2D(CC_Texture0, v_texCoord                 ) * 0.16;
	sum += texture2D(CC_Texture0, v_texCoord + 1.0 * blurSize) * 0.15;
	sum += texture2D(CC_Texture0, v_texCoord + 2.0 * blurSize) * 0.12;
	sum += texture2D(CC_Texture0, v_texCoord + 3.0 * blurSize) * 0.09;
	sum += texture2D(CC_Texture0, v_texCoord + 4.0 * blurSize) * 0.05;

	vec4 temp = vec4(0,0,0,0);
	temp = (sum - substract) * v_fragmentColor;

	if(alpha < 0.05)
	{
		gl_FragColor = vec4(0 , 0 , 0 , 0);
	}
	else
	{
		gl_FragColor = temp;
	}
}