Static Private blur_frag
blur_frag: string = "precision mediump float;\n" +"uniform sampler2D uSampler;\n" +"uniform float screenWidth;\n" +"uniform float screenHeight;\n" +"float normpdf(in float x, in float sigma)\n" +"{\n" +"return 0.39894*exp(-0.5*x*x/(sigma*sigma))/sigma;\n" +"}\n" +"void main()\n" +"{\n" +"vec3 c = texture2D(uSampler, gl_FragCoord.xy / vec2(screenWidth, screenHeight).xy).rgb;\n" +"const int mSize = 11;\n" +"const int kSize = (mSize - 1)/2;\n" +"float kernel[mSize];\n" +"vec3 final_colour = vec3(0.0);\n" +"float sigma = 7.0;\n" +"float z = 0.0;\n" +"for (int j = 0; j <= kSize; ++j)\n" +"{\n" +"kernel[kSize+j] = kernel[kSize-j] = normpdf(float(j),sigma);\n" +"}\n" +"for (int j = 0; j < mSize; ++j)\n" +"{\n" +"z += kernel[j];\n" +"}\n" +"for (int i = -kSize; i <= kSize; ++i)\n" +"{\n" +"for (int j = -kSize; j <= kSize; ++j)\n" +"{\n" +"final_colour += kernel[kSize+j]*kernel[kSize+i]*texture2D(uSampler, (gl_FragCoord.xy+vec2(float(i),float(j))) / vec2(screenWidth, screenHeight).xy).rgb;\n" +"}\n}\n" +"gl_FragColor = vec4(final_colour/(z*z), 1.0);\n" +"}"