Читайте также: |
|
В OpenGL предусмотрена установка параметров текстуры. Для этого используется функция, прототип которой:
void glTexParameter{if}(GLenum target, GLenum pname, TYPE param),
void glTexParameter{if}v(GLenum target, GLenum pname, TYPE * param),
где target – определяет, с какой текстурой предполагается работать; pname – имя параметра; param – значения параметра pname (невекторная или векторная форма).
Параметр target может принимать следующие значения:
GL_TEXTURE_1D – все остальные параметры и их значения задаются для одномерной текстуры;
GL_TEXTURE_2D – все остальные параметры и их значения задаются для двумерной текстуры.
Имя параметра может принимать следующие значения:
GL_TEXTURE_MIN_FILTER – определяет функцию уменьшения текстуры, используется, когда площадь пикселя, на который она накладывается, больше, чем элемент текстуры. Здесь param может принимать значения приведенные в табл. 14;
GL_TEXTURE_MAG_FILTER – функция увеличения текстуры используется, когда площадь пикселя, на который она накладывается, меньше или равна элементу текстуры. Здесь param может принимать следующие значения:
- GL_NEAREST – аналогично GL_NEAREST для GL_TEXTURE_MIN_FILTER;
- GL_LINEAR – аналогично GL_LINEAR для GL_TEXTURE_MIN_FILTER;
GL_TEXTURE_WRAP_S – устанавливает параметр координаты текстуры s. Здесь param может принимать значения:
- GL_REPEAT – игнорирует целую часть координаты текстуры s, используя только дробную часть. Для числа s дробная часть составляет , не обращая внимания на знак s. Значение установлено по умолчанию.
- GL_CLAMP – фиксирует координаты текстуры s в диапазоне [0,1];
GL_TEXTURE_WRAP_T. Аналогично GL_TEXTURE_WRAP_S, но только для координаты t;
GL_TEXTURE_BORDER_COLOR – устанавливает цвет рамки текстуры. Параметр params содержит четыре значения, которые определяют цвет RGBA рамки. Целочисленное значение линейно отображается в диапазон [0,1]. Исходно цвет рамки установлен в (0, 0, 0, 0).
Таблица 11.1
Значения параметра param
Параметр | Смысл |
GL_NEAREST | Возвращает значение ближайшего от центра пикселя элемента текстуры |
GL_LINEAR | Возвращает среднеарифметическое значение четырех элементов текстуры, расположенных в центре пикселя. Сюда также могут входить элементы бордюра текстуры, в зависимости от точности наложения текстуры и значений, установленных для GL_TEXTURE_WRAP_S и/или GL_TEXTURE_WRAP_T |
GL_NEAREST_MIPMAP_NEAREST | Выбирает уровень детализации, который наиболее точно соответствует размеру пикселя, и использует критерий GL_NEAREST для формирования значения текстуры |
GL_LINEAR_MIPMAP_NEAREST | Выбирает уровень детализации, который наиболее точно соответствует размеру пикселя, и использует критерий GL_LINEAR для формирования значения текстуры |
GL_NEAREST_MIPMAP_LINEAR | Выбирает два уровня детализации, которые наиболее точно соответствуют размеру пикселя, и использует критерий GL_NEAREST для формирования каждого значения текстуры. Окончательное значение текстуры является среднеарифметическим этих двух значений. Это значение аргумента установлено по умолчанию |
GL_LINEAR_MIPMAP_LINEAR | Выбирает два уровня детализации, которые наиболее точно соответствуют размеру пикселя, и использует критерий GL_LINEAR для формирования каждого значения текстуры. Окончательное значение текстуры является среднеарифметическим этих двух значений |
Примечание. Линейная фильтрация для четырех ближайших элементов текстуры применима только для двумерного образа. Для одномерного — линейная фильтрация применяется только к двум ближайшим элементам. В остальном действия функций аналогичны для одномерного и двумерного случаев.
Дата добавления: 2015-07-10; просмотров: 113 | Нарушение авторских прав
<== предыдущая страница | | | следующая страница ==> |
Функции OpenGL для задания текстурного изображения | | | Пример программы с применением текстурирования |