Как корректно передать массив матриц во фрагментный шейдер GLSL?
Мне надо передать массив из матриц в основной шейдер для рендеринга конечной картинки (теней). Я пытался передавать матрицы разными способами, но при преобразовании точки получается всегда один и тот-же ответ, (0,0,0). Дело не в настройках матрицах, так как через те-же матрицы корректно рендерятся карты теней. Я пытался гуглить ответ, но в итоге пришёл лишь к процессу обычной передачи массива.
Вот способ передачи, который я нашёл
int location = GL20.glGetUniformLocation(program, matrix);
FloatBuffer matricesBuffer = BufferUtils.createFloatBuffer(16 * 6);
for (int i = 0; i < this.matrix.length; i++) this.matrix[i].get(matricesBuffer);
matricesBuffer.flip();
GL20.glUniformMatrix4fv(location, false, matricesBuffer);
тест матрицы, который я проводил
uniform mat4 lightMatrix[6];
gl_FragColor = vec4((lightMatrix[3]*vec4(1,1,1,1)).rgb,1);
Вот карта теней. Это 1 из матриц (в примере выше под номером 3, их всего 6), я аналогично проверял все карты теней, всё работает. Тут карта теней натянута на плоскость, и отражена по XZ. Красная точка - источник теней, из которой происходит рендер карт теней.