□ 1 ocati on не является корректным адресом uniform-переменной в текущем программном объекте;
□ количество задаваемых значений превышает объявленный размер указанной uniform-переменной;
□ семплер устанавливается не функциями gl Uni formli ARB и glUniformlivARB;
□ функция gl Uni formARB выполняется между соответствующими вызовами gl Begi n и gl End.
Соответствующие GET-функции
glGetActi veUni formARB, в которую передается дескриптор программного объекта.
gl GetUni formLocati onARB, в которую передаются дескриптор программного объекта и имя uniform-переменной.
gl GetUni formARB, в которую передаются дескриптор программного объекта и адрес uniform-переменной.
Смотри также
gl Disable, gl Enable, gl Li nkProgramARB, glUseProgramObjectARB
glllseProgramObjectARB
Название
gl UseProgramObjectARB - устанавливает программный объект в текущее состояние для рендеринга.
Прототип функции
void glUseProgram0bjectAR8(GLhandleARB program)
Параметры
program Дескриптор программного объекта, чьи выполняемые про граммы устанавливаются для рендеринга.
Описание
Функция gl UseProgramObjectARB устанавливает программный объект program в текущее состояние. После успешного связывания шейдерных объектов с программным функцией gl AttachObjectARB, успешной их компиляции функцией gl Compi 1 е-ShaderARB, успешной компоновки функцией gl Li nkProgramARB в программном объекте создается одна или больше выполняемых программ.
Если в программном объекте содержится один или больше успешно скомпилированных и скомпонованных шейдерных объектов типа GL_VERTEX_SHADER_ARB, он будет содержать выполняемую программу для вершинного процессора. А если в программном объекте содержится один или больше успешно скомпилированных и скомпонованных шейдерных объектов типа GL_FRAGMENT_SHADER_ARB, он будет содержать выполняемую программу для фрагментного процессора.
После успешной установки выполняемых программ на программируемых процессорах соответствующая стандартная функциональность уже не будет работать. А именно, если программа установлена на вершинном процессоре, следующие стандартные операции не выполняются:
□ на координаты вершин не накладывается матрица модели - вида;
□ на координаты вершин не накладывается проекционная матрица;
□ на координаты вершин не накладываются матрицы текстур;
□ нормали не преобразуются в пространство координат обзора;
□ не выполняются масштабирование и нормализация нормалей;
□ не выполняется нормализация нормалей по GL_AUT0_N0RMAL;
□ текстурные координаты не создаются автоматически;
□ не вычисляется освещение для вершин;
□ не вычисляется цвет материала;
□ не вычисляется цвет освещения;