Передача массива vec2 во фрагментный шейдер Opengl es 2.0

#ios #opengl-es #fragment-shader #uniform

#iOS #opengl-es #фрагмент-шейдер #Униформа

Вопрос:

Я пытаюсь передать массив vec2 в фрагментный шейдер, но, похоже, не могу понять, как это сделать.

В моем приложении у меня есть следующий массив.

 GLfloat myMatrix[] = { 100.0, 100.0,
    200.0, 200.0 };

glUniformMatrix2fv(matrixLocation, 2, 0, myMatrix);
  

и в моем фрагментном шейдере я пытаюсь получить доступ к этим значениям следующим образом

 uniform vec2 myMatrix[2];

gl_FragColor = gl_FragCoord.xy   myMatrix[0].xy;
  

однако fragcolor не изменяется, как если бы я жестко закодировал его, чтобы

 gl_FragColor = gl_FragCoord.xy   vec2( 100.0, 100.0 ).xy;
  

Есть идеи, как я могу передать эти значения vec2 в шейдер

Заранее спасибо

Комментарии:

1. glUniform2f(равномерное расположение, X, Y)

2. Мне нужно передать массив элементов, каждый из которых имеет два значения. чтобы я мог заполнить свой массив myMatrix и перебирать значения.

3. Я разработал это в моем основном методе GLfloat PointArray[2][2]; glUniform2fv(uniformIndex, 2, (GLfloat *) amp;PointArray); и внутри шейдера uniform указывает vec2[10]; Надеюсь, это поможет кому-то еще.

4. Почему бы не поместить ответ в поле ответа вместо комментария, чтобы он был легче доступен читателям и вопрос не выглядел неотвеченным?