Соответствие индекса в массиве дополнительных атрибутов вершины с определенной разработчиком attribute-переменной вершинного шейдера является частью состояния программного объекта, но текущее значение дополнительного атрибута вершины - нет. Зато это значение является частью текущего состояния OpenGL, как и для стандартных атрибутов вершины, и сохраняется даже после установки другого программного объекта.

Приложение может задавать дополнительные атрибуты вершины даже в том случае, если они не соответствуют каким-либо переменным вершинного шейдера. Эти значения просто будут являться частью текущего состояния, и вершинный шейдер не будет иметь к ним доступа. Если во время выполнения вершинного шейдера значение дополнительного атрибута вершины, связанного с переменной, не меняется, шейдер будет использовать одно и то же значение повторно.

Приложение Б. Справочник функций API

Дополнительный атрибут вершины с индексом 0 - то же самое, что определенные в OpenGL координаты вершины. Функции glVertex2, glVertex3, glVertex4 полностью эквивалентны соответствующим функциям glVertexAttribARB с аргументом 1 ndex, равным 0. Вершинный шейдер может обращаться к этому атрибуту с помощью встроенной attribute-переменной gl_Vertex. Для дополнительного атрибута вершины с индексом 0 не существует текущих значений - это единственный атрибут с такими свойствами. Все остальные вызовы функций для установки стандартных атрибутов вершины можно чередовать с вызовами функций для установки дополнительных атрибутов.

Примечания Значения дополнительных атрибутов вершины можно задавать в любое время. В частности, функция glVertexAttribARB может вызываться между соответствующими вызовами gl Begi п и gl End.

Можно устанавливать соответствие одного индекса с несколькими именами attribute-переменных. Эти имена будут являться псевдонимами, что возможно только в том случае, если в вершинном шейдере активна только одна из переменных или каждый путь выполнения шейдера содержит не больше одной такой переменной. Реализации OpenGL не будут проверять наличие псевдонимов для выполнения оптимизации.


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