Я хочу передать массив vec4 фрагментному шейдеру OpenGL в качестве униформы, и это кажется намного сложнее, чем я надеялся. Дошло до того, что я пытаюсь передать массив GLfloat и реконструировать vec4 в шейдере, но это все еще не работает.
Я попытался объявить в vshader:
#extension GL_NV_shader_buffer_load : enable
uniform GLfloat* points;
и из кода вызовите:
glUniform1fv(points, pointsLen*4, points);
думая, что я передаю числа с плавающей запятой группами по 1, а количество vec4 у меня в 4 раза больше.
К сожалению, этот vshader не передает компиляцию в программу GLSL.
Как я могу это исправить? Либо исправить это, либо сделать это совершенно по-другому :)
uniform vec4 positions[50]
не работает? - person genpfault   schedule 20.01.2012