объекта, не будут применяться до следующей компоновки.

Функцию gl Bi ndAttri bLocationARB можно вызывать и до того, как шейдерные «Еьекты присоединены к программному объекту. Также можно связываться с име-iïféM переменной, не используемой в вершинном шейдере вообще. :- Приложение может при необходимости связывать более одной переменной Щщим и тем же индексом атрибута. Такие переменные называются псевдонимы Шрибутов, их можно использовать в случае, если только одно из имен исполь-зргся в программе или же если ни один путь выполнения программы не совме-Шет в себе нескольких псевдонимов. В этом случае компилятор и компоновщик Могут полагаться на отсутствие псевдонимов и выполнять оптимизацию кода. От деализации OpenGL не требуется проверять наличие псевдонимов. Так как нельзя связывать стандартные атрибуты, невозможно сделать псевдонимы для них.

Связывание можно выполнить в любой момент с помощью функции glBind-…ttribLocati onARB. На самом деле связывание не выполняется до начала выполнения функции glLinkProgramARB, но перед компоновкой должны быть связаны все беременные, которые предполагается использовать в шейдере. После компонов-Шпрограммного объекта индексы для attribute-переменных не меняются (и можно долучить значения этих переменных) до следующей компоновки. Чтобы полупить индекс атрибута для заданного имени attribute-переменной, можно использовать функцию

GLint glGetAttribLocatioriARB(GLhand1eARB program, const GLcharARB *name)

Функция запрашивает значение attribute-переменной с именем пате у скомпонованного программного объекта p?vgram. Возвращаемое значение - индекс в массиве дополнительных атрибутов, связанный с name. Если name - attribute-переменная матричного типа, возвращается индекс первого столбца. Если заданная переменная не является активным атрибутом указанного программного объекта или ее имя начинается с зарезервированного префикса g]_, возвращается значение -1.

API языка тендеров OpenGL

Функция gl GetAttri bLocati onARB возвращает последнее связывание, заданное до вызова функции дИтпкРгодгатАкВдля заданного программного объекта. Те связывания, что были заданы после компоновки, не возвращаются gl GetAttri bLocati onARB, Используя эти функции, создадим вершинный шейдер, который будет содержать определенную разработчиком attribute-переменную Opaci ty (способность закрывать объекты, расположенные на заднем плане), значение которой будет использоваться при вычислении освещения. Предположим, значения для этой переменной будет передаваться под индексом 1 и нужно выполнить соответствующее связывание:


⇐ Предыдущая| |Следующая ⇒