Каждая из команд, предшествующих созданию текстуры, включает аргумент степени детализации, поддерживающий создание текстур для объектов различной удаленности (mipmap textures). Такая текстура - это набор массивов с одним и тем же изображением. Каждый массив в каждом своем измерении имеет разрешение, вполовину меньшее разрешения предыдущего массива. Смысл использования таких текстур в том, что поверхность объектов, созданная с их помощью, будет хорошо выглядеть при любом удалении. Если для объекта указана такая текстура, OpenGL будет автоматически выбирать нужный уровень уменыаенности текстуры при рисовании объекта. Пикселы, из которых состоит текстура, называются текселами. Возможна также интерполяция между текселами двух соседних уровней уменьшенное™. Объекты, которым назначены текстуры с уровнями удаленности, обрабатываются с высоким качеством вне зависимости от их реального размера на экране.
После определения текстурного объекта и присоединения его к текстурному модулю можно устанавливать для текстуры параметры, не имеющие отношения к пикселам, функцией glTexParameter. Этой командой устанавливаются параметры, определяющие интерпретацию текстурного объекта при первичном введении, изменении объекта или доступе к объекту.
Параметрами текстурного объекта являются:
□ поведение объекта в направлении каждого измерения (будет ли текстура повторяться, просто смыкаться или зеркально отображаться при выходе за пределы диапазона [0, 1]);
□ фильтр уменьшения, который определяет способ дискретизации текстуры, если она должна быть уменьшена при преобразовании из текстурного пространства в оконное пространство и наложении на поверхность;
□ фильтр увеличения, который определяет способ дискретизации текстуры, если она должна быть увеличена при преобразовании из текстурного пространства в оконное пространство и наложении на поверхность;
□ цвет рамки в случае, если поведение объекта в направлении каждого измерения учитывает смыкание с рамкой;
□ приоритетность текстуры (значение от 0 до 1, которое может быть присвоено текстуре. Это значение определяет скорость работы OpenGL с данной текстурой);
□ параметры замыкания и смешения для значения уровня детализации, вычисляемого OpenGL;
□ уровень базового (наивысшего) разрешения для множественных текстур;
□ уровень базового (самого низкого) разрешения для множественных текстур;
□ параметры, определяющие, будут ли выполняться какие-либо операции сравнения при доступе к текстуре, какие именно и как рассматривать результат сравнения (эта особенность используется обычно в процессе работы с текстурами глубины - для создания тени);
□ параметр для множественных текстур, определяющий, будут ли перевычис-ляться автоматически все уровни текстуры в случае, когда текстура только что задана или изменена.
Способ наложения текстуры на графический примитив определяется параметрами текстурной среды, которые устанавливаются функцией gl TexEnv. Существует обширный набор жестко определенных формул для замены цвета объекта тем, который был вычислен на основании параметров наложенной текстуры. Достаточно сказать, что такие функции поддерживают замену, модуляцию, декорирование, сглаживание, сложение и сложные комбинации значений красного, зеленого, синего цветов и компонента прозрачности. Большого разнообразия эффектов можно достичь с помощью гибкости, обеспечиваемой функцией gl TexEnv. Ее можно использовать, чтобы задать дополнительные параметры смешения для модулей, которые будут добавлены к параметрам смешения текстурного объекта, описанным в предыдущем абзаце.