| const int KernelSize = 9; | |
| //texture offsets | |
| uniform vec2 Offset[KernelSize]; | |
| //convolution kernel | |
| uniform vec4 KernelValue[KernelSize]; | |
| uniform sampler2D srcTex; | |
| uniform vec4 ScaleFactor; | |
| uniform vec4 BaseColor; | |
| void main(void) | |
| { | |
| int i; | |
| vec4 sum = vec4(0.0); | |
| for (i = 0; i < KernelSize; ++i) { | |
| vec4 tmp = texture2D(srcTex, gl_TexCoord[0].st + Offset[i]); | |
| sum += tmp * KernelValue[i]; | |
| } | |
| gl_FragColor = sum * ScaleFactor + BaseColor; | |
| } |