static GLuint texNamesArray [6]; glGenTextures (1, texNamesArray [3]); glBindTexture (GL_TEXTURE_2D, texNamesArray [3]); В OpenGL есть команда запроса, позволяющая определить, используется ли имя текстуры для существующего узора:

gllsTexture (texName); Данная функция возвращает значение GL_TRUE, если texName - имя существующего узора, в противном случае возвращается значение GL_FALSE. Значение GL_FAI.SE также возвращается, если texName = 0, или если произошла ошибка.

ТЕКСТУРНЫЕ ПОДУЗОРЫ OpenGL

Когда текстура определена, можно определить другой узор (подузор), позволяющий модифицировать любую часть или весь исходный узор. Текстурные значения в поду-зоре замещают заданные значения исходного узора. Данный процесс обычно эффективнее создания текстуры заново с новыми элементами. Например, приведенная ниже функция задает набор RGBA-кодов, которым заменяется участок двухмерной текстуры, не имеющий границы и не являющийся сокращенным вариантом большего узора.

glTexSubImage2D (GL_TEXTURE_2D, 0, xTexElement,

yTexElement, GL_RGBA, texSubWidth, texSubHeight,

0, dataFormat, dataType, subSurfTexArray); Параметры xTexElement и yTexElement используются для выбора текстурного элемента с целыми координатами в исходном узоре, где точка (0, 0) относится к текстурному элементу в левом нижнем углу узора. Подузор так вставляется в исходный узор, что его левый нижний угол располагается в точке (xTexElement, yTexElement). Параметры TexSubWidth и TexSubHeight задают размер подузора. Число цветовых элементов в массиве subSurfTexArray для текстурного узора RGBA равно 4 х texSubWidth х texSubHeight. Другие параметры не отличаются от используемых в функции glTexImage, и подобные подузоры можно задать для одно- и трехмерных текстур.

СОКРАЩЕННЫЕ ТЕКСТУРНЫЕ УЗОРЫ OpenGL

Для объектов с уменьшенными размерами можно использовать процедуры OpenGL при создании ряда сокращенных текстурных узоров, называемых MIP-образами (раздел 10.17). Одним из способов создания последовательности сокращенных узоров является многократный вызов функции gl Тех Image с использованием возрастающих целых значений второго аргумента (“номер уровня”) функции. Для исходного узора номер сокращенного уровня - 0. Сокращенному узору, являющемуся полови ной размера исходного узора, присваивается номер уровня 1, при втором сокращении размера вдвое присваивается номер 2, и так далее при последующих сокращениях. Функция copyTexImage также генерирует сокращенный узор при указании номера уровня 1 или больше.

В качестве альтернативного варианта можно указать OpenGL генерировать сокращенные узоры автоматически. Например, сокращенные узоры RGBA получаются для поверхностной текстуры 16 на 16с использованием следующей функции GLU.

gluBuild2DMipmaps (GL_TEXTURE_2D, GL_RGBA, 16, 16, GL_RGBA,

GL_UNSIGNED_BYTE, surfTexArray); Данная функция генерирует полный набор из четырех узоров с сокращенными размерами: 8 на 8, 4 на 4, 2 на 2 и 1 на 1. Кроме того, с помощью указанной выше команды можно выбрать сокращение

gluBuild2 DMipmapLevels (GL_TEXTURE_2D, GL_RGBA, 16, 16,


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