Ответ 1
Из OpenGL ES SL 1.0 spec, пункт 4.1.9 Arrays
(стр. 24):
Нет механизма инициализации массивов во время объявления изнутри шейдера.
Обратите внимание, что это было преднамеренно опущено. Согласно этому сообщению, версия OpenGL ES SL для OpenGL ES 2 основана на OpenGL SL 1.2. В том же абзаце (стр. 20) содержится:
Массивы могут иметь инициализаторы, сформированные из конструкторов массива:
float a[5] = float[5](3.4, 4.2, 5.0, 5.2, 1.1); float a[5] = float[](3.4, 4.2, 5.0, 5.2, 1.1); // same thing