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

У каждой текстурной единицы есть функция текстурной среды. Текстурные единицы соединяются последовательно. Значение фрагмента вычисляется из

Обзор OpenGL

первой текстурной единицы, при этом используется значение, прочитанное из текстурной памяти, и ее функции текстурной среды, результат передается в качестве входного значения для следующей текстурной единицы. Это значение совмещается с функцией текстурной среды для второго текстурного модуля и со значением, прочитанным из текстурной памяти, и используется для вычисления третьего текстурного модуля. То же повторяется для всех включенных текстурных модулей.

После того как текстурные объекты определены и один или больше текстурных модулей правильно установлены и включены, текстурирование применяется ко всем графическим примитивам последовательно. Текстурные координаты для каждой вершины задаются функциями glTexCoord или glMultiTexCoord (при методе «вершина за раз») или как массив, переданный в функцию glTexCoordPointer (при методе массивов вершин). Функция glMul tiTexCoord определяет текстурные координаты, которые будут применяться для заданного текстурного модуля. Команда glTexCoord почти аналогична glMu 1 tiTexCoord, с тем лишь отличием, что параметр текстуры всегда установлен в GL_TEXTUREO. Для массивов вершин необходимо вызывать командой gl Cl i ent Acti veTexture между вызовами gl TexCoordPoi nter, чтобы задавать различные массивы текстурных координат для разных текстурных модулей.

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


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