const int KernelSize = 16; uniform float KernelValue1f[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) { float x, y, z, w; x = KernelValue1f[i]; ++i; y = KernelValue1f[i]; ++i; z = KernelValue1f[i]; ++i; w = KernelValue1f[i]; sum += tmp * vec4(x, y, z, w); } gl_FrontColor = sum; }