Смотри также

gl Bi ndAttri bLocationARB, glVertex,glVertexAttribPoi nterARB

g I VertexAttri b Poi nter ARB Название

gl VertexAttri bPoi nterARB - задает массив дополнительных атрибутов вершин.

Прототип функции

void glVertexAttribPointerAREK GLuint index,

GLint size,

GLenum type.

GLboolean normalized,

GLsizei stride.

const GLvoid *pointer)

Параметры

i ndex Индекс дополнительного атрибута вершины, который будет изменяться.

si ze Количество значений каждого элемента массива дополни тельных атрибутов вершины. Допустимые значения 1, 2, 3 или 4.

type Тип данных каждого компонента массива. Допустимые зна чения: GL_BYTE, GL_UNSIGNED_BYTE, GL_SH0RT, GL_UNSIGNED_SHORT, GL_INT, GL_UNSIGNED_INT, GLJLOAT, GL_D0UBLE.

normalized Флаг, определяющий, должны ли значения с фиксирован ной запятой быть нормализованы (GL_TRUE) или непосредственно преобразованы (GL_FALSE).

stride Разница в байтах между смежными атрибутами. Если этот параметр равен 0 (значение по умолчанию), считается, что значения расположены в массиве без промежутков.

poi nter Указатель на первый компонент первого атрибута в массиве.

Описание

Функция glVertexAttribPointerARB задает адрес и формат данных массива значений дополнительного атрибута вершины. В параметре size указывается количество компонентов каждого атрибута - 1, 2, 3 или 4. Параметр type задает тип данных каждого компонента, astride - расстояние между атрибутами, благодаря чему значения атрибутов могут быть перемешаны с другими значениями или, наоборот, храниться в отдельном массиве. При значении normalize, равном GL_TRUE, целочисленные значения преобразуются в значения с плавающей запятой и приводятся к диапазону [-1, 1] для знаковых и [0, 1] для беззнаковых переменных. В противном случае целочисленные значения преобразуются в значения с плавающей запятой без нормализации.

После установки массива дополнительных атрибутов вершины size, type, normalized, stride и pointer сохраняются в клиентском состоянии OpenGL.

Чтобы открыть или запретить доступ к массиву дополнительных атрибутов вершин, функции glEnableVertexAttribArrayARB и glDisableVertexAttribArrayARB вызываются с аргументом index. При использовании массива дополнительных атрибутов вершины он используется в функциях gl DrawArrays, gl DrawEl ements, gl DrawRangeEl ements, glArrayElement, glMultiDrawElements, glMulti DrawArrays.

Примечания

По умолчанию массив дополнительных атрибутов вершины недоступен и не участвует в вызовах функций gl DrawArrays, gl DrawEl ements, gl DrawRangeEl ements, gl ArrayEl ement, glMultiDrawElements, gl Multi DrawArrays.

Выполнение функции gl VertexAttri bPoi nterARB между соответствующими вызовами gl Begin и gl End не разрешается, но не всегда при этом возникает ошибка. Если ошибка не возникает, результат выполнения функции не определен. Функция gl VertexAttri bPoi nterARB обычно реализована в клиенте OpenGL. Параметры массива дополнительных атрибутов вершины являются частью клиентского состояния, и поэтому функции glPushAttrib и glPopAttrib с ними не работают. Вместо этого следует использовать функции gl PushCl i entAttri b и glPopClientAttrib.


⇐ вернуться назад | | далее ⇒