- •Томск 2004
- •1.Введение
- •1.1.Способы представления изображений в памяти эвм
- •1.2.Классификация программного обеспечения компьютерной графики
- •Параметры растровых изображений
- •1.3.Представление цвета в компьютере
- •1.3.1.Цветовые модели
- •1.3.2.Системы управления цветом
- •1.4.Графические файловые форматы
- •По типу хранимой графической информации:
- •2.Растровые алгоритмы
- •2.1.Алгоритмы растеризации
- •2.1.1.Растровое представление отрезка. Алгоритм Брезенхейма
- •2.1.2.Растровая развёртка окружности
- •2.1.3.Закраска области, заданной цветом границы
- •2.1.4.Заполнение многоугольника
- •2.2.Методы устранения ступенчатости
- •2.2.1.Метод увеличения частоты выборки
- •2.2.2.Метод, основанный на использовании полутонов
- •2.3.Простейшие методы обработки изображений
- •2.3.1.Яркость и контраст
- •2.3.2.Масштабирование изображения
- •2.3.3.Преобразование поворота
- •2.3.4.Цифровые фильтры изображений
- •3.Компьютерная геометрия
- •3.1.Двумерные преобразования
- •3.1.1.Однородные координаты
- •3.1.2.Двумерное вращение вокруг произвольной оси
- •3.2.Трехмерные преобразования и проекции
- •3.3.Проекции
- •3.4.Математическое описание плоских геометрических проекций
- •3.5.Изображение трехмерных объектов
- •4.Представление пространственных форм
- •4.1.Полигональные сетки
- •4.1.1.Явное задание многоугольников
- •4.1.2.Задание многоугольников с помощью указателей в список вершин
- •4.1.3.Явное задание ребер
- •4.2.Введение
- •4.3.Алгоритм плавающего горизонта
- •4.4.Алгоритм Робертса
- •4.4.1.Определение нелицевых граней
- •4.4.2.Удаление невидимых ребер
- •4.5.Алгоритм, использующий z буфер
- •4.6.Метод трассировки лучей (ray casting)
- •4.7.Алгоритмы, использующие список приоритетов
- •4.7.1.Алгоритм Ньюэла-Ньюэла-Санча для случая многоугольников
- •4.8.Алгоритм Варнока (Warnock)
- •4.9.Алгоритм Вейлера-Азертона (Weiler-Atherton)
- •5.Методы закраски
- •5.1.Диффузное отражение и рассеянный свет
- •5.2.Зеркальное отражение
- •5.3.Однотонная закраска полигональной сетки
- •5.4.Метод Гуро
- •5.5.Метод Фонга
- •5.6.Тени
- •5.7.Поверхности, пропускающие свет
- •5.8.Детализация поверхностей
- •5.8.1.Детализация цветом
- •5.8.2.Детализация фактурой
- •6.Библиотека OpenGl
- •6.1.Особенности использования OpenGl в Windows
- •6.2.Основные типы данных
- •6.3.Рисование геометрических объектов
- •6.3.1.Работа с буферами и задание цвета объектов
- •6.3.2.Задание графических примитивов
- •6.3.3.Рисование точек, линий и многоугольников
- •6.4.Преобразование объектов в пространстве, камеры
- •6.4.1.Преобразования в пространстве
- •6.4.2.Получение проекций
- •6.5.Задание моделей закрашивания
- •6.6.Освещение
- •6.7.Полупрозрачность. Использование α-канала
- •6.8.Наложение текстуры
- •7.Аппаратные средства машинной графики
- •7.1.Устройства ввода
- •7.1.1.Сканеры
- •Принцип действия и виды сканеров
- •Основные характеристики
- •Фирмы-производители
- •7.1.2.Дигитайзеры
- •Принцип действия
- •Основные характеристики
- •Фирмы-производители
- •7.1.3.Цифровые фотокамеры
- •Принцип действия
- •Фирмы-производители
- •8.Литература
- •9.Содержание
- •1. Введение 3
- •2. Растровые алгоритмы 27
- •3. Компьютерная геометрия 52
- •4. Представление пространственных форм 83
- •5. Методы закраски 114
- •6. Библиотека OpenGl 124
- •7. Аппаратные средства машинной графики 141
- •8. Литература 147
- •9. Содержание 149
3.5.Изображение трехмерных объектов
Процесс вывода трехмерной графической информации более сложный, чем соответствующий двумерный процесс. В двумерном случае просто задается окно в двумерном мировом координатном пространстве и поля вывода на двумерной видовой поверхности. В общем случае объекты, описанные в мировых координатах, отсекаются по границе видимого объема, а после этого преобразуется в поле вывода для дисплея. Сложность, характерная для трехмерного случая, возникает потому, что видовая поверхность не имеет 3-го измерения.
Несоответствие между пространственными объектами и плоскими изображениями устраняются путем введения проекций, которые отображают трехмерные объекты на двумерной проекционной картинной плоскости (КП).
Рис. 3.43 Процесс вывода трехмерной графической информации
В процессе вывода трехмерной графической информации мы задаем видимый объем (ВО) в мировом пространстве, проекцию на КП и поле вывода на видовой поверхности. В общем случае объекты, определенные в трехмерном мировом пространстве, отсекаются по границам трехмерного видимого объема и после этого проецируются. То, что попадает в пределы окна, которое само является проекцией видимого объема на картинную плоскость, затем преобразуются (отображается) в поле вывода и отображается на графическом устройстве.
Рис. 3.44 Картинная плоскость и определяющие ее параметры
Картинная плоскость определяется некоторой точкой на плоскости, которую будем называть опорной точкой (ОТ) и нормалью к картинной плоскости (НКП). КП может произвольным образом располагаться относительно проецируемых объектов, заданных в мировых координатах. Она может пересекать их, проходить впереди или позади объектов.
Для того чтобы задать окно, нам необходима система координат на КП, которую назовем системой координат UV. Началом ее служит ОТ. Направление оси V на КП определяет вектор вертикали (ВВ): проекция ВВ на КП совпадает с осью V.
ОТ и два направления вектора НКП и ВВ определяется в правосторонней мировой системе координат. Имея на КП систему UV, можем задать минимальное и максимальное значения U и V, определяющие окно.
Рис. 3.45 Окно вывода на картинной плоскости
Отметим, что окно не обязательно должно быть симметрично относительно ОТ.
Видимый объем частично определяется окном и ограничивает часть мирового пространства, которая будет спроецирована.
1) В случае центральной проекции ВО определяется также центром проекции. Этот параметр задается в мировых координатах относительно ОТ. ВО представляет собой неограниченную в одну сторону пирамиду, вершина которой находится в центре проекции, а боковые стороны проходят через окно.
Рис. 3.46 Видимый объем для центральной проекции
Точки, лежащие позади центра проекции, не включаются в ВО и, следовательно, не будут проецироваться.
Рис. 3.47 Видимый объем параллельной проекции
2) В случае параллельных проекций ВО определяется также направлением проецирования. Он представляет собой неограниченный параллелепипед, стороны которого параллельны направлению проецирования.
В общем случае направление проецирования может не совпадать с НКП.
В случае ортографических параллельных проекций (но не косоугольных) боковые стороны ВО перпендикулярны КП.
В некоторых случаях может потребоваться сделать ВО конечным. Для этого задаются:
ПСП – передняя секущая плоскость,
ЗСП – задняя секущая плоскость
Рис. 3.48 Усеченный ВО для центральной проекции
Рис. 3.49 Усеченный ВО для ортографической параллельной проекции
Рис. 3.50 Усеченный ВО для косоугольной параллельной проекции.
Нормаль НКП направлена относительно направления проецирования и также является нормалью к ПСП и ЗСП.