Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
11. Наложение текстуры.doc
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
609.28 Кб
Скачать

11.6. Функции OpenGl для задания текстурного изображения

В OpenGL для загрузки текущего текстурного изображения в видео память используются следующие функции: одна для одномерного изображения и другая для двумерного.

void glTexImage1D(GLenum target, GLint level, GLint internalformat, GLsizei width, GLint border, GLenum format, GLenum type, const GLvoid *pixels),

void glTexImage2D(GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLint border, GLenum format, GLenum type, const GLvoid *pixels),

где target – для первой формы функции параметр должен быть установлен в GL_TEXTURE_1D; для второй в GL_TEXTURE_2D;

level – номер уровня детализации. Уровень 0 является уровнем базового изображения. Уровень n – это n-й mipmap уровень уменьшенного изображения;

internalformat – число компонентов цвета в текстуре. Должно быть 1, 2, 3, или 4, или одной из символических констант: GL_RGB, GL_RGBA и т.п. При значении 1 используется только красный компонент; при значении 2 – красный и альфа, при значении 3 – красный, зеленый и синий и при значении 4 – все четыре компонента цвета;

width – ширина текстурного изображения, должна быть для некоторого целого n;

height – высота текстурного изображения, должна быть для некоторого целого m;

border – ширина рамки текстуры, которая устанавливается в 0 или 1;

format – формат пиксельных данных pixels может принимать значения: GL_RGB, GL_RGBA и т.п.;

type – тип пиксельных данных массива pixels может принимать следующие значения: GL_UNSIGNED_BYTE, GL_BYTE, GL_BITMAP, GL_UNSIGNED_SHORT, GL_SHORT, GL_UNSIGNED_INT, GL_INT и GL_FLOAT;

pixels – указатель на данные изображения в оперативной памяти.

Функция glEnable с параметром GL_TEXTURE_1D (GL_TEXTURE_2D) включает наложение одномерной (двумерной) текстуры. Функция glDisable с теми же параметрами – отключает.

Примечание. Размеры изображения должны быть кратны степени двойки.

11.7. Функции OpenGl для установки параметров текстуры

В 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

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]