效果:
VSH:
#ifdef OPENGL_ES precision mediump vec2; precision mediump float; #endif // Attributes attribute vec3 a_position; attribute vec2 a_texCoord; attribute vec4 a_color; // Varyings #ifdef GL_ES varying vec2 v_texCoord; #else varying vec2 v_texCoord; #endif varying vec4 v_fragmentColor; void main() { gl_Position = CC_PMatrix * vec4(a_position,1.0); v_texCoord = a_texCoord; v_fragmentColor = a_color; }
FSH:
#ifdef GL_ES precision mediump float; #endif varying vec4 v_fragmentColor; varying vec2 v_texCoord; uniform vec2 resolution; //uniform float blurRadius; vec4 blur(vec2 p) { vec4 col = vec4(0); vec2 unit = 1.0/resolution; float r = 10.0; float nCount = 0.0; for (float x = -r; x < r; ++x) { for (float y = -r; y < r; ++y) { float weight = (r-abs(x)) * (r-abs(y)); col += texture2D(CC_Texture0,p + vec2(x*unit.x,y*unit.y))*weight; nCount += weight; } } return col / nCount; } void main(void) { gl_FragColor = blur(v_texCoord); }