Блинова Т.А., Порев В.Н. Компьютерная графика/Под ред. В. Н. Порева— К.: Издательство Юниор, СПб.:КОРОНА принт. К.: Век+, 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