Таблица 4.7

Параметр pi

Параметр р2

GL_TEXTURE_MAG_FILTER GL_NEAREST, GL.LINEAR
GL_TEXTURE_MIN_FILTER GL_NEAREST, GL.LINEAR, GL_NEAREST_MIPMAP_NEAREST, GL_NEAREST_MIPMAP_LINEAR, GL_LINEAR_MIPMAP_NEAREST, GL_LINEAR_MIPMAP_LINEAR

Значение GL_NEAREST соответствует выбору тексела с координатами, ближайшими к центру пиксела. Значению GL_LINEAR соответствует выбор взвешенной линейной комбинации из массива 2x2 тексела, лежащих ближе всего к рассматриваемому пикселу. При использовании пирамидального фильтрования помимо способа выбора тексела на одном слое текстуры появляется возможность либо выбрать один соответствующий слой, либо про-интерполировать результаты выбора между двумя соседними слоями.

Для правильного применения текстуры следует для каждой вершины задать соответствующие ему координаты текстуры при помощи процедуры

void glTexCoord{1234}{sifd}[v] (TYPE coord, … ) ;

Этот вызов задает значение индексов текстуры для последующей команды glVertex *.

Основы библиотеки OpenGL

Если размер грани больше, чем размер текстуры, то для задания циклического повторения текстуры служат команды

glTextParameteri ( GL_TEXTURE_2D, GL_TEXTURE_S_WRAP, GL_REPEAT );
glTextParameteri ( GL_TEXTURE_2D, GL_TEXTURE_T_WRAP, GL_REPEAT );

Каждая текстура в OpenGL идентифицируется целочисленным идентификатором. Перед использованием текстуры надо зарезервировать для нее идентификатор. Для резервирования набора подряд идущих идентификаторов служит функция

void glGenTextures (GLsizei count, GLuint * textures );

где параметр count содержит число идентификаторов, которые надо зарезервировать.

После того как идентификатор текстуры получен, надо сообщить OpenGL, что сейчас будет задаваться (или использоваться) текстура с данным идентификатором. Для этого служит функция

void glBindTexture ( GLenum target, GLuint textures );

В этой функции параметр target принимает одно из следующих значений: GLTEXTUREl D или GLTEXTURE 2D. Параметр texture задает идентификатор текстуры.

По возможности OpenGL пытается хранить текстуры во внутренней памяти ускорителя, поскольку это ускоряет доступ к ней. Однако это не всегда возможно (в первую очередь из-за ограниченного объема этой памяти). Следующая функция позволяет узнать, действительно ли текстура с заданным идентификатором хранится во внутренней памяти ускорителя.


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