Я пытаюсь научиться использовать единообразные объекты буфера, читая OpenGL Superbible 5. У меня есть единообразный блок в моем шейдере:
layout(std140) uniform SkeletonBlock
{
vec3 position[64];
vec4 orientation[64];
} Skeleton;
Теперь мой код для получения индекса:
const GLchar* uniformNames[2] =
{
"SkeletonBlock.position",
"SkeletonBlock.orientation"
};
GLuint uniformIndex[2];
glGetUniformIndices(shaderProgram, 2, uniformNames, uniformIndex);
По какой-то причине этот звонок дает мне действительно высокий индекс (4294967295, последовательно), и я не уверен почему. Я чувствую, что упускаю что-то очевидное. OpenGL сообщает об одном активном унифицированном блоке, который является правильным, из максимально допустимого значения 15. Флажки ошибок не активны ни до, ни после этого раздела кода. Любые предложения, где это может пойти не так?