- •Лекция 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 Вывод текста на экран
- •Литература
1.4 Система координат
В компьютерной графике используются две системы ортогональных координат:
- правосторонняя, определяющая положение точки в мировом пространстве;
- левосторонняя (видовая) используемая для соотнесения наблюдателя с объектом.
В обоих случаях координаты x и y располагаются одинаково. Ось Z для правосторонней системы координат направлена на наблюдателя, а для левосторонней – за экран.
В
OpenGl
начало координат помещается в средину
экрана, координаты задаются в относительных
единицах
,
но при использовании масштабирования
или перспективного проектирования,
координаты могут принимать произвольные
значения.
Перспективное проектирование
Координаты точки Р’(хпр,yпр) найдём из подобия треугольников
В матричной форме преобразование координат имеет вид
1.5 Вершины
Вершина это точка в пространстве. В OpenGL вершина задаётся командой
Где f-тип переменной (GlFloat);
2,3,4 –размерность вектора.
Задавать вершину можно вектором любой допустимой размерности, но если мы задаём размерность меньше четырёх, то OpenGL дополняет недостающие координаты значениями, принятыми по умолчанию.
Например:
glVertex2f(0.5,0.2); воспринимается, как glVertex4f(0.5,0.2,0,1);
Лекция 2 Освещение объектов
2.1Основные понятия
Свет
– это электромагнитное излучение,
принадлежащее видимому диапазону волн
Цвет - индивидуальное восприятие света наблюдателем.
Источник света является ахроматическим, если содержит все видимые длины волн в приблизительно равных долях. Ахроматический источник света воспринимается белым, а отражённый от него свет воспринимается белым, серым или чёрным цветом. Белыми воспринимаются объекты, отражающие более 80% световой энергии, чёрными – менее 3%, а остальные серыми.
Особенность восприятии света заключается в том, что белый цвет можно получить, смешивая любые три цвета, если ни один из них не является комбинацией двух других цветов.
В машинной графике применяются две системы:
- красный (red), зелёный (green), синий (blue) - (RGB);
- голубой, пурпурный, желтый (СMY).
2.2 Задание цвета объекта
Цвет поверхности объекта, в OpenGL, может быть задан или свойствами материала или командой GlCalor.
Скалярная форма команды GlCalor имеет вид:
GlCalor3f(r,g,b);
или GlCalor4f(r,g,b,α),
где
-компоненты
цвета, а α
–вспомогательный компонент, используемый
в операциях при смешении цветов; в других
случаях его значение на цвет объектов
не влияет.
.
В команде GlCalor3f(r,g,b);
α=1
– принимает значение по умолчанию.
Пример использования векторной формы команды GlCalor:
Const
Scolor: array[0..3] of GlFloat=(1,0.7,0,1);
.
.
.
GlCalor4fv(@Scolor);
Цвет фона задаётся командой glClearColor(r,g,b,α); по умолчанию (0,0,0,1).
После того, как цвет фона задан, установить его можно командой
glClear(GL_COLOR_BUFFER_BIT);
где GL_COLOR_BUFFER_BIT –символьная константа, определенная в OpenGL.
