Для выбора трехмерных координат текстуры используется функция

glTexCoord3* (sCoord, tCoord, rCoord); Затем каждая выбранная точка в пространстве текстур соотносится с точкой сцены во внешней системе координат.

ОПЦИИ ЦВЕТА ТЕКСТУРНЫХ УЗОРОВ OpenGL

Элементы пространства текстур можно задать множеством способов. Третий аргумент в функциях glTexImagelD, glTexImage2D и glTexImagelD используется для задания общего формата и числа цветовых компонентов каждого элемента узора. Для этого доступно примерно 40 символьных констант. Например, каждому элементу текстуры может присваиваться набор RGBA-значений, набор RGB-значений, одно альфа-значение, одно значение интенсивности красного, одно значение освещенности или пара “значение освещенности и альфа-фактор”. Кроме того, некоторые константы также задают размер в битах. Константа OpenGL GL_R3_G3_B2, например, задается использованием однобайтового (8 бит) RGB-цвета с 3 бит, выделенными для красного компонента, 3 бит, выделенными для зеленого компонента, и 2 бит, выделенными для синего компонента.

Затем в текстурных функциях используется параметр dataFormat, с помощью которого задается конкретный формат элементов текстуры. Значение этого параметра можно выбирать из 11 символьных констант. Это позволяет задать каждый элемент текстуры как индекс в таблице цветов, отдельное альфа-значение, отдельное значение освещенности, пару “освещенность-альфа”, отдельное значение интенсивности одного RGB-компонента, три RGB-компонента или четыре компонента спецификации RGBA в порядке BGRA. Кроме того, параметру dataType присваивается такое значение, как GL_BYTE, GL_INT, GL_FLOAT или символьная константа, задающая тип данных и размер в битах. Значение параметра “тип данных” можно выбирать из набора, включающего 20 символьных констант.

ОПЦИИ ОТОБРАЖЕНИЯ ТЕКСТУРЫ В OpenGL

Элементы текстуры можно так применить к объекту, чтобы текстурные значения объединялись с текущими компонентами цвета объекта, или же использовать текстурные значения, чтобы заменить цвет объекта. Метод отображения текстуры выбирается с помощью функции

glTexEnvi (GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE,

applicationMethod) ; Если параметру applicationMethod присвоено значение GL_REPLACE, тогда цвет, освещенность, интенсивность или альфа-фактор текстуры заменяет соответствующее значение объекта. Например, текстурный узор из альфа-факторов заменяет альфа-факторы объекта. Подобные операции замены используются, когда текстурные узоры заданы только значениями освещенности или интенсивности. В таких случаях узор из значений интенсивности зеленого компонента замещает зеленый компонент объекта.

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


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