ПРЕДИСЛОВИЕ | 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 |