Массив glsl es const mat2

Я пытаюсь скомпилировать следующий код в Open GL ES 2.0 (в RenderMonkey):

const mat2 ma[2] =  mat2[2](
                     mat2( vec2(0.0, -1.0), vec2(1.0, 0.0) ),
                     mat2( vec2(0.0, -1.0), vec2(1.0, 0.0) )
                    );

Но компилятор говорит:

OpenGL ES Preview Window: Compiling vertex shader API(OpenGL ES) /Effect Group 1/Effect1/Pass 0/Vertex Program/ ... failure
   COMPILE ERROR: API(OpenGL ES) /Effect Group 1/Effect1/Pass 0/Vertex Program/ (13): ERROR: 0:13: 'constructor' : if a matrix argument is given to a matrix constructor, it is an error to have any other arguments. 
   COMPILE ERROR: API(OpenGL ES) /Effect Group 1/Effect1/Pass 0/Vertex Program/ (10): ERROR: 0:10: '=' :  cannot assign to 'const array of 2X2 matrix of float'

Что я делаю не так?

1 ответ

Решение

[ РЕДАКТИРОВАТЬ ]

В webgl/chrome я получаю это:

ERROR: 0:4: 'ma' : arrays may not be declared constant since they cannot be initialized 
ERROR: 0:4: '=' : syntax error 

Это не выглядит хорошо.

Возможно связано: Как определить постоянный массив в GLSL (OpenGL ES 2.0)?


Настольный GL...

Ваш код работает для меня, однако я получаю это без установки версии:

warning C7551: OpenGL first class arrays require #version 120

Можете ли вы предоставить #version строка в RenderMonkey?

Я сомневаюсь, что это так, но действительно старая карта или драйверы могут быть фактором.

Я не думаю, что вам нужно второе 2 или: const mat2 ma[2] = mat2[](... Это хорошо

Другие вопросы по тегам