在webgl 1.0中不能声明数组



我正在尝试将着色器从glsl 300 es移植到glsl 100,因此它可以在更多设备上工作。我有一个数组,它在glsl 300上工作得很好,但在glsl 100上它就不起作用了。为了测试这是否与我的着色器的其余部分有关,还是与数组有关,我在最小的着色器中添加了一个简单的数组。

#version 100
attribute vec2 Pos;
void main()
{
float[2] test;
gl_Position = vec4(Pos,0,0);
}

当这个着色器编译webgl给我这个错误:

ERROR: 0:6: 'first-class array': not supported

正确的语法是

float[2] test;

float test[2];

参见数据类型(GLSL) -数组

最新更新