const int KernelSize = 9; uniform vec2 KernelValue2f[KernelSize]; void main(void) { int i; vec4 sum = vec4(0.0); vec4 tmp = gl_Color; gl_Position = gl_Vertex; for (i = 0; i < KernelSize; ++i) { vec2 rg, ba; rg = KernelValue2f[i]; ++i; if (i < KernelSize) ba = KernelValue2f[i]; else ba = vec2(0, 0); sum += tmp * vec4(rg, ba); } gl_FrontColor = sum; }