访问以变量作为索引的浮点数组时发生GLSL错误

访问以变量作为索引的浮点数组时发生GLSL错误,glsl,Glsl,我在中创建着色器,当我尝试访问如下声明的浮点数组时: float colors[200]; 这样: int i=function(); float color=colors[i]; 如果不编译,则会出现“编译时出错”错误。 这是因为glsl不允许这样做,还是因为这是heroku特有的问题?如果是前者,我如何解决它?好的,我找到了答案(好的,用户已经解决了)。heroku使用WebGL,WebGL使用OpenGL ES 2.0,它不将数组视为普通数组,但更像是分离的变量,因此它无法在运行时访问

我在中创建着色器,当我尝试访问如下声明的浮点数组时:

float colors[200];
这样:

int i=function();
float color=colors[i];
如果不编译,则会出现“编译时出错”错误。 这是因为glsl不允许这样做,还是因为这是heroku特有的问题?如果是前者,我如何解决它?

好的,我找到了答案(好的,用户已经解决了)。heroku使用WebGL,WebGL使用OpenGL ES 2.0,它不将数组视为普通数组,但更像是分离的变量,因此它无法在运行时访问它们,除非它具有常量索引