После создания текстурного объекта необходимо задать для него пиксельные значения, определяющие текстуру. Значения для трехмерной текстуры задаются функцией glTexImage3D, для двухмерной или кубической - функцией glTexIrnage2D, для одномерной - glTexImagelD. При использовании любой из этих трех команд каждое измерение текстурной карты наряду с шириной границы должно иметь размер, кратный степени двойки. Все эти команды работают почти так же, как и glDrawPixels, а отличаются тем, что пикселы, из которых состоит текстура, располагаются в текстурной памяти перед растеризацией. Если нужно переопределить только часть текстуры, используются функции glTexSubImagelD/2D/3D. При этом уже нет ограничений на степень двойки. Также можно создавать или менять текстуры из значений, взятых из буфера кадров, с помощью функций gl CopyTexImagelD/ 2D/3D или glCopyTexSubImagelD/2D/3D.

Функции glCompressedTexImagelD/2D/3D ид! CompressedTexSubImagelD/2D/3D используются для работы с текстурами, представленными в сжатых форматах. Такие текстуры занимают гораздо меньше памяти графического ускорителя, за счет чего она освобождается для дополнительной функциональности или повышается скорость выполнения. Стандарт OpenGL не определяет никаких конкретных форматов, так что приложения должны вначале получить список расширений и определить, поддерживает ли данная реализация сжатые текстуры.

Каждая из команд, предшествующих созданию текстуры, включает аргумент степени детализации, поддерживающий создание текстур для объектов различной удаленности (mipmap textures). Такая текстура - это набор массивов с одним и тем же изображением. Каждый массив в каждом своем измерении имеет разрешение, вполовину меньшее разрешения предыдущего массива. Смысл использования таких текстур в том, что поверхность объектов, созданная с их помощью, будет хорошо выглядеть при любом удалении. Если для объекта указана такая текстура, OpenGL будет автоматически выбирать нужный уровень уменъи/енности текстуры при рисовании объекта. Пикселы, из которых состоит текстура, называются текселами. Возможна также интерполяция между текселами двух соседних уровней уменьшенное™. Объекты, которым назначены текстуры с уровнями удаленности, обрабатываются с высоким качеством вне зависимости от их реального размера на экране.


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