- •I. ОСНОВНЫЕ ПОНЯТИЯ СОВРЕМЕННОЙ КОМПЬЮТЕРНОЙ ГРАФИКИ
- •1.1. Философия развития средств визуализации
- •1.2. Понятия компьютерной графики
- •1.3. Основные направления современной компьютерной графики
- •Контроль знаний.
- •2.1. Устройства видеовывода
- •2.1.1. Видеоадаптеры
- •2.1.1.1. История видеосистем персональных компьютеров
- •2.1.1.2. Устройство видеоадаптера VGA
- •2.1.1.3. Видеоадаптеры SVGA
- •2.1.1.4. Современные тенденции конструирования видеоадаптеров
- •2.1.2. Мониторы
- •2.1.3.Принтеры
- •2.1.4. Плоттеры
- •2.2. Устройства ввода графической информации
- •2.2.1. Мышь в графических режимах
- •2.2.2. Тачпад и Трекпойнт
- •2.2.3. Дигитайзеры
- •2.2.4. Сканеры
- •Контроль знаний.
- •3.1. Основные определения
- •3.2. Особенности цветового зрения человека
- •3.3. Цветовые модели компьютерной графики
- •3.3.1. Аддитивные цветовые модели
- •3.3.2 Субтрактивные цветовые модели
- •3.3.3. Перцепционные цветовые модели. Модели CIE
- •Контроль знаний.
- •IV. РАСТРОВАЯ ГРАФИКА
- •4.1. Геометрические характеристики растра
- •4.2. Методы улучшения растровых изображений
- •4.2.1. Устранение ступенчатого эффекта – антиалиасинг (antialiasing)
- •4.2.2. Эмуляция оттенков цвета – дизеринг (dithering)
- •4.3. Алгоритмические основы растровой графики
- •4.3.1. Поиск оптимального алгоритма рисования прямой
- •4.3.2. Инкрементный алгоритм Брезенхема (Bresenham) для прямой
- •4.3.3. Алгоритмы рисования окружности
- •4.3.4. Заполнение многоугольников
- •4.3.4.1. Построчное заполнение
- •4.3.4.2. Сортировка методом распределяющего подсчета
- •4.3.5. Отсечение отрезков
- •4.3.5.1. Двумерный алгоритм Коэна-Сазерленда
- •4.3.6. Отсечение многоугольника
- •4.3.6.1. Алгоритм Сазерленда-Ходгмана
- •4.3.6.2. Алгоритм отсечения многоугольника Вейлера-Азертона
- •Контроль знаний.
- •5.1. Введение в векторную графику
- •5.2. Элементы (объекты) векторной графики. Объекты и их атрибуты
- •5.3. Цвет в векторной графике
- •5.4. Структура векторной иллюстрации
- •5.5. Применение векторной графики
- •5.6. Графические пакеты для работы с растровой графикой
- •Контроль знаний.
- •VI. ТРЁХМЕРНАЯ ГРАФИКА
- •6.1. Основные понятия трехмерной графики
- •6.3. Геометрическое моделирование
- •6.3.1. Элементы моделей
- •6.3.2. Методы построения моделей
- •6.4. Построение проекций пространственных образов
- •6.5. Алгоритмические основы трёхмерной графики
- •6.5.1. Преобразования координат
- •6.5.2. Параметрическое задание кривых на плоскости и в пространстве. Кривые Безье
- •6.5.3. Удаление невидимых частей изображения. Закрашивание граней
- •6.5.3.1 2D алгоритм Сазерленда-Кохена
- •6.5.3.2 3D алгоритм Робертса, алгоритм Варнока
- •6.6. Фракталы
- •Контроль знаний.
- •VII. ФОРМАТЫ ГРАФИЧЕСКИХ ФАЙЛОВ
- •7.1. Основные понятия
- •7.2. Растровые форматы файлов и алгоритмы сжатия
- •7.2.1. Формат PCX и групповое кодирование
- •7.2.2. Формат BMP
- •7.2.3.Формат TGA (Targa)
- •7.2.4. Формат GIF
- •7.2.5. Aлгоритм сжатия LZW для GIF
- •7.2.6. Формат JPEG и алгоритм сжатия с потерями
- •7.2.7. Формат RAW для профессионального использования
- •7.2.8. Формат FIF и фрактальное сжатие
- •Контроль знаний.
Рисунок 49 – Представление полигональной сетки в виде списка ребер.
Элементы списка ребер содержат указатели на вершины в списке вершин, образующие данное ребро. Для обеспечения поиска всех вершин, образующих данный многоугольник, необходимо иметь обратные указатели от вершины на одно из инцидентных к ней ребер.
6.4. Построение проекций пространственных образов
Проецирование в общем случае – отображение точек, заданных в системе координат с размерностью N, в точки в системе с меньшей размерностью. Заменяя пространство на двумерную картину, рисуемую на экране, надо заменить лучи света, идущие в глаз наблюдателя от реальных предметов, на лучи, идущие от точек картины. При этом, конечно, не учитывается множество дополнительных факторов – аккомодация зрачка (его фокусировка, настройка на разглядывание близких или далеких предметов), конвергенция двух глаз(непарал-
лельность зрительных осей глаз при рассматривании близких или далеких предметов) и др. Последовательность преобразований координат выглядит так:
Рисунок 50 – Преобразование координат
Видовое преобразование (view transform) – преобразование координат согласно ракурсу показа пространственных объектов. Иными словами – поворот
113
системы координат, связанной с камерой (точкой зрения на трёхмерную сцену), плюс операции отсечения по объёму видимости.
При анализе изображений и в автоматизированном проектированииспользуют (рис. 51) ортогональные проекции – проецирующие лучи перпендикулярны плоскости проекции, а плоскость проекции перпендикулярна одной из осей координат. Аксонометрическая проекция – проекция на плоскость с помощью параллельных лучей, идущих из центра проецирования (который удалён в ∞) через каждую точку объекта до пересечения с картинной плоскостью.
Рисунок 51 – Параллельные проекции
Аксонометрическая |
прямоугольная |
Аксонометрическая |
прямоугольная |
|
изометрическая проекция куба со сто- |
|
|||
диметрическая проекция куба со сто- |
|
|||
роной A (все три оси координат оди- |
|
|||
роной A (две из трёх осей сокращены |
наково сокращены, по |
изображению |
|
|
одинаково) |
|
можно осуществлять измерения с од- |
|
|
|
|
ним и тем же масштабом) |
|
|
|
|
|
|
|
114
Аксонометрическая косоугольная сво- |
Аксонометрическая косоугольная ка- |
|
бодная (горизонтальная изометриче- |
бинетная (фронтальная |
диметриче- |
ская) проекция куба со стороной A (так |
ская) проекция куба со |
сторонойA. |
называемая «военная перспектива») |
Ось Z изображается по углом в 30°, 45° |
|
|
||
|
или 60° относительно горизонтального |
|
|
направления. |
|
|
|
|
Среди аксонометрических проекций выделяются:
прямоугольные – проецируемые лучи перпендикулярны к плоскости проекции. В противном случае проекцию называют косоугольной.
При прямоугольной аксонометрической проекции указывают косинусы углов наклона координатных осей к плоскости проецирования, называемых показателями искажения. Если два показателя искажения равны, то проекцию называют диметрической; если равны три показателя – изометрической; если все показатели различны – триметрической.
В косоугольных проекциях выделяют два вида: свободную – когда угол наклона проектирующих лучей к плоскости экрана равен половине прямого, и кабинетную – частный случай свободной проекции, при котором масштаб по третьей оси вдвое меньше.
Запишем в однородных координатах матричное выражение, соответствующее косоугольной аксонометрической проекции на плоскость < XY > :
éX ù |
é1 |
0 |
L × cosa |
0ù |
éxù |
|
||
ê |
ú |
ê |
|
|
ú |
ê |
ú |
|
êY |
ú |
= ê0 |
1 |
L ×sin a |
0ú |
× êy |
ú |
(41) |
êZ ú |
ê0 0 |
0 |
1ú |
êz ú |
|
|||
ê |
ú |
ê |
|
0 |
ú |
ê |
ú |
|
ë 1 |
û |
ë0 0 |
1û |
ë1 |
û |
|
115
Рисунок 52 – Методика построения проекции
Здесь масштабный факторL (=1/ 2 для кабинетной проекции) и угол a (=45°) определяют направление проецирующих лучей.
Изображение, полученное при параллельном проецировании, не достаточно реалистично, но передаются точные форма и размеры объектов. Второй случай проецирования носит названиеперспективная (центральная) проекция. Параллельные прямые в общем случае для таких проекций не параллельны, более удаленные предметы изображаются в меньших масштабах. В итоге геометрия изображения оказывается достаточно традиционной для восприятия глазом.
Перспективная проекция – это центральная проекция на плоскость пря-
мыми лучами, сходящимися в точку – центр проецирования (S) (рисунок 53).
Рисунок 53 – Центральная проекция
Существуют одно-, двух- и трёхточечные центральные проекции, различия между которыми показаны на рисунке53. Один из проецирующих лучей перпендикулярен к картинной плоскости, и он называется главным (S-S'). Точка
116
пересечения этого луча и картинной плоскости– главная точка картины (S'). Расстояние от главной точки до центра проецирования называетсяфокусным
(D).
При данном способе проецирования интенсивность перспективных - со кращений зависит, при неизменном положении картинной плоскости, от заданной величины фокусного расстояния. При его уменьшении эта интенсивность
возрастает. При больших фокусных расстояниях и небольших углах зрения (угол зрения – угол между лучами, проведенными в крайние точки изображения) проекция становится похожей на аксонометрическую; при малых расстояниях и больших углах зрения перспектива становится"резкой", появляются замечаемые глазом искажения.
Возьмем в пространстве некоторую точкуА с координатами (X, Y, Z) и проведем прямую через эту точку и центр проецированияS с координатами
( x0 , y0 , D ).
Примем x0 = 0 и y0 = 0 (центр проецирования лежит в начале координат,
этого можно всегда добиться операцией сдвига). Тогда в параметрическом виде уравнение данной прямой имеет вид:
x = X × t; |
y = Y × t; |
z = D + (Z - D)t, |
(42) |
где 0 £ t £1. |
|
|
|
Для экранной плоскости z = 0, |
при этом t* =1/(1 - Z / D) . Для данного t* |
||
найдем координаты A* – проекции точки А: |
|
|
|
x = X /(1 - Z / D); |
y = Y /(1 - Z / D) |
(43) |
Эти формулы легко получить в декартовых координатах из простых геометрических соображений. В терминах однородных координат данное преобразование будет представлено матрицей:
é0 0 |
0 |
1ù |
éxù |
|
é x ù |
|
|||||||
ê |
0 |
ú |
êy |
ú |
|
ê |
y |
ú |
|
||||
ê0 1 |
0ú |
= |
ê |
ú |
(44) |
||||||||
ê0 0 |
0 |
1ú |
× ê |
|
ú |
ê |
0 |
ú |
|||||
êz ú |
|
|
|||||||||||
ê0 0 |
- |
1 |
1ú |
ê |
1 |
ú |
|
ê1 |
- |
|
z ú |
|
|
|
|
|
|
ú |
|
||||||||
ê |
|
D |
ú |
ë |
û |
|
ê |
|
|
|
|||
ë |
|
û |
|
|
ë |
|
|
D û |
|
Легко видеть, что матрица проектирования вырождена. Результат данного преобразования будет соответствовать вышеприведенным формулам дляx и y
117
после приведения к нормализованным координатам(т.е. поделив компоненты вектора на (1 - Z / D) ).
Для преобразования с матрицей(44) существует лишь один центр проецирования (точка схода). Когда оси координат не параллельны плоскости эк-
рана, таких точек три, и матрица ни по какой из координат не вырождена: |
|
|||||
|
é |
1 |
0 |
0 |
0ù |
|
|
ê |
0 |
1 |
0 |
ú |
|
M = |
ê |
0ú |
(45) |
|||
ê |
0 |
0 |
1 |
0ú |
ê |
1 |
|
1 |
|
1 |
ú |
|
ê- |
|
- |
|
- |
|
1ú |
|
a |
b |
c |
|||||
ë |
|
|
û |
Для того, чтобы получить изображение, показанное на рисунке 56, помимо (45) требуется осуществить поворот вокруг оси z и сдвиг системы координат вверх на некоторую высоту h.
Особенность перспективных проекций – наличие "линии горизонта", которая возникает из-за перспективного схождения параллельных прямых в -пу чок, точка схода которого (бесконечно удаленная) лежит на линии горизонта. Совокупность точек схода различных наборов параллельных прямых, лежащих в одной плоскости, и образует линию горизонта.
Специальные перспективные проекции– проекции на цилиндрические, конические, сферические и др. поверхности с последующим разворачиванием полученной проекции на плоскость. Проекция на цилиндрическую поверхность позволяет показывать объекты с очень большими углами зрения– вплоть до круговой панорамы. Трудности сферических проекций прежде всего в том, что сфера на плоскость без разрывов не развертывается. Если точки пространства проецируются на поверхность сферы лучами, проходящими через некоторую точку внутри сферы, то перепроецировать их отображения на плоскость можно множеством способов, например ортогональным проецированием параллельными лучами, способом развертки меридианов и др. Среди этих различных способов выделяется стереографический; в нем со сферы на плоскость точки перепроецируются прямолинейными лучами, проходящими через полюс сферы, диаметрально противоположный тому, в котором сфера касается плоскости. При этом способе углы между пересекающимися линиями на сфере и их отображениями на плоскости равны.
Еще один вид специальных проекций– стереоскопические. Простейший вид стереоизображения образуется с помощью стереопары– двух перспектив-
118
ных проекций, построенных каждая для своего глаза (см. рисунок 54). Принцип создания и расчета таких изображений показан на рисунке. Для объемного восприятия стереопары надо устроить так, чтобы каждый глаз видел свою проекцию. Достигается это разными способами: просмотром изображений через стереоскоп, использованием двух наложенных друг на друга проекций, выполненных линиями разного цвета, которые рассматривают через очки с цветными стеклами; наконец, просмотром изображений, проецируемых на экран в поляризованном свете, через поляроидные светофильтры.
Рисунок 54 – Стереоскопическая проекция Стереограммы – достаточно давно известный способ создания псевдо-
трёхмерных (но отнюдь не проекций трёхмерных) изображений, который благодаря возможностям современной компьютерной графики породил довольно много новых вариантов (в частности стереоизображения из текстурных основ и из случайных точек, анимированные стереоизображения и т.п.). Рисунок 55, в отличие 54, даёт представление об алгоритме, лежащем в основе создания стереоизображения.
Рисунок 55 – Формирование стереоизображения
119