Функция glTexParameteriv

Задает параметры текстуры.

Синтаксис

void WINAPI glTexParameterfv(
         GLenum target,
         GLenum pname,
   const GLint  *params
);

Параметры

target

Целевая текстура, которая должна быть либо GL_TEXTURE_1D, либо GL_TEXTURE_2D.

pname

Символьное имя параметра текстуры с одним значением. Следующие символы принимаются в pname.

Значение Значение
GL_TEXTURE_MIN_FILTER
Функция минификации текстур используется всякий раз, когда текстурируемый пиксель сопоставляется с областью, превышающей один элемент текстуры. Существует шесть определенных функций минификации. Два из них используют ближайший или ближайший четыре элемента текстуры для вычисления значения текстуры. Остальные четыре используют MIP-карты.
MIP-карта — это упорядоченный набор массивов, представляющих одно и то же изображение с постепенно меньшим разрешением. Если текстура имеет размеры 2nx2m , есть max(n, m) + 1 MIP-карты. Первая MIP-карта — это исходная текстура с размерами 2nx2м. Каждая последующая MIP-карта имеет размеры 2k1x2l1, где 2kx 2l являются измерениями предыдущей MIP-карты, пока k = 0 или l = 0. На этом этапе последующие MIP-карты имеют размер 1x2l1 или 2k1x1 до окончательной MIP-карты с измерением 1x1. MIP-карты определяются с помощью glTexImage1D или glTexImage2D с аргументом уровня детализации, указывающим порядок MIP-карт. Уровень 0 — исходная текстура; level bold max(n, m) — это окончательная MIP-карта 1x1.
GL_TEXTURE_MAG_FILTER
Функция увеличения текстуры используется, когда текстурируемый пиксель сопоставляется с областью, меньшей или равной одному элементу текстуры. Он задает функцию увеличения текстуры как GL_NEAREST, так и GL_LINEAR.
GL_TEXTURE_WRAP_S
Задает для параметра wrap для координат текстуры значение GL_CLAMP или GL_REPEAT. GL_CLAMP приводит к тому, что координаты прижаты к диапазону [0,1] и полезны для предотвращения упаковки артефактов при сопоставлении одного изображения с объектом. GL_REPEAT приводит к тому, что целочисленная часть координаты игнорируется; OpenGL использует только дробную часть, создавая таким образом повторяющийся шаблон. Доступ к элементам текстуры границы осуществляется только в том случае, если для обтекания задано значение GL_CLAMP. Изначально для GL_TEXTURE_WRAP_S задано значение GL_REPEAT.
GL_TEXTURE_WRAP_T
Задает параметру wrap для координаты текстуры t значение GL_CLAMP или GL_REPEAT. См. обсуждение в разделе GL_TEXTURE_WRAP_S. Изначально для GL_TEXTURE_WRAP_T задано значение GL_REPEAT.
GL_TEXTURE_BORDER_COLOR
Задает цвет границы. Параметр params содержит четыре значения, составляющие цвет RGBA границы текстуры. Компоненты целочисленного цвета интерпретируются линейно так, что наиболее положительное целое число сопоставляется с 1,0, а наиболее отрицательное целочисленное — с 1,0. Значения при указании зажимаются в диапазоне [0,1]. Изначально цвет границы — (0, 0, 0, 0).
GL_TEXTURE_PRIORITY
Задает приоритет местожительства текстуры для текущей привязанной текстуры. Допустимые значения находятся в диапазоне [0, 1]. Дополнительные сведения см. в разделах glPrioritizeTextures и glBindTexture .

params

Указатель на массив, в котором хранятся значения или значения pname. Параметр params предоставляет функцию для уменьшения текстуры одним из следующих вариантов.

Значение Значение
GL_NEAREST
Возвращает значение элемента текстуры, ближайшего (в манхэттенском расстоянии) к центру текстурируемого пикселя.
GL_LINEAR
Возвращает взвешенный средний показатель четырех элементов текстуры, которые находятся ближе всего к центру текстурируемого пикселя. Они могут включать элементы текстуры границы в зависимости от значений GL_TEXTURE_WRAP_S, GL_TEXTURE_WRAP_T и точного сопоставления. GL_NEAREST обычно выполняется быстрее, чем GL_LINEAR, но он может создавать текстурированные изображения с более острыми краями, так как переход между элементами текстуры не так гладкий. Значение по умолчанию GL_TEXTURE_MAG_FILTER — GL_LINEAR.
GL_NEAREST_MIPMAP_NEAREST
Выбирает MIP-карту, которая наиболее точно соответствует размеру текстурируемого пикселя, и использует критерий GL_NEAREST (элемент текстуры, ближайший к центру пикселя) для получения значения текстуры.
GL_LINEAR_MIPMAP_NEAREST
Выбирает MIP-карту, которая наиболее точно соответствует размеру текстурируемого пикселя, и использует критерий GL_LINEAR (средневзвешенный показатель четырех элементов текстуры, наиболее близких к центру пикселя) для получения значения текстуры.
GL_NEAREST_MIPMAP_LINEAR
Выбирает две MIP-карты, которые наиболее точно соответствуют размеру текстурируемого пикселя, и использует критерий GL_NEAREST (элемент текстуры, ближайший к центру пикселя) для получения значения текстуры из каждой MIP-карты. Конечное значение текстуры — это взвешенный средний показатель этих двух значений.
GL_LINEAR_MIPMAP_LINEAR
Выбирает две MIP-карты, которые наиболее точно соответствуют размеру текстурируемого пикселя, и использует критерий GL_LINEAR (средневзвешенный показатель четырех элементов текстуры, наиболее близких к центру пикселя), чтобы получить значение текстуры из каждой MIP-карты. Конечное значение текстуры — это взвешенный средний показатель этих двух значений.

Параметр params предоставляет функцию для увеличения текстуры одним из следующих вариантов.

Значение Значение
GL_NEAREST
Возвращает значение элемента текстуры, ближайшего (в манхэттенском расстоянии) к центру текстурируемого пикселя.
GL_LINEAR
Возвращает взвешенный средний показатель четырех элементов текстуры, которые находятся ближе всего к центру текстурируемого пикселя. Они могут включать элементы текстуры границы в зависимости от значений GL_TEXTURE_WRAP_S, GL_TEXTURE_WRAP_T и точного сопоставления. GL_NEAREST обычно выполняется быстрее, чем GL_LINEAR, но он может создавать текстурированные изображения с более острыми краями, так как переход между элементами текстуры не так гладкий. Значение по умолчанию GL_TEXTURE_MAG_FILTER — GL_LINEAR.

Возвращаемое значение

Эта функция не возвращает значение.

Коды ошибок

Следующие коды ошибок могут быть получены функцией glGetError .

Имя Значение
GL_INVALID_ENUM
target или pname не является одним из принятых определенных значений, или если параметр должен иметь определенное постоянное значение (на основе значения pname), а не имеет значения .
GL_INVALID_OPERATION
Функция была вызвана между вызовом glBegin и соответствующим вызовом glEnd.

Комментарии

Сопоставление текстур — это метод, который применяет изображение к поверхности объекта, как если бы изображение было наклейкой или целлофаном. Изображение создается в пространстве текстуры с системой координат (s, t). Текстура — это одномерное или двумерное изображение и набор параметров, определяющих, как образцы наследуются на изображении.

Функция glTexParameter присваивает значение или значения в параметре params параметру текстуры, указанному как pname. Параметр target определяет целевую текстуру GL_TEXTURE_1D или GL_TEXTURE_2D.

По мере того как в процессе минификации выполняется выборка большего количества элементов текстуры, будет очевидно меньше артефактов псевдонимов. Хотя функции GL_NEAREST и GL_LINEAR минификации могут выполняться быстрее, чем остальные четыре, они отбирают только один или четыре элемента текстуры для определения значения текстуры отрисовываемого пикселя и могут создавать муаровые узоры или неорванные переходы. Значение по умолчанию GL_TEXTURE_MIN_FILTER — GL_NEAREST_MIPMAP_LINEAR.

Предположим, что функция texturing включена (путем вызова glEnable с аргументом GL_TEXTURE_1D или GL_TEXTURE_2D) и GL_TEXTURE_MIN_FILTER задана одна из функций, требующих MIP-карты. Если размеры изображений текстур, определенных в данный момент (с предыдущими вызовами glTexImage1D или glTexImage2D), не соответствуют правильной последовательности для MIP-карт, или определено меньше изображений текстуры, чем требуется, или набор изображений текстуры имеет разное количество компонентов текстуры, то сопоставление текстуры, как если бы сопоставление текстур было отключено. Линейная фильтрация обращается к четырем ближайшим элементам текстуры только в двухсторонней текстуре. В 1-D текстурах линейная фильтрация обращается к двум ближайшим элементам текстуры. Следующая функция извлекает сведения, связанные с glTexParameterf, glTexParameteri, glTexParameterfv и glTexParameteriv:

glGetTexParameter

Требования

Требование Значение
Минимальная версия клиента
Windows 2000 Professional [только классические приложения]
Минимальная версия сервера
Windows 2000 Server [только классические приложения]
Заголовок
Gl.h
Библиотека
Opengl32.lib
DLL
Opengl32.dll

См. также раздел

glBegin

glBindTexture

glCopyPixels

glCopyTexImage1D

glCopyTexImage2D

glCopyTexSubImage2D

glDrawPixels

glEnd

glGetTexParameter

glPixelStore

glPixelTransfer

glPrioritizeTextures

glTexEnv

glTexGen

glTexImage1D

glTexImage2D

glTexSubImage1D

glTexSubImage2D