| ПРЕДИСЛОВИЕ | 4 |
| |
| О читателе, на которого рассчитана книга | 5 |
| Об иллюстрациях | 5 |
| О дискете | 6 |
| |
| ВВЕДЕНИЕ | 7 |
| |
Часть I. Стандартные графические возможности персональных компьютеров |
| |
| ГРАФИЧЕСКИЕ ПРИМИТИВЫ В ЯЗЫКАХ ПРОГРАММИРОВАНИЯ | 12 |
| |
| Инициализация и завершение работы с библиотекой | 14 |
| Работа с отдельными точками | 16 |
| Рисование линейных объектов | 16 |
| Рисование прямолинейных отрезков | 17 |
| Рисование окружностей | 17 |
| Рисование дуг эллипса | 17 |
| Рисование сплошных объектов | 17 |
Закрашивание объектов | 17 |
Работа с изображениями | 18 |
| Работа со шрифтами | 19 |
| Понятие режима (способа) вывода | 20 |
| Понятие окна (порта вывода) | 21 |
| Понятие палитры | 22 |
| Понятие видеостраниц и работа с ними | 24 |
| Подключение нестандартных драйверов устройств | 26 |
| |
| РАБОТА С ОСНОВНЫМИ ГРАФИЧЕСКИМИ УСТРОЙСТВАМИ | 28 |
| |
| Мышь | 28 |
Инициализация и проверка наличия мыши | 32 |
Высветить на экране курсор мыши | 33 |
Убрать (сделать невидимым) курсор мыши | 33 |
Прочесть состояние мыши (её координаты и состояние кнопок) | 33 |
Передвинуть курсор мыши в точку с заданными координатами | 33 |
Установка области перемещения курсора | 33 |
Задание формы курсора | 33 |
Установка области гашения | 34 |
Установка обработчика событий | 34 |
| Принтер | 35 |
9-игольчатые принтеры | 36 |
24-игольчатые (LQ) принтеры | 39 |
Лазерные принтеры | 40 |
| Видеокарты EGA и VGA | 41 |
| 16-цветные режимы адаптеров EGA и VGA | 44 |
Graphics Controller (порты ЗСЕ- 3CF) | 46 |
Sequencer (порты ЗС4-ЗС5) | 47 |
| Режимы чтения | 47 |
Режим чтения 0 | 47 |
Режим чтения 1 | 48 |
| Режимы записи | 49 |
Режим записи 0 | 49 |
Режим записи 1 | 50 |
Режим записи 2 | 51 |
256-цветный режим адаптера VGA | 53 |
Нестандартные режимы адаптера VGA | 53 |
| Программирование SVGA-адаптеров | 58 |
Непалитровые режимы адаптеров SVGA | 69 |
| |
| Часть II. От PutPixel до Ray Tracing |
| |
| ПРЕОБРАЗОВАНИЯ НА ПЛОСКОСТИ И В ПРОСТРАНСТВЕ | 73 |
| |
| Аффинные преобразования на плоскости | 73 |
| Однородные координаты точки | 76 |
| Аффинные преобразования в пространстве | 82 |
| Платоновы тела | 88 |
| Виды проектирования | 90 |
| Особенности проекций гладких отображений | 99 |
| Использование средств языка C++ для работы с векторами и |
преобразованиями | 103 |
| |
| РАСТРОВЫЕ АЛГОРИТМЫ | 111 |
| |
| Растровое представление отрезка. Алгоритм Брезенхейма | 112 |
| Отсечение отрезка. Алгоритм Сазерленда-Кохена | 115 |
| Определение принадлежности точки многоугольнику | 117 |
| Закраска области, заданной цветом границы | 118 |
| Алгоритмы определения точек пересечения произвольного луча с |
простейшими геометрическими объектами | 120 |
1. Пересечение луча со сферой | 122 |
2. Пересечение луча с плоскостью | 127 |
3. Пересечение луча с выпуклым многоугольником | 128 |
4. Пересечение с прямоугольным параллелепипедом | 131 |
| |
| УДАЛЕНИЕ НЕВИДИМЫХ ЛИНИЙ И ПОВЕРХНОСТЕЙ | 134 |
| |
| Построение графика функции двух переменных | 135 |
| Отсечение нелицевых граней | 144 |
| Удаление невидимых линий. Алгоритм Робертса | 145 |
| Алгоритм Аппеля | 146 |
| Удаление невидимых граней. Метод z-буфера | 147 |
| Алгоритмы упорядочения | 148 |
| Метод сортировки по глубине | 148 |
| Метод двоичного разбиения пространства | 149 |
| Метод построчного сканирования | 151 |
| Алгоритм Варнака | 152 |
| |
| ЗАКРАШИВАНИЕ | 153 |
| |
| Закраска методом Гуро | 158 |
| Закраска методом Фонга | 159 |
| |
| ГЕОМЕТРИЧЕСКИЕ СПЛАЙНЫ | 161 |
| |
| Сплайн-функции | 162 |
А. Случай одной переменной | 162 |
Б. Случай двух переменных | 166 |
| Сплайновые кривые | 168 |
| Рациональные кубические В-сплайны | 177 |
| Бета-сплайны | 178 |
| Сплайновые поверхности | 183 |
| |
| ОСНОВЫ МЕТОДА ТРАССИРОВКИ ЛУЧЕЙ | 190 |
| |
| Немного физики | 192 |
1. Зеркальное отражение | 193 |
2. Диффузное отражение | 193 |
3. Идеальное преломление | 193 |
4. Диффузное преломление | 195 |
| Основная модель трассировки лучей | 197 |
| Моделирование текстуры | 225 |
| Распределенная трассировка лучей | 248 |
1. Неточечные источники света | 250 |
2. Нечёткие отражения | 251 |
3. Глубина резкости | 252 |
| Методы оптимизации | 255 |
| |
| Часть III. Графический пакет 3D-Studio |
| |
| Создание объектов | 267 |
| Создание отрезков и ломаных | 267 |
| Редактирование построенной ломаной | 268 |
| Построение сложного объекта, состоящего из текста | 269 |
| Создание трёхмерного объекта на основе построенной формы путём её |
«протягивания» в глубину | 270 |
| Создание источников света | 271 |
| Создание камеры | 272 |
| Расчёт сцены | 273 |
| Выбор материалов | 273 |
| Создание материалов. Свойства материалов | 274 |
| Анимация | 279 |
| Создание объектов вращения | 281 |
| |
| ЛИТЕРАТУРА | 283 |