gluBuild2DMipmaps(GL TEXTURE_2D, 3, 64, 64, GL RGB, GL_UNSIGNED_BYTE, my_texels);

Ту же самую процедуру можно выполнить и с помощью функций библиотеки GL. Настройка режима автоматического использования полученных мип-образцов текстуры выполняется передачей соответствующих аргументов функции glTexParameterf ( ) :

glTexParameterf(GL_TEXTURE_2D,
GL_TEXTURE_MIN_FILTER, GL_NEAREST_MIPMAP_NEAREST);

Еще одну проблему порождает механизм взаимодействия процессов тонирования и наложения. При использовании RGB-цветов программисту нужно выбрать один из двух вариантов.

386 Глава 9. Операции с изображением на уровне растрового представления Текстура может "модулировать" оттенок, назначенный участку изображения в процессе тонирования. Это означает, что значения интенсивности наложенной текстуры умножаются на значения интенсивностей основных цветов, сформированных алгоритмом тонирования. Режим модуляции считается в OpenGL основным и устанавливается по умолчанию. В явном виде этот режим устанавливается вызовом функции glTexEnv( ):

glTexEnv(GL_TEX_ENV, GL_TEX_ENV_MODE, GL_MODULATE);

Если в вызове этой функции в качестве третьего аргумента передать не GL_MODULATE, а GL DECAL, то цвет, назначенный алгоритмом наложения, "убьет" цвет, назначенный алгоритмом тонирования. В результате имеющиеся в пространстве сцены источники света никакого влияния на изображение объекта оказывать не будут. Эта технология называется деколирова-нием (decaling).

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


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