尝试写着色器,然后出现了这么个问题。

‘[]’ : array constructor supported in GLSL ES 3.00 and above only:
float offset[5] = float[5](-0.02, -0.01, 0.0, 0.01, 0.02);

effect是从creator那边默认创建改的,现在我希望可以初始化一个数组,按照描述来看,这个特性要3.0以上版本才能支持。那低于3.0版本的应该怎么实现呢?手动用offset[0]= xx offset[1] = xx,…这种方式可以用,但感觉太蠢了吧。。。我要是初始化一个5x5的数组,那不是要写25个。。。

数组可以使用 Float32Array 类型传入到material去

你的意思是指,不在着色器里面去定义数组,而是通过外部设置uniform的方式来实现吗?

着色器里面用 vec2数组 vec3数组 vec4数组, 但是你这个长度超过4的话可能要用二维数组来实现了

我这边是为了去实现高斯模糊,想要弄5个采样点或者更多。

所以我觉得你的建议可能不太合适。
本来只是一个一维数组,这么一绕改成一个不规则的二维数组,那这个二维数组又怎么初始化?岂不是还要用矩阵了?

高斯的采样点不是通过UV在shader内偏移得出的吗,还用自己传?

这个的问题的重点是怎么在低于3.0的glsl里初始化数组,高斯模糊这个事只是为了让情景更好理解。