Sorry if this is a stupid question,
I have an array but I can not access it unless I hard code it?
vec4 n[4];
vec4 color;
int c = 3;
if (c==0) color = n[0];
if (c==1) color = n[1];
if (c==2) color = n[2];
if (c==3) color = n[3];
// color = n[c]; doesn't work
In most cases, arrays can be indexed with any integer expression.
Arrays of opaque types (e.g. samplers or images) can only be indexed with constant, uniform or dynamically-uniform expressions, depending upon GLSL version.
Arrays need to be explicitly sized if they’re indexed with non-constant expressions.