#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. Почему бы не поместить ответ в поле ответа вместо комментария, чтобы он был легче доступен читателям и вопрос не выглядел неотвеченным?