Мне нужно нарисовать сферу (мне это уже удалось), используя ее параметрическую формулу.
Мне также нужно сгенерировать массив с таким количеством значений, сколько есть вершин (мне тоже удалось это сделать). Значения должны быть в диапазоне от 0,95 до 1,05.
Я должен передать этот массив вершинному шейдеру как униформу и умножить каждую вершину сферы на соответствующее значение из массива (это должно создать сферу, похожую на Землю).
Проблема в том, что я не могу передать массив как униформу, и даже если бы я мог, я не понимаю, как я мог бы выбрать соответствующее значение из массива, с которым мне нужно умножить его.
in vec3 pos;
in vec3 col;
uniform float arr[];
out vec3 out_col;
uniform mat4 mtr;
void main()
{
gl_Position = mtr * vec4(pos, 1) * vec4(arr[someIndex], 1);
out_col = col;
}
arr [] - массив, содержащий значения для каждой вершины. pos - текущая вершина, а col - текущий цвет. Каким должен быть someIndex и как я могу передать массив как равномерный?