Универсальный параметр - это данные, передаваемые в шейдер GL, которые не изменяются во время вызова отрисовки.
Вы можете запросить связанную программу GLSL для получения списка активных униформ со следующим кодом:
int total = -1;
glGetProgramiv( program_id, GL_ACTIVE_UNIFORMS, &total );
for(int i=0; i<total; ++i) {
int name_len=-1, num=-1;
GLenum type = GL_ZERO;
char name[100];
glGetActiveUniform( program_id, GLuint(i), sizeof(name)-1,
&name_len, &num, &type, name );
name[name_len] = 0;
GLuint location = glGetUniformLocation( program_id, name );
}
Этот код извлекает ряд активных униформ и выполняет итерацию по ним, извлекая имя, тип, количество значений и одинаковые местоположения.