Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
комп графика Лекции.docx
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
200.48 Кб
Скачать

Задание параметров текстуры

Один элемент экрана может перекрывать несколько элементов массива образа. Что бы избежать проблем связанных с лестничностным эффектом, необходимо уточнить способ определения цвета каждого пикселя. Для этого случая используется команда

void glTexParameter[fi]

(GLenum target,

GLenum pname,

GLfloat param

);

target – определяет, с какой текстурой предполагается работать:

GL_TEXTURE_1D – одномерной;

GL_TEXTURE_2D – двухмерной.

pname – имя параметра.

GL_TEXTURE_MIN_FILTER- определяет функцию уменьшения текстуры используется, когда площадь

пикселя, на который она накладывается, больше элемента текстуры.

Всего использует шесть параметров (param).

Два из них:

GL_NEAREST – использует один ближайший к центру пикселя

элемент текстуры;

GL_LINEAR– использует среднеквадратичное значение четырех ближайший элемент

текстуры, остальные четыре выбирают уровень детализации, наиболее

соответствующему размеру пикселя.

GL_NEAREST_MIPMAP_NEAREST- и использует GL_NEAREST,

GL_LINEAR_MIPMAP_NEAREST -и использует оба критерия,

GL_LINEAR_MIPMAP_LINEAR- - и использует GL_LINEAR,

GL_LINEAR_MIPMAP_ LINEAR - и использует оба критерия.

GL_TEXTURE_MAG_FILTER- определяет функцию увеличения текстуры используется, когда площадь

пикселя, на который она накладывается, меньше элемента текстуры.

Всего имеется шесть таких функций.

GL_TEXTURE_WRAP_S – устанавливает параметр сворачивания координаты s

текстуры (param):

GL_CLAMP- формирует координату s в диапазоне [0,1] GL_REPEAT- отбрасывает целую часть координаты s, и тем самым создает

повторяющийся трафарет.

GL_TEXTURE_WRAP_T– устанавливает параметр сворачивания координаты s

текстуры (param):

GL_CLAMP- формирует координату t в диапазоне [0,1] GL_REPEAT- отбрасывает целую часть координаты t,

и тем самым создает повторяющийся трафарет.

Для векторной формы команды допустимо значение

GL_ TEXTURE_BORDER_COLOR – устанавливает цвет RGBA бордюра.

Взаимодействие текстуры с объектом

описывается командами:

void glTexEnv[if] void glTexEnv[if]v

(GLenum target, и (GLenum target,

GLenum pname, GLenum pname,

GLfloat param GLfloat params

); );

target – определяет, конфигурацию текстуры, равен GL_ TEXTURE_ENV.

pname:

GL_ TEXTURE_ENV_MODE. – для скалярного варианта;

GL_ TEXTURE_ENV_COLOR – для векторного варианта.

param:

GL_MODULATE, GL_DECAL или GL_BLAND

params: указатель на массив, вышеперечисленных констант или на цвет RGBA.

число компонентов цвета

GL_MODULATE

GL_DECAL

GL_BLAND

3

4

Cv=CtCf

Av=Af

Cv=CtCf

Av=Af At

не определен

не определен

Cv=Ct

Av=Af

Cv=(1-At)Cf+AtCt

Av=Af

C-тройка RGBA;

A-значение альфа;

L-яркость.

индексы: f – фрагмент, на который накладывается текстура;

t-образ текстуры.

v – результирующее значение, которое потом приводится к диапазону [0,1].

Примечание:

По умолчанию

для GL_ TEXTURE_ENV_MODE. установлено значение GL_MODULATE

GL_ TEXTURE_ENV_COLOR установлено значение (1,1,1,1).