Изображение выводится начиная с текущей растровой позиции.

12.10. Наложение текстуры

Текстурирование позволяет наложить изображение на многоугольник и вывести этот многоугольник с наложенной на него текстурой, соответствующим образом преобразованной. OpenGL поддерживает одно- и двумерные текстуры и различные способы наложения (применения) текстуры.

Для использования текстуры надо сначала разрешить одно- или двумерное текстурирование при помощи команд

glEnable ( GL_TEXTURE_1 D );

или

glEnable ( GL_TEXTURE_2D );

Для задания двумерной текстуры служит процедура void glTexlmage2D ( GLenum target, GLint level, GLint component, GLsizei width, GLsizei height, GLint border, GLenum format, GLenum type, const GLvoid * pixels ); Компьютерная графика. Полигональные модели Параметр target зарезервирован для будущего использования и в нынешней версии должен быть равен GL_TEXTURE_2D.

Параметр level используется в том случае, если задается несколько разрешений данной текстуры; при ровно одном разрешении он должен быть равным нулю.

Следующий параметр - component - целое число от 1 до 4, показывающее, какие из RGBA-компонент выбраны для использования. Значение 1 выбирает компоненту R, значение 2 выбирает R и А компоненты, 3 соответствует R, G и В, а 4 соответствует компонентам RGBA.

Параметры width и height задают размеры текстуры, border задает размер границы (бортика), обычно равный нулю. Как параметр width, так и параметр height, должны иметь вид 2n + 2Z?, где п - целое число, а Ъ - значение параметра border. Максимальный размер текстуры зависит от реализации OpenGL, но он не менее 64*64.

Смысл параметров format и type аналогичен их смыслу в процедурах glReadPixels и glDrawPixels.

При текстурировании OpenGL поддерживает использование пирамидального фильтрования (mip-mappping). Для этого необходимо иметь текстуры всех промежуточных размеров, являющихся степенями двух, вплоть до 1x1, и для каждого такого разрешения вызвать glTexImage2D с соответствующими параметрами level, width, height и image. Кроме того, необходимо задать способ фильтрования, который будет применяться при выводе текстуры.


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