Блинова Компьютерная графика/Под ред. В. Н. Порева— К.: Издательство Юниор,

advertisement
Блинова Т.А., Порев В.Н.
Компьютерная графика/Под ред. В. Н. Порева— К.: Издательство Юниор,
СПб.:КОРОНА принт. К.: Век+, 2006. — 520 с, ил.
Рассмотрены методы и алгоритмы современной компьютерной
графики. Проанализированы основные методы формирования изображения
двухмерных и трехмерных объектов с помощью компьютера. Рассмотрены
некоторые
проблемы,
которые
встают
перед
разработчиками
программного обеспечения геоинформационных систем. Приведены примеры
графических программ па языке С/С++ для операционной системы Windows с
использованием интерфейсов GDI, OpenGL и DirectX.
Учебник предназначен для студентов ВУЗов, которые изучают
компьютерные
обеспечения.
пауки,
а
также
для
разработчиков
программного
Оглавление
Оглавление ................................................................................................... 3
Предисловие ................................................................................................. 10
Благодарности ............................................................................................... 18
Введение ....................................................................................................... 11
Часть I
Основы компьютерной графики ...................................................................................... 17
Глава 1. Основные понятия ......................................................................... 18
Глава 2. Координатный метод..................................................................... 47
Глава 3. Базовые растровые алгоритмы .................................................... 76
Глава 4. Методы и алгоритмы трехмерной графики.................................. 109
Глава 5. Примеры изображения трехмерных объектов ............................ 174
Глава 6. Форматы графических файлов ..................................................... 206
Часть II
Программирование компьютерной графики .................................... 283
Глава 7. Разработка графических программ для Windows ....................... 284
Глава 8. Графические примитивы API Windows ........................................ 300
Глава 9. Пример использования классов C++ ........................................... 335
Глава 10. Пример анимации ....................................................................... 357
Глава 11. Графическая библиотека OpenGL ............................................. 371
Глава 12. Программирование графики DirectX .......................................... 421
Приложение. Учебная программа
демонстрации метода трассировки лучей .................................................. 477
Глоссарий ..................................................................................................... 502
Список литературы ..................................................................................... 509
Содержание
Предисловие .................................................................. ............................ 10
Благодарности ............................................................................................ 10
Введение ...................................................................................................... 11
Часть I
Основы компьютерной графики ................................................................ 17
Глава 1. Основные понятия ......................................................................... 18
1.1.Способы визуализации ........................................................................ 18
1.2.Растровые изображения и их основные характеристики ..................... 18
Геометрические характеристики растра................................................... 19
Количество цветов .................................................................................... 19
Оценка разрешающей способности растра ............................................. 20
Примеры изображений для некоторых растровых устройств ................. 21
1.3.Цвет ....................................................................................................... 24
Аддитивная цветовая модель RGB .................... .................................... 27
Цветовая модель CMY ............................................................................. 29
Другие цветовые модели .......................................................................... 31
Кодирование цвета. Палитра.................................................................... 32
1.4.Методы улучшения растровых изображений ...................................... 33
Устранение ступенчатого эффекта .......................................................... 34
Дизеринг .................................................................................................... 36
1.5.Эволюция компьютерных видеосистем ............................................... 41
Глава 2. Координатный метод ................................................................. 47
2.1.Преобразование координат .................................................................. 47
Аффинные преобразования на плоскости ............................................... 49
Трехмерное аффинное преобразование ................................................. 51
2.2.Преобразование объектов ................................................................... 52
Аффинные преобразования объектов на плоскости ............................... 52
Трехмерное аффинное преобразование объектов ................................. 54
2.3.Связь преобразований объектов с преобразованиями координат..... 55
2.4.Проекции ............................................................................................... 57
Мировые и экранные координаты ............................................................ 57
Основные типы проекций ......................................................................... 58
Аксонометрическая проекция .................................................................. 58
Перспективная проекция .......................................................................... 61
Косоугольные проекции ............................................................................ 65
Цилиндрическая проекция ......................................................................... 67
Примеры изображений в разных проекциях .............................................. 70
Отображение в окне ................................................................................... 72
2.5. Выводы.................................................................................................. 73
Глава 3. Базовые растровые алгоритмы................................................ 76
3.1.Алгоритмы вывода прямой линии ......................................................... 76
Прямое вычисление координат.................................................................. 77
Инкрементные алгоритмы .......................................................................... 80
3.2.Алгоритм вывода окружности ............................................................... 81
3.3.Алгоритм вывода эллипса ..................................................................... 82
3.4.Кривая Безье.......................................................................................... 84
Геометрический алгоритм для кривой Безье............................................. 85
3.5.Алгоритмы вывода фигур ..................................................................... 86
Алгоритмы закрашивания .......................................................................... 86
Алгоритмы заполнения, которые
используют математическое описание контура ........................................ .89
3.6.Стиль линии. Перо ................................................................................. 91
Алгоритмы вывода толстой линии ............................................................ 92
Алгоритмы вывода пунктирной линии ....................................................... 93
Алгоритм вывода толстой пунктирной линии ............................................ 94
3.7.Стиль заполнения .................................................................................. 94
Кисть и текстура ......................................................................................... 94
Шейдеры ..................................................................................................... 103
3.8.Фракталы.. .............................................................................................. 104
Глава 4. Методы и алгоритмы трехмерной графики ............................ 109
4.1.Модели описания поверхностей ........................................................... 109
Аналитическая модель .............................................................................. 109
Векторная полигональная модель ............................................................ 111
Воксельная модель .................................................................................... 117
Равномерная сетка .................................................................................... 119
Неравномерная сетка. Изолинии .............................................................. 120
Преобразование моделей описания поверхности .................................... 123
4.2.Визуализация трехмерных объектов .................................................... 127
Каркасная визуализация ........................................................................... 129
Показ с удалением невидимых точек ........................................................ 129
4.3.Закрашивание поверхностей ................................................................ 131
Модели отражения света ........................ ................................................. 131
Алгебра векторов ......................................................... ............................. 134
Вычисление нормалей и углов отражения....................... ........................ 135
Метод Гуро ................................................................................................. 138
Метод Фонга............................................................................................... 139
Имитация микрорельефа .......................................................................... 142
Преломление света ................................................................................... 145
Вычисление вектора преломленного луча ............................................... 147
Трассировка лучей..................................................................................... 148
4.4 Анимация ............................................................................................... 160
Методы компьютерной анимации .............................................................. 161
Анимация ходьбы ...................................................................................... 169
Глава 5. Примеры изображения трехмерных объектов ....................... 174
5.1.Шар..................... .. ................................................................................. 174
Каркасное изображение ............................................................................ 174
Удаление невидимых точек ...................................................................... 175
Многогранник с закрашиванием граней .................................................... 175
Закрашивание граней методом Гуро ........................................................ 178
Учет расположения источника света ....................................................... 179
Градиентное закрашивание круга ............................................................ 180
Наложение текстуры на шар ..................................................................... 182
Наложение текстуры на многогранник...................................................... 185
Вариации формы шара ............................................................................. 189
5.2.Цилиндр ................................................................................................. 191
Каркасное изображение............................................................................ 191
Удаление невидимых точек ...................................................................... 191
Освещенный многогранник ....................................................................... 192
Гладкая боковая поверхность .................................................................. 193
Наложение текстуры ................................................................................. 196
Вариации формы цилиндра...................................................................... 198
5.3.Тор.......................................................................................................... 199
Вариации формы тора .............................................................................. 201
5.4.Общие замечания ................................................................................. 202
Модель описания и способ отображения ................................................. 202
"Квадратирование" и триангуляция .......................................................... 204
Глава 6. Форматы графических файлов ................................................ 206
6.1.Классификация форматов .................................................................... 206
6.2.Растровые форматы ............................................................................. 207
Формат BMP .............................................................................................. 208
Формат Bitmap32 ....................................................................................... 210
Формат PCX .............................................................................................. 210
Формат TGA .............................................................................................. 213
Формат GIF................................................................................................ 216
Формат PNG .............................................................................................. 221
Формат JBIG2............................................................................................ 224
Формат JPEG ............................................................................................ 226
Формат JPEG 2000 ................................................................................... 231
Формат TIFF ..................................................... ........................................ 235
Формат DjVu .............................................................................................. 236
Формат LWF .............................................................................................. 238
Примеры записи растровых изображений ............................................... 239
Дальнейшее развитие растровых форматов ........................................... 241
6.3.Векторные форматы ............................................................................. 244
Формат DXF.. .............................................................................................. 245
Формат MIF-MID ......................................................................................... 246
6.4.Метафайлы и другие форматы.............................................................. 249
Формат WMF........................ ...................................................................... 249
Формат EMF................................................................................................ 250
Формат PICT ............................................................................................... 250
Формат PostScript ....................................................................................... 251
Формат EPS ................................................................................................ 251
Формат PSD ................................................................................................ 252
Формат CDR ............................................................................................... 253
Форматы FH7, FH5 ................................................... . ................................ 253
6.5.ЗР-форматы ........................................................................................... 254
Формат VRML ............................................................................................. 254
Формат 3DS ................................................................................................ 257
Форматы MDL, MD2 и MD3 ........................................................................ 257
Формат SMD ............................................................................................... 258
Формат X .................................................................................................... 258
6.6.Форматы мультимедиа .......................................................................... 261
История создания форматов мультимедиа ............................................... 263
Формат AVI ................................................................................................. 265
Формат QuickTime ...................................................................................... 267
Форматы MPEG.......................................................................................... 268
Формат MPEG-1 ......................................................................................... 272
Формат MPEG-2 ......................................................................................... 272
Уровни и профили MPEG-2 ....................................................................... 275
Формат MPEG-4 ......................................................................................... 277
Формат MPEG-7 ......................................................................................... 280
Формат MPEG-21 ....................................................................................... 280
Дальнейшее развитие форматов представления видеоинформации .... 280
Часть II
Программирование компьютерной графики ............................................ 283
Глава 7. Разработка графических программ для Windows ........................ 284
7.1.Первый пример программы для Windows ............................................ 285
7.2.Модульность программ ......................................................................... 287
7.3.Использование графических функций API Windows ........................... 289
7.4.Контекст графического устройства ....................................................... 289
Контекст окна на экране дисплея ............................................................. 290
Контекст принтера ..................................................................................... 291
Контекст метафайла ................................................................................. 294
Контекст памяти......................................................................................... 297
Параметры контекста графического устройства ...................................... 298
Глава 8. Графические примитивы API Windows ......................................... 300
8.1.Отдельные пикселы .............................................................................. 300
Подвижные шары ...................................................................................... 304
Фрактал Мандельброта ............................................................................. 311
Трассировка лучей .................................................................................... 314
8.2.Линии...................................................................................................... 322
Стиль линии. Перо .................................................................................... 323
Меридианы и параллели ........................................................................... 324
Фрактал из линий....................................................................................... 326
8.3.Фигуры.................................................................................................... 328
Стиль заполнения. Кисть .......................................................................... 329
Рисование поверхности ............................................................................ 330
8.4.Шрифт TrueType .................................................................................... 332
Глава 9. Пример использования классов C++ ....................................... 335
9.1.Анализ и оптимизация программы ....................................................... 344
9.2.И снова анализ и оптимизация программы .. . ...................................... 353
Глава 10. Пример анимации ...................................................................... 357
10.1.Поверхность Безье .............................................................................. 357
10.2.Градиентное закрашивание ............................................................... 367
Глава 11. Графическая библиотека OpenGL .......................................... 371
11.1.Первый пример программы OpenGL ................................................. 372
11.2.Программа трехмерной графики ........................................................ 379
11.3.Координаты и матрицы. ...................................................................... 381
Матрицы .................................................................................................... 381
Проекции.................................................................................................... 383
Моделирование камеры ........................................................................... 385
11.4.Моделирование освещения ............................................................... 390
11.5.Моделирование тумана ...................................................................... 393
11.6.Стандартные объемные формы ......................................................... 396
11.7.Текстура............................................................................................... 400
11.8.Анимация: облет замка ....................................................................... 405
11.9.Анимация: шагающая фигурка ....................... ................................... 410
Глава 12. Программирование графики DirectX...................................... 421
12.1.Обзор DirectX ...................................................................................... 421
12.2.Первый пример программы DirectX................................................... 422
12.3.Координаты, матрицы и проекции ..................................................... 432
Матрицы .................................................................................................... 433
Камера ....................................................................................................... 434
Проекция ................................................................................................... 435
12.4.Освещение.......................................................................................... 436
Световые свойства материалов ................................................................ 436
Параметры источников света .................................................................... 437
12.5.Отображение поверхностей .... .......................................................... 438
12.6.Текстуры .............................................................................................. 445
12.7.Шейдеры вершин ................................................................................ 448
Загрузка и инициализация шейдера вершин ............................................ 449
Язык программирования шейдеров............................ . ............................. 453
Пример анимации ...................................................................................... 457
12.8.Пиксельные шейдеры ......................................................................... 462
Загрузка и инициализация пиксельного шейдера ..................................... 463
Мультитекстурирование......... ................................................................... 464
Рельефные текстуры ................................................................................. 474
Приложение. Учебная программа
демонстрации метода трассировки лучей .......................................... 477
Описание сцены и функции создания объектов сцены .............................. 477
Реализация трассировки лучей методом локальных координат ............... 488
Использование модулей SCENE И RAYTRACE В программе ДЛЯ Windows .... 499
Глоссарий .................................................................................................... 502
Список литературы .................................................................................. 509
Книги............................................................................................................. 509
Статьи в периодических изданиях, доклады на конференциях... ............. 510
Стандарты, документация программных продуктов и другие
документы .................................................................................................... 512
Сеть Internet ................................................................................................ 512
Download