Функция 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 .
Имя | Значение |
---|---|
|
target или pname не является одним из принятых определенных значений, или если параметр должен иметь определенное постоянное значение (на основе значения pname), а не имеет значения . |
|
Функция была вызвана между вызовом 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:
Требования
Требование | Значение |
---|---|
Минимальная версия клиента |
Windows 2000 Professional [только классические приложения] |
Минимальная версия сервера |
Windows 2000 Server [только классические приложения] |
Заголовок |
|
Библиотека |
|
DLL |
|