- •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 и фрактальное сжатие
- •Контроль знаний.
Министерство образования Республики Беларусь Учреждение образования
«Белорусский государственный университет информатики и радиоэлектроники»
Кафедра систем управления
Л.В. Русак, В.А. Калина, Н.А. Стасевич
КОМПЬЮТЕРНАЯ ГРАФИКА
Конспект лекций для студентов специальности
I – 53 01 07 «Информационные технологии и управление в технических системах» дневной формы обучения
Минск 2009
СОДЕРЖАНИЕ |
|
I. ОСНОВНЫЕ ПОНЯТИЯ СОВРЕМЕННОЙ КОМПЬЮТЕРНОЙ ГРАФИКИ |
............ 5 |
1.1. ФИЛОСОФИЯ РАЗВИТИЯ СРЕДСТВ ВИЗУАЛИЗАЦИИ ........................................................ |
5 |
1.2. ПОНЯТИЯ КОМПЬЮТЕРНОЙ ГРАФИКИ............................................................................ |
5 |
1.3. ОСНОВНЫЕ НАПРАВЛЕНИЯ СОВРЕМЕННОЙ КОМПЬЮТЕРНОЙ ГРАФИКИ ........................ |
8 |
КОНТРОЛЬ ЗНАНИЙ............................................................................................................... |
9 |
II. АППАРАТНЫЕ УСТРОЙСТВА КОМПЬЮТЕРНОЙ ГРАФИКИ............................ |
10 |
2.1. УСТРОЙСТВА ВИДЕОВЫВОДА ...................................................................................... |
10 |
2.1.1. Видеоадаптеры........................................................................................................ |
10 |
2.1.1.1. История видеосистем персональных компьютеров ........................................... |
10 |
2.1.1.2. Устройство видеоадаптера VGA ......................................................................... |
12 |
2.1.1.3. Видеоадаптеры SVGA ......................................................................................... |
17 |
2.1.1.4. Современные тенденции конструирования видеоадаптеров ............................. |
18 |
2.1.2. Мониторы................................................................................................................ |
19 |
2.1.3.Принтеры.................................................................................................................. |
28 |
2.1.4. Плоттеры ................................................................................................................. |
33 |
2.2. УСТРОЙСТВА ВВОДА ГРАФИЧЕСКОЙ ИНФОРМАЦИИ .................................................... |
35 |
2.2.1. Мышь в графических режимах .............................................................................. |
35 |
2.2.2. Тачпад и Трекпойнт ................................................................................................ |
35 |
2.2.3. Дигитайзеры............................................................................................................ |
36 |
2.2.4. Сканеры ................................................................................................................... |
37 |
КОНТРОЛЬ ЗНАНИЙ............................................................................................................. |
39 |
III. ЦИФРОВОЕ ИЗОБРАЖЕНИЕ................................................................................... |
40 |
3.1. ОСНОВНЫЕ ОПРЕДЕЛЕНИЯ........................................................................................... |
40 |
3.2. ОСОБЕННОСТИ ЦВЕТОВОГО ЗРЕНИЯ ЧЕЛОВЕКА ........................................................... |
42 |
3.3. ЦВЕТОВЫЕ МОДЕЛИ КОМПЬЮТЕРНОЙ ГРАФИКИ.......................................................... |
44 |
3.3.1. Аддитивные цветовые модели ............................................................................... |
44 |
3.3.2 Субтрактивные цветовые модели ........................................................................... |
45 |
3.3.3. Перцепционные цветовые модели. Модели CIE ................................................... |
46 |
3.4. ЦВЕТ В ЦИФРОВОМ ИЗОБРАЖЕНИИ .............................................................................. |
50 |
КОНТРОЛЬ ЗНАНИЙ............................................................................................................. |
53 |
IV. РАСТРОВАЯ ГРАФИКА ........................................................................................... |
54 |
4.1. ГЕОМЕТРИЧЕСКИЕ ХАРАКТЕРИСТИКИ РАСТРА ............................................................. |
54 |
4.2. МЕТОДЫ УЛУЧШЕНИЯ РАСТРОВЫХ ИЗОБРАЖЕНИЙ ..................................................... |
56 |
4.2.1. Устранение ступенчатого эффекта – антиалиасинг (antialiasing) ......................... |
56 |
2
4.2.2. Эмуляция оттенков цвета – дизеринг (dithering) ................................................... |
57 |
4.3. АЛГОРИТМИЧЕСКИЕ ОСНОВЫ РАСТРОВОЙ ГРАФИКИ ................................................... |
59 |
4.3.1. Поиск оптимального алгоритма рисования прямой.............................................. |
59 |
4.3.2. Инкрементный алгоритм Брезенхема (Bresenham) для прямой ........................... |
61 |
4.3.3. Алгоритмы рисования окружности........................................................................ |
65 |
4.3.4. Заполнение многоугольников ................................................................................ |
69 |
4.3.4.1. Построчное заполнение ....................................................................................... |
70 |
4.3.4.2. Сортировка методом распределяющего подсчета.............................................. |
73 |
4.3.5. Отсечение отрезков................................................................................................. |
74 |
4.3.5.1. Двумерный алгоритм Коэна-Сазерленда ............................................................ |
76 |
4.3.6. Отсечение многоугольника .................................................................................... |
77 |
4.3.6.1. Алгоритм Сазерленда-Ходгмана ........................................................................ |
80 |
4.3.6.2. Алгоритм отсечения многоугольника Вейлера-Азертона ................................. |
81 |
4.4. ГРАФИЧЕСКИЕ ПАКЕТЫ ДЛЯ РАБОТЫ С РАСТРОВОЙ ГРАФИКОЙ................................... |
84 |
КОНТРОЛЬ ЗНАНИЙ............................................................................................................. |
86 |
V. ВЕКТОРНАЯ ГРАФИКА ............................................................................................ |
87 |
5.1. ВВЕДЕНИЕ В ВЕКТОРНУЮ ГРАФИКУ............................................................................. |
87 |
5.2. ЭЛЕМЕНТЫ (ОБЪЕКТЫ) ВЕКТОРНОЙ ГРАФИКИ. ОБЪЕКТЫ И ИХ АТРИБУТЫ .................. |
89 |
5.3. ЦВЕТ В ВЕКТОРНОЙ ГРАФИКЕ ...................................................................................... |
90 |
5.4. СТРУКТУРА ВЕКТОРНОЙ ИЛЛЮСТРАЦИИ ..................................................................... |
91 |
5.5. ПРИМЕНЕНИЕ ВЕКТОРНОЙ ГРАФИКИ ........................................................................... |
91 |
5.6. ГРАФИЧЕСКИЕ ПАКЕТЫ ДЛЯ РАБОТЫ С РАСТРОВОЙ ГРАФИКОЙ................................... |
94 |
КОНТРОЛЬ ЗНАНИЙ............................................................................................................. |
96 |
VI. ТРЁХМЕРНАЯ ГРАФИКА ........................................................................................ |
97 |
6.1. ОСНОВНЫЕ ПОНЯТИЯ ТРЕХМЕРНОЙ ГРАФИКИ ............................................................. |
97 |
6.2. ВИДЫ СПЛАЙНОВ, ПРИМЕНЯЕМЫХ В КОМПЬЮТЕРНОЙ ГРАФИКЕ .............................. |
101 |
6.3. ГЕОМЕТРИЧЕСКОЕ МОДЕЛИРОВАНИЕ ........................................................................ |
104 |
6.3.1. Элементы моделей ................................................................................................ |
105 |
6.3.2. Методы построения моделей................................................................................ |
106 |
6.4. ПОСТРОЕНИЕ ПРОЕКЦИЙ ПРОСТРАНСТВЕННЫХ ОБРАЗОВ .......................................... |
113 |
6.5. АЛГОРИТМИЧЕСКИЕ ОСНОВЫ ТРЁХМЕРНОЙ ГРАФИКИ............................................... |
120 |
6.5.1. Преобразования координат .................................................................................. |
120 |
6.5.2. Параметрическое задание кривых на плоскости и в пространстве. Кривые Безье |
|
......................................................................................................................................... |
126 |
6.5.3. Удаление невидимых частей изображения. Закрашивание граней .................... |
129 |
6.5.3.1 2D алгоритм Сазерленда-Кохена ....................................................................... |
129 |
3
6.5.3.2 3D алгоритм Робертса, алгоритм Варнока......................................................... |
130 |
6.6. ФРАКТАЛЫ ................................................................................................................ |
133 |
КОНТРОЛЬ ЗНАНИЙ........................................................................................................... |
135 |
VII. ФОРМАТЫ ГРАФИЧЕСКИХ ФАЙЛОВ............................................................... |
137 |
7.1. ОСНОВНЫЕ ПОНЯТИЯ ................................................................................................ |
137 |
7.2. РАСТРОВЫЕ ФОРМАТЫ ФАЙЛОВ И АЛГОРИТМЫ СЖАТИЯ........................................... |
137 |
7.2.1. Формат PCX и групповое кодирование ............................................................... |
137 |
7.2.2. Формат BMP.......................................................................................................... |
141 |
7.2.3.Формат TGA (Targa) .............................................................................................. |
144 |
7.2.4. Формат GIF............................................................................................................ |
146 |
7.2.5. Aлгоритм сжатия LZW для GIF ........................................................................... |
150 |
7.2.6. Формат JPEG и алгоритм сжатия с потерями...................................................... |
152 |
7.2.7. Формат RAW для профессионального использования ....................................... |
156 |
7.2.8. Формат FIF и фрактальное сжатие....................................................................... |
161 |
7.3. ВЕКТОРНЫЕ ФОРМАТЫ ФАЙЛОВ ................................................................................ |
163 |
КОНТРОЛЬ ЗНАНИЙ........................................................................................................... |
165 |
4
I. ОСНОВНЫЕ ПОНЯТИЯ СОВРЕМЕННОЙ КОМПЬЮТЕРНОЙ ГРАФИКИ
1.1. Философия развития средств визуализации
Исторически всегда рядом существовали два способа представления графической информации, предназначенной для автоматической обработки(неоднократное воспроизведение, передача на расстояние). В одном случае изображение представлялось в виде набора точек разного цвета(размера, яркости). Исторические примеры – фототелеграф, телевидение. В другом случае графическая информация кодировалась перечислением операций и изобразительных средств, которыми эта картинка могла быть воспроизведена на удалённом устройстве визуализации (задание размера и типа линии, координат вершин и способов заливки фигур, и т.п.). Примеры: механические рисующие роботыигрушки XVII века, графопостроители (плоттеры).
Можно считать, что первые системы машинной графики появились вместе с первыми цифровыми компьютерами. Проект WHIRLWIND ("вихрь") Массачусетского технологического института был отмечен как начало эры компьютерной графики. WHIRLWIND стал основой создания опытного образца -ко мандно-управляемой системы воздушной защиты, разработанной как средство преобразования данных, полученных от радара, в наглядную форму. После появления первых электронных компьютеров машинная графика преимущественно связывалась с совершенствованием технических средств визуализации. Со-
временная компьютерная графика из инженерной дисциплины перерастает в научную, решая помимо вышеозначенных и серьёзные математических задачи сжатия статических и динамических изображений и создания реалистичных трёхмерных изображений.
1.2. Понятия компьютерной графики
Компьютерная графика (computer graphics) – генерация, представление, обработка и оценка изображений и элементов изображений с помощью вычислительной техники, манипулирование ими, а также установление связи между изображениями и информацией неграфической природы. Иными словами, компьютерная графика включает в себя обеспечение ввода, вывода хранения и преобразования графической информации под управлением компьютера.
5
Пиксель (pixel) – минимальный элемент растровой строки, который может дискретно управляться графической системой. Пиксель в общем случае нельзя связывать с минимальным размером светящегося элемента дисплея или диаметром иглы принтера. Атрибутами пикселя являются только цвет(или яркость) и значения координат, используемые для определения его горизонтальной и вертикальной позиции в некоторой плоскости (например, плоскости изображения). При создании изображений для заливки поверхностей(граней) в качестве шаблона (маски) используют растровые изображения – текстуры (texture). Для описания дискретного элемента такой текстуры вводят понятиексель (texel). Сходное по смыслу понятие воксель (voxel –volume picture element) представляет собой элемент объёмного растра и используется в моделировании объёмных трёхмерных графических объектов.
Растровое изображение – изображение, сформированное в виде совокупности пикселей. В настоящее время это доминирующий способ результирующего представления графической информации(на растровых дисплеях и принтерах). Также используют близкое понятие битового массива (bitmap) – растр, который сохраняется в памяти или на диске. Особенность растрового изображения в том, что его размер в несжатом виде, а следовательно и скорость загрузки не зависят от сложности изображения. Преимуществом является простой, а значит и быстрый способ отображения битовой плоскости изображения на растровых устройствах визуализации. Недостаток такого изображения в том, что его нельзя произвольно масштабировать, так как при уменьшении возможно выпадение отдельных рядов пикселей, а увеличение приводит только к увеличению размеров пикселей. Растровый тип изображений удобен для хранения изобразительной графики, при этом для хранения растровых данных разработаны достаточно эффективные алгоритмы сжатия.
Векторное изображение – изображение, созданное с помощью отдельных линий, прямых или кривых. Качество векторной визуализации обуславливается точностью вывода (требуются устройства, поддерживающие векторную визуализацию: графопостроители или векторные дисплеи) и номенклатурой поддерживаемых базовых графических примитивов (линий, дуг, кривых, эллипсов)1.
1
Векторные устройства вывода в действительности являются в настоящее время редкостью. Даже в САПР широкоформатные плоттеры в настоящее время являются растровыми устройствами вывода, лишь эмулируя работу с векторной информацией. В большинстве случаев векторный характер графическая информация имеет на промежуточных стадиях работы с изображением, в то время как начальная и конечная стадии получают растровое представление.
6
Основное преимущество – удобство масштабирования, с возможностью проработки на одном изображении элементов с сильно различающимися размерами. Кроме того, преимущество векторной графики в том, что форма, пространственное положение и цвет объектов описывается с помощью математических формул. Это обеспечивает сравнительно небольшие размеры файлов изображений и независимость от разрешения печатающего устройства или монитора. Для воспроизведения векторного изображения обычно необходимо достаточно сложное программное обеспечение, понимающее и корректно исполняющее весь нетривиальный протокол рисующих команд, записанных в файле векторного графического формата.
Векторизация – преобразование растрового изображения в векторное. В большинстве случаев эта операция влечёт за собой потерю информации об отдельных элементах изображения, которые программа векторизации не умеет корректно описать (в большинстве случаев количество кривых минимизируется намеренно). Обратная операция соответственно – растеризация. Эта операция технически более простая, но при этом мы лишаемся возможности произвольного масштабирования созданного изображения.
Визуализация изображений – основная функция компьютерной графики (наряду с анализом и синтезом изображений). В случае синтеза изображений происходит переход информации неграфической природы(например, значение в регистре платы измерительного устройства) в графическую (график измеряемой этим устройством величины). При анализе изображений идёт преобразование графической информации (например, штрих-код товара) в неграфическую (информация о производителе и дате выпуска).
Обработка изображений – синоним редактирования изображений. При этом графическая природа информации не изменяется, меняются только характеристики изображения (яркость, чёткость, гладкость линий и т.д.). Обработка изображений относится к функции синтеза изображений, хотя и является непременным атрибутом программ анализа изображений(например, предварительная обработка отсканированного изображения перед его распознаванием).
Распознавание изображений – получение описания изображённых объектов. Цель распознавания может формулироваться по-разному– выделение отдельных элементов (например, букв текста на изображении документов или условных знаков на изображении географической карты) для их дальнейшей интерпретации человеком; классификация изображения, т.е. принятие определённого решения исходя из результатов анализа(работа системы самонаведения
7
межконтинентальной ракеты, установление персоны по анализу отпечатков пальцев). Распознавание изображений связано с функцией анализа изображений.
1.3. Основные направления современной компьютерной графики
Компьютерная графика стала основныминтерфейсом взаимодействия человека и компьютера. Все аспекты современной компьютерной графики(а в историческом срезе – машинной графики вообще) охватить практически невозможно. В современном обществе компьютерную графику можно представить себе как индустрию, в каждую из сторон своего развития включающую всё новые и новые финансовые, научные, производственные и человеческие ресурсы.
Рассмотрим лишь три условных среза многочисленных направлений компьютерной графики.
1.Изобразительная компьютерная графика.
–связи: изобразительное искусство, дизайн;
–задачи: создание высокохудожественных изображений(плоских или [квази]объёмных);
–приоритетные направления: создание реалистичных трёхмерных изображений, редактирование видеоданных, Web-дизайн;
–примеры программных средств: Adobe Photoshop (редактирование растровых изображений), Corel Draw (создание векторных изображений), Adobe Premiere (редактирование видеофильмов), Discreet 3D Studio MAX и Alias-
Wavefront Maya (создание |
реалистичных |
трёхмерных |
изображений), |
Macromedia Flash (создание интерактивной Web-графики);
–рынок: создание видео- и кинопродукции, реклама и оформление различных видов.
2. Научная графика
–связи: математика;
–задачи: визуализация и обработка результатов измерений или моделиро-
вания;
–приоритетное направление: когнитивная компьютерная графика2, геоинформационные системы;
2
Когнитивная – компьютерная графика для научных абстракций. Основная задача – создание таких моделей представления знаний, в которых можно было бы однообразно представлять как объекты, характерные для логического (символического, алгебраического) мышления, так и объекты, характерные для образного мышления
8