- •Лекция 1 Основные понятия OpenGl
- •1.2 Однородные координаты и матрицы
- •1.3 Поворот точки вокруг прямой заданной точкой а(a,b,c) и направляющим вектором e(l,m,n), , на угол φ.
- •1.4 Система координат
- •1.5 Вершины
- •Лекция 2 Освещение объектов
- •2.1Основные понятия
- •2.2 Задание цвета объекта
- •2.3 Освещение объектов
- •2.3.1 Свойства диффузного отражения
- •2.3.2 Свойства зеркального отражения
- •Лекция 3
- •3.1 Контекст воспроизведения
- •3.2 Стандартные функции библиотеки OpenGl
- •3.3 Функции библиотеки glu
- •3.4 Рекомендации по созданию графических приложений
- •Лекция 4
- •Свойства материалов
- •Установка источников света
- •Модель освещения
- •Смешение цветов
- •4.5 Задание теста глубины
- •Лекция 5 Наложение текстуры на объект
- •Задание параметров текстуры
- •Задание параметров текстуры
- •Взаимодействие текстуры с объектом
- •Привязка координат текстуры к объекту
- •Подготовка текстуры из bmp файла, для случая, когда размеры файла известны
- •Пример инициализации двухмерной текстуры
- •Лекция 6. Буфер трафарета
- •6.1 Тест трафарета
- •6.2 Логические операции с графическими объектами
- •6.2.1 Описание метода вычитания графических объектов
- •Лекция 7. Сплайновые поверхности
- •7.1 Кривые Безье
- •7.2 Отображение кривых Безье в OpenGl
- •7.3 Отображение поверхностей Безье в OpenGl
- •Лекция 8. Выбор графических объектов на экране
- •8.1 Идея метода
- •Лекция 9. Экспорт трехмерных изображений из 3d Studio max
- •9.1 Формат файла gms
- •9.2 Импортирование изображений объектов в программу
- •9.3 Загрузка файла формата gms в Delphi
- •Лекция 10 Вспомогательные функции
- •10.1.Работа с таймером
- •10.2 Обработка нажатия клавиши
- •10.3 Вывод текста на экран
- •Литература
Задание параметров текстуры
Один элемент экрана может перекрывать несколько элементов массива образа. Что бы избежать проблем связанных с лестничностным эффектом, необходимо уточнить способ определения цвета каждого пикселя. Для этого случая используется команда
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).
