123456789101112131415161718192021222324252627282930313233343536373839404142 |
- #ifdef GL_ES
- precision highp float;
- #endif
- // Samplers
- varying vec2 vUV;
- uniform sampler2D textureSampler;
- uniform vec2 screenSize;
- uniform float kernel[9];
- void main(void)
- {
- vec2 onePixel = vec2(1.0, 1.0) / screenSize;
- vec4 colorSum =
- texture2D(textureSampler, vUV + onePixel * vec2(-1, -1)) * kernel[0] +
- texture2D(textureSampler, vUV + onePixel * vec2(0, -1)) * kernel[1] +
- texture2D(textureSampler, vUV + onePixel * vec2(1, -1)) * kernel[2] +
- texture2D(textureSampler, vUV + onePixel * vec2(-1, 0)) * kernel[3] +
- texture2D(textureSampler, vUV + onePixel * vec2(0, 0)) * kernel[4] +
- texture2D(textureSampler, vUV + onePixel * vec2(1, 0)) * kernel[5] +
- texture2D(textureSampler, vUV + onePixel * vec2(-1, 1)) * kernel[6] +
- texture2D(textureSampler, vUV + onePixel * vec2(0, 1)) * kernel[7] +
- texture2D(textureSampler, vUV + onePixel * vec2(1, 1)) * kernel[8];
- float kernelWeight =
- kernel[0] +
- kernel[1] +
- kernel[2] +
- kernel[3] +
- kernel[4] +
- kernel[5] +
- kernel[6] +
- kernel[7] +
- kernel[8];
- if (kernelWeight <= 0.0) {
- kernelWeight = 1.0;
- }
- gl_FragColor = vec4((colorSum / kernelWeight).rgb, 1);
- }
|