var fragment='uniform sampler2D colorTexture; \n' +
'varying vec2 v_textureCoordinates; \n' +
'const float offset = 1.0 / 300.0; \n' +
'void main()\n' +
'{\n' +
'vec2 offsets[9] ;\n' +
'offsets[0]= vec2(-offset, offset), // 左上\n' +
'offsets[1]= vec2( 0.0, offset), // 正上\n' +
'offsets[2]= vec2( offset, offset), // 右上\n' +
'offsets[3]= vec2(-offset, 0.0), // 左\n' +
'offsets[4]= vec2( 0.0, 0.0), // 中\n' +
'offsets[5]= vec2( offset, 0.0), // 右\n' +
'offsets[6]= vec2(-offset, -offset), // 左下\n' +
'offsets[7]= vec2( 0.0, -offset), // 正下\n' +
'offsets[8]= vec2( offset, -offset);\n' +
'float kernel[9] ;\n' +
'kernel[0]=1.0/16.0, kernel[1]=2.0/16.0,kernel[2]= 1.0/16.0,\n' +
'kernel[3]= 2.0/16.0, kernel[4]=4.0/16.0, kernel[5]=2.0/16.0,\n' +
'kernel[6]= 1.0/16.0, kernel[7]=2.0/16.0, kernel[8]=1.0/16.0;\n' +
'vec3 sampleTex[9];\n' +
'vec4 cc=texture2D(colorTexture, v_textureCoordinates);\n'+
'for(int i = 0; i < 9; i++)\n' +
'{\n' +
'sampleTex[i] = vec3(texture2D(colorTexture, v_textureCoordinates + offsets[i]));\n' +
'}\n' +
'vec3 col = vec3(0.0);\n' +
'for(int i = 0; i < 9; i++)\n' +
'col += sampleTex[i] * kernel[i];\n' +
'gl_FragColor = vec4(col, 1.0);\n' +
'if(cc.r>60.0/255.0)gl_FragColor = vec4(cc);\n' +
'}'

代码来自learnOpenGL