Мастера DELPHI, Delphi programming community Рейтинг@Mail.ru Титульная страница Поиск, карта сайта Написать письмо 
| Новости |
Новости сайта
Поиск |
Поиск по лучшим сайтам о Delphi
FAQ |
Огромная база часто задаваемых вопросов и, конечно же, ответы к ним ;)
Статьи |
Подборка статей на самые разные темы. Все о DELPHI
Книги |
Новинки книжного рынка
Новости VCL
Обзор свежих компонент со всего мира, по-русски!
|
| Форумы
Здесь вы можете задать свой вопрос и наверняка получите ответ
| ЧАТ |
Место для общения :)
Орешник |
Коллекция курьезных вопросов из форумов
KOL и MCK |
KOL и MCK - Компактные программы на Delphi
 

OpenGL. Программирование компьютерной графики

Хилл Ф.


Эта книга — введение в мир программирования компьютерной графики. Графические системы становятся лучше, быстрее и дешевле. Каждый год изобретается множество новых технических приемов, однако основные принципы и подходы к программированию по-прежнему остаются неизменными. Автор написал в высшей степени практичный и доступный для восприятия текст, отличающийся основательным и интегрированным подходом. Понятия тщательно определены; их математические основы разъяснены, доказана важность каждого рассмотренного понятия. Книга показывает читателю, как переводить математические представления в программный код, и демонстрирует результат. Предлагаемое новое издание предоставляет самую современную информацию в области компьютерной графики.

Отрывок из книги: "Глава 2. Начальная стадия: рисование фигур"


Объем: 1088 стр.
Цена: 560 руб.

Купить книгу


Содержание

OpenGL. Программирование компьютерной графики

Ф. Хилл

Содержание

Введение
Предполагаемая аудитория
Необходимая математическая подготовка
Необходимая подготовка по программированию
Философия книги
Упражнения и задачи
Использование OpenGL
Использование C++ в качестве языка программирования
Акцент на трехмерной компьютерной графике
Описание 3D-сцен с помощью языка проектирования сцен
Дополнительное использование PostScript
Структура книги и планы курса
Краткий обзор глав
Рекомендуемые последовательности изучения глав книги
Возможные планы курса
Дополнения
Благодарности
Примечание для читателя: как смотреть стереоскопические изображения
Об авторе
От издательства
Глава 1. Введение в компьютерную графику
1.1. Что такое компьютерная графика?
1.2. Где используются изображения, создаваемые компьютером
1.2.1. Искусство, развлечения и издательское дело
1.2.2. Компьютерная графика и обработка изображений
1.2.3. Управление процессом
1.2.4. Отображение имитаций
1.2.5. Автоматизированное проектирование
1.2.6. Научный анализ и наглядность
1.3. Элементы изображений, создаваемых в компьютерной графике
1.3.1. Ломаные линии
1.3.2. Текст
1.3.3. Закрашенные области
1.3.4. Растровое изображение
1.3.5. Представление оттенков серого и других цветов в растровых изображениях
1.4. Графические устройства отображения
1.4.1. Графические дисплеи
1.4.2. Растровые отображающие устройства
1.4.3. Индексированный цвет и кодовая таблица
1.4.4. Другие устройства растрового отображения
1.4.5. Растровые устройства для изготовления твердых копий
1.5. Входные графические примитивы и устройства
1.5.1. Типы входных графических примитивов
1.5.2. Типы физических входных устройств
1.6. Заключение
1.7. Дополнительная литература
Глава 2. Начальная стадия: рисование фигур
2.1. Начальная стадия создания изображения
2.1.1. Аппаратно-независимое программирование и OpenGL
2.1.2. Оконное программирование
2.1.3. Открытие окна для рисования
2.2. Рисование основных графических примитивов
2.2.1. Рисование созвездия точек
2.3. Создание рисунков из линий
2.3.1. Рисование ломаных линий и полигонов
2.3.2. Рисование линий с использованием moveto() и lineto()
2.3.3. Рисование выровненных прямоугольников
2.3.4. Форматное соотношение выровненного прямоугольника
2.3.5. Закрашивание полигонов
2.3.6. Другие графические примитивы в OpenGL
2.4. Простое взаимодействие с помощью мыши и клавиатуры
2.4.1. Взаимодействие с помощью мыши
2.4.2. Взаимодействие с помощью клавиатуры
2.5. Резюме
2.6. Тематические задания
Тематическое задание 2.1. Псевдослучайные облака из точек
Тематическое задание 2.2. Введение в систему итерируемых функций
Тематическое задание 2.3. Золотое отношение и другие жемчужины
Тематическое задание 2.4. Создание и применение файлов для ломаных линий
Тематическое задание 2.5. Рисование линий и многоугольников пунктиром
Тематическое задание 2.6. Редактор ломаных линий
Тематическое задание 2.7. Построение и запуск лабиринтов
2.7. Дополнительная литература
Глава 3. Дополнительные инструменты для рисования
3.1. Введение
3.2. Мировые окна и порты просмотра
3.2.1. Преобразование из мирового окна в порт просмотра
3.2.2. Автоматическая установка окна и порта просмотра
3.3. Отсечение линий
3.3.1. Отсечение прямой
3.3.2. Алгоритм отсечения Кохена–Сазерленда
3.4. Разработка класса Canvas
3.4.1. Несколько полезных вспомогательных классов
3.4.2. Реализация класса Canvas
3.5. Относительное рисование
3.5.1. Разработка moveRel() и lineRel()
3.5.2. Черепашья графика
3.6. Фигуры на основе правильных многоугольников
3.6.1. Правильные многоугольники
3.6.2. Вариации n-угольников
3.7. Рисование окружностей и дуг
3.7.1. Рисование дуг
3.8. Применение параметрического задания кривой
3.8.1. Параметрические формы для кривых
3.8.2. Вычерчивание кривых, заданных параметрически
3.8.3. Суперэллипсы
3.8.4. Формы в полярных координатах
3.8.5. Трехмерные кривые
3.9. Резюме
3.10. Тематические задания
Тематическое задание 3.1. Изучение логистического преобразования и имитация хаоса
Тематическое задание 3.2. Реализация отсекателя Кохена—Сазерленда на C или C++
Тематическое задание 3.3. Реализация Canvas на Turbo C++
Тематическое задание 3.4. Рисование арок
Тематическое задание 3.5. Некоторые рисунки, используемые в физике и технике
Тематическое задание 3.6. Мозаики
Тематическое задание 3.7. Веселые вариации на тему
Тематическое задание 3.8. Окружности, вращающиеся вокруг окружностей
Тематическое задание 3.9. Суперэллипсы
3.11. Дополнительная литература
Глава 4. Векторные инструменты для графики
4.1. Введение
4.2. Обзор векторов
4.2.1. Операции с векторами
4.2.2. Линейные комбинации векторов
4.2.3. Модуль вектора; единичные векторы
4.3. Скалярное произведение
4.3.1. Свойства скалярного произведения
4.3.2. Угол между двумя векторами
4.3.3. Знак b Ч c и перпендикулярность
4.3.4. Двумерный «перп» вектор
4.3.5. Ортогональные проекции и расстояние от точки до прямой
4.3.6. Приложения проекции: отражения
4.4. Векторное произведение двух векторов
4.4.1. Геометрическая интерпретация векторного произведения
4.4.2. Нахождение нормали к плоскости
4.5. Отображение ключевых геометрических объектов
4.5.1. Системы координат и координатные фреймы
4.5.2. Аффинные комбинации точек
4.5.3. Линейная интерполяция двух точек
4.5.4. Твининг в искусстве и анимации
4.5.5. Обзор: квадратичный и кубический твининг и кривые Безье
4.5.6. Представление прямых и плоскостей
4.6. Определение точки пересечения двух отрезков прямой
4.6.1. Приложение пересечения прямых: окружность, проходящая через три заданные точки
4.7. Пересечения прямых с плоскостями; отсечение
4.8. Задачи о пересечениях многоугольников
4.8.1. Работа с выпуклыми полигонами и полиэдрами
4.8.2. Пересечение с лучами и отсечение для выпуклых полигонов
4.8.3. Алгоритм Сайруса—Бека
4.8.4. Отсечение границами произвольных полигонов
4.8.5. Более сложное отсечение
4.9. Резюме
4.10. Тематические задания
Тематическое задание 4.1. Анимация с твинингом
Тематическое задание 4.2. Разные окружности
Тематическое задание 4.3. Находится ли точка Q внутри выпуклого полигона P?
Тематическое задание 4.4. Отражения в комнате (двумерная трассировка луча)
Тематическое задание 4.5. Отсечение Сайруса—Бека
Тематическое задание 4.6. Отсечение полигона границами выпуклого полигона: отсечение Сазерленда—Ходгмана
Тематическое задание 4.7. Отсечение одного полигона границами другого: отсечение Вейлера—Азертона
Тематическое задание 4.8. Булевы операции с полигонами
4.11. Дополнительная литература
Глава 5. Преобразования объектов
5.1. Введение
5.2. Введение в преобразования
5.2.1. Преобразование точек и объектов
5.2.2. Аффинные преобразования
5.2.3. Геометрические эффекты элементарных двумерных аффинных преобразований
5.2.4. Инвертирование аффинного преобразования
5.2.5. Композиция аффинных преобразований
5.2.6. Примеры композиции двумерных преобразований
5.2.7. Некоторые полезные свойства аффинных преобразований
5.3. Трехмерные аффинные преобразования
5.3.1. Элементарные трехмерные преобразования
5.3.2. Компонование трехмерных аффинных преобразований
5.3.3. Комбинирование поворотов
5.3.4. Краткое изложение свойств трехмерных аффинных преобразований
5.4. Изменения систем координат
5.5. Использование аффинных преобразований в программах
5.5.1. Сохранение CT для дальнейшего использования
5.6. Рисование трехмерных сцен с применением OpenGL
5.6.1. Знакомство с процессом визуального отображения и графическим конвейером
5.6.2. Некоторые инструменты OpenGL для моделирования и вида
5.6.3. Рисование элементарных форм, поддерживаемых OpenGL
5.7. Резюме
5.8. Тематические задания
Тематическое задание 5.1. Выполнение вашего собственного преобразования с помощью CT в классе Canvas
Тематическое задание 5.2. Рисование звезды с рисунка 5.39 с помощью многократных поворотов
Тематическое задание 5.3. Разложение двумерного аффинного преобразования
Тематическое задание 5.4. Обобщенные трехмерные сдвиги
Тематическое задание 5.5. Вращение вокруг оси: конструктивный подход
Тематическое задание 5.6. Разложение трехмерных аффинных преобразований
Тематическое задание 5.7. Рисование трехмерных сцен, описанных на языке SDL
5.9. Дополнительная литература
Глава 6. Моделирование поверхностей полигональными сетками
6.1. Введение
6.2. Введение в трехмерное моделирование полигональными сетками
6.2.1. Определение полигональной сетки
6.2.2. Нахождение нормальных векторов
6.2.3. Свойства сеток
6.2.4. Каркасные модели для немонолитных объектов
6.2.5. Работа с сетками в программе
6.3. Многогранники
6.3.1. Призмы и антипризмы
6.3.2. Платоновы тела
6.3.3. Другие любопытные многогранники
6.4. Экструзивные формы
6.4.1. Создание призм
6.4.2. Совокупности экструзивных призм: «кирпичная кладка»
6.4.3. Экструзии с «поворотом»
6.4.4. Создание сегментированных экструзий: трубки и змейки
6.4.5. «Дискретно» заметаемые поверхности вращения
6.5. Каркасные аппроксимации гладких объектов
6.5.1. Представления поверхностей
6.5.2. Нормальный вектор к поверхности
6.5.3. Влияние аффинного преобразования
6.5.4. Три «базовые» формы: сфера, цилиндр и конус
6.5.5. Формирование полигональной сетки для криволинейной поверхности
6.5.6. Линейчатые поверхности
6.5.7. Поверхности вращения
6.5.8. Поверхности второго порядка
6.5.9. Суперквадрики
6.5.10. Трубки на базе трехмерных кривых
6.5.11. Поверхности на базе явных функций двух переменных
6.6. Заключение
6.7. Тематические задания
Тематическое задание 6.1. Сетки, записанные в файл
Тематическое задание 6.2. Вывод метода Ньюэлла
Тематическое задание 6.3. Призма
Тематическое задание 6.4. Совокупность призм и экструдированные полосы из четырехугольников
Тематическое задание 6.5. Трубки и змейки на базе параметрической кривой
Тематическое задание 6.6. Построение поверхностей вращения с дискретными шагами
Тематическое задание 6.7. Списки ребер и каркасные модели
Тематическое задание 6.8. Сводчатые потолки
Тематическое задание 6.9. О Платоновых телах
Тематическое задание 6.10. Об Архимедовых телах
Тематическое задание 6.11. Алгебраическая форма поверхностей второго порядка
Тематическое задание 6.12. Сцены с супеквадриками
Тематическое задание 6.13. Рисование гладких параметрических поверхностей
Тематическое задание 6.14. Сузить, закрутить, изогнуть и расплющить
6.8. Дополнительная литература
Глава 7. Трехмерный просмотр
7.1. Введение
7.2. Снова о камере
7.2.1. Установка отображаемого объема
7.2.2. Позиционирование и ориентирование камеры
7.3. Встраивание камеры в программу
7.3.1. «Пилотирование» камеры
7.4. Перспективные проекции трехмерных объектов
7.4.1. Перспективная проекция точки
7.4.2. Перспективная проекция прямой линии
7.4.3. Включение перспективы в графический конвейер
7.4.4. Отсечение граней границами отображаемого объема
7.5. Создание стереоизображений
7.6. Классификация проекций
7.6.1. Одно-, двух- и трехточечные перспективы
7.6.2. Параллельные проекции
7.7. Резюме
7.8. Тематические задания
Тематическое задание 7.1. «Пилотирование» камеры по сцене
Тематическое задание 7.2. Стереоизображения
Тематическое задание 7.3. Создание параллельных проекций
Тематическое задание 7.4. Самодельное проецирование (если бы OpenGL был недоступен)
Тематическое задание 7.5. Удаление невидимых граней для большей эффективности
7.9. Дополнительная литература
Глава 8. Визуализация граней для усиления реалистичности
8.1. Введение
8.2. Введение в модели закрашивания
8.2.1. Геометрические составляющие для нахождения отраженного света
8.2.2. Вычисление диффузной составляющей
8.2.3. Зеркальное отражение
8.2.4. Роль фонового света
8.2.5. Комбинирование компонентов освещения
8.2.6. Добавление цвета
8.2.7. Закраска и графический конвейер
8.2.8. Использование источников света в OpenGL
8.2.9. Работа со свойствами материалов в OpenGL
8.2.10. Закраска сцен, заданных с помощью SDL
8.3. Плоское и плавное закрашивание
8.3.1. Плоское закрашивание
8.3.2. Плавное закрашивание
8.4. Удаление невидимых поверхностей
8.4.1. Использование буфера глубины
8.5. Добавление текстуры к граням
8.5.1. Наложение текстуры на плоскую поверхность
8.5.2. Визуализация текстуры
8.5.3. Что регулирует текстура?
8.5.4. Пример текстурирования с использованием OpenGL
8.5.5. Обертывание текстуры вокруг криволинейных поверхностей
8.5.6. Отображение отражений
8.6. Добавление теней объектов
8.6.1. Тени как текстура
8.6.2. Создание теней с помощью буфера теней.
8.7. Заключение
8.8. Тематические задания
Тематическое задание 8.1. Создание закрашенных объектов с использованием OpenGL
Тематическое задание 8.2. Самодельный графический конвейер
Тематическое задание 8.3. Добавление закраски полигонов и удаления невидимых поверхностей при помощи буфера глубины
Тематическое задание 8.4. Визуализация текстуры
Тематическое задание 8.5. Применение процедурных 3D-текстур
Тематическое задание 8.6. Рисование теней
Тематическое задание 8.7. Расширение SDL с целью включения текстурирования
8.9. Дополнительная литература
Глава 9. Приближение к бесконечности
9.1. Введение
9.2. Фракталы и самоподобие
9.2.1. Последовательное усложнение кривых
9.2.2. Рисование кривых и снежинок Коха
9.2.3. Дробная размерность
9.3. Создание строк и кривые Пеано
9.3.1. Рекурсивная генерация строк и рисование в программе
9.3.2. Разрешение ветвления
9.3.3. Добавление случайности и сужения
9.4. Замощение плоскости
9.4.1. Моноэдрические мозаики
9.4.2. Диэдральные мозаичные размещения
9.4.3. Рисование мозаик
9.4.4. Рептилии
9.5. Создание изображений с использованием системы итерируемых функций
9.5.1. Экспериментальный копир
9.5.2. Теоретические основы процесса копирования
9.5.3. Рисование k-й итерации
9.5.4. «Игра в Хаос»
9.5.5. Нахождение системы IFS; фрактальное сжатие изображений
9.6. Множество Мандельброта
9.6.1. Множества Мандельброта и системы итерируемых функций
9.6.2. Определение множества Мандельброта
9.6.3. Определение того, находится ли точка c в пределах множества Мандельброта
9.6.4. Рисование множества Мандельброта
9.6.5. Некоторые замечания по поводу множества Мандельброта
9.7. Множества Жюлиа
9.7.1. Плотное множество Жюлиа Kc
9.7.2. Рисование плотных множеств Жюлиа
9.7.3. Некоторые замечания относительно неподвижных точек и бассейнов притяжения
9.7.4. Множество Жюлиа Jc
9.8. Случайные фракталы
9.8.1. Фрактализация отрезка
9.8.2. Контроль за спектральной плотностью фрактальной кривой
9.9. Резюме
9.10. Тематические задания
Тематическое задание 9.1. Рисование по генерации строк
Тематическое задание 9.2. Рисование снежинок и рептилий
Тематическое задание 9.3. «Игра в Хаос»
Тематическое задание 9.4. Рисование орбит внутри множества Мандельброта
Тематическое задание 9.5. Создание изображений множества Мандельброта
Тематическое задание 9.6. Создание изображений множеств Жюлиа
Тематическое задание 9.7. Непериодические мозаики; мозаики Пенроуза
Тематическое задание 9.8. Фрактализация кривых
Тематическое задание 9.9. Моделирование фрактализованных гор
9.11. Дополнительная литература
Глава 10. Средства для растровой графики
10.1. Введение
10.2. Управление пиксельными картами
10.2.1. Важные операции с пиксельными картами
10.2.2. Типы данных, используемые для пиксельных карт
10.2.3. Масштабирование и поворот изображений
10.3. Объединение пиксельных карт
10.3.1. Цикл «чтение — модификация-запись»
10.3.2. Альфа-канал и смешивание изображений
10.3.3. Логические комбинации пиксельных карт
10.3.4. Операция BitBLT
10.4. Рисование прямых своими силами: алгоритм Брезенхема
10.4.1. Алгоритм Брезенхема для рисования прямых линий
10.5. Определение и заполнение областей из пикселов
10.5.1. Задание областей
10.5.2. Пиксельно-определенные области
10.5.3. Рекурсивный алгоритм заливки
10.5.4. Заполнение областей узорами
10.5.5. Использование связности: заполнение области на основе серий пикселов
10.6. Манипулирование символически-определенными областями
10.6.1. Области, описываемые прямоугольниками
10.6.2. Области, заданные контуром
10.7. Заполнение полигонально-определенных областей
10.7.1. Какие пикселы ребра принадлежат полигону?
10.7.2. Повышение эффективности алгоритма
10.8. Ступенчатость; технологии сглаживания
10.8.1. Технологии сглаживания
10.8.2. Сглаживание текстуры
10.8.3. Сглаживание с применением OpenGL
10.9. Увеличение количества цветов и оттенков
10.9.1. Упорядоченное размытие
10.9.2. Рассеивание ошибок
10.10. Резюме
10.11. Тематические задания
Тематическое задание 10.1. Чтение и просмотр BMP-файлов изображений
Тематическое задание 10.2. Растворение одной пиксельной карты в другой с помощью OpenGL
Тематическое задание 10.3. Заполнение области на основе серий
Тематическое задание 10.4. Работа со структурой данных «формы»
Тематическое задание 10.5. Цепное кодирование форм
Тематическое задание 10.6. Заполнение «горизонтально-выпуклых» полигонов
Тематическое задание 10.7. Заполнение полигона общего вида
Тематическое задание 10.8. Рассеивание ошибок
10.12. Дополнительная литература
Глава 11. Создание кривых и поверхностей
11.1. Введение
11.1.1. Параметрические кривые как траектории
11.1.2. Плавность движения
11.2. Описание кривых полиномами
11.3. Интерактивное конструирование кривых
11.4. Применение кривых Безье для построения кривых
11.4.1. Алгоритм де Кастельо
11.5. Свойства кривых Безье
11.6. Нахождение лучших стыковочных функций
11.6.1. Проблема локального контроля
11.6.2. Список пожеланий для множества стыковочных функций
11.6.3. Кусочно-полиномиальные кривые и сплайны
11.6.4. Построение из g(t) множества стыковочных функций
11.6.5. Сплайны и базисные функции
11.7. Базисные функции В-сплайнов
11.7.1. Определение В-сплайн функций
11.7.2. Использование кратных узлов в узловом векторе
11.7.3. Незамкнутые B-сплайн кривые: стандартный узловой вектор
11.8. Полезные для дизайна свойства B-сплайн кривых
11.8.1. Использование кратных контрольных точек
11.9. Рациональные сплайны и NURBS-кривые
11.10. Краткое знакомство с интерполяцией
11.10.1. Интерполяция посредством кусочных кубических полиномов
11.10.2. Эрмитова интерполяция
11.10.3. Естественные кубические сплайны
11.10.4. Вычисление наклонов при кубической интерполяции
11.10.5. Интерактивное задание касательных векторов
11.11. Моделирование криволинейных поверхностей
11.11.1. Линейчатые поверхности на базе В-сплайнов
11.11.2. Поверхности вращения на базе В-сплайнов
11.11.3. Лоскуты Безье
11.11.4. Сшивание лоскутов Безье
11.11.5. В-сплайн лоскуты
11.11.6. NURBS-поверхности
11.12. Резюме
11.13. Тематические задания
Тематическое задание 11.1. Попурри из интересных параметрических кривых
Тематическое задание 11.2. «Эллиптипул»
Тематическое задание 11.3. Кривые Безье
Тематическое задание 11.4. Генератор квадратичной сплайн-кривой
Тематическое задание 11.5. Создание редактора сплайн-кривых
Тематическое задание 11.6. Интерполяция контрольных точек B-сплайнами
Тематическое задание 11.7. Интерполяция кубическими полиномами
Тематическое задание 11.8. Многоуважаемый чайник
Тематическое задание 11.9. Инвариантность относительно проективных преобразований
Тематическое задание 11.10. Рисование NURBS-лоскутов
11.14. Дополнительная литература
Глава 12. Теория цвета
12.1. Введение
12.2. Описания цветов
12.2.1. Доминантная длина волны
12.2.2. Подбор цветов
12.3. Международная комиссия по стандартам освещенности
12.3.1. Построение CIE-диаграммы
12.3.2. Использование хроматической CIE-диаграммы
12.3.3. Цветовые охваты
12.4. Цветовые пространства
12.4.1. Цветовые пространства RGB и CMY
12.4.2. Аддитивные и субтрактивные цветовые системы
12.4.3. Цветовая модель HLS
12.5. Квантование цвета
12.5.1. Квантование с постоянным шагом
12.5.2. Алгоритм популярности
12.5.3. Алгоритм медианного сечения
12.5.4. Octree-квантование
12.6. Резюме
12.7. Тематические задания
Тематическое задание 12.1. Рисование CIE-диаграммы
Тематическое задание 12.2. Рисование RGB-пространства
Тематическое задание 12.3. Из HSV в RGB
Тематическое задание 12.4. Однородное квантование цвета
Тематическое задание 12.5. Квантование цвета по популярности
Тематическое задание 12.6. Квантование цвета методом медианного сечения
Тематическое задание 12.7. Квантование цвета методом октодерева
12.8. Дополнительная литература
Глава 13. Удаление невидимых поверхностей
13.1. Введение
13.1.1. Два подхода: «точность по объекту» и «точность по изображению»
13.1.2. Описание данных для полигональных сеток
13.2. Снова об алгоритме буфера глубины
13.3. HSR-методы со списками приоритетов
13.3.1. Алгоритм беспечного художника
13.3.2. HSR с использованием деревьев двоичного разбиения пространства
13.3.3. Алгоритм сортировки по глубине
13.4. HSR-метод построчного сканирования
13.5. Методы разбиения области
13.5.1. Квадрантное разбиение
13.5.2. Другие определения простой области
13.6. О методах удаления невидимых линий
13.6.1. Геометрическое тестирование в подпрограмме edgeTest()
13.7. HSR-методы для криволинейных поверхностей
13.8. Резюме
13.9. Тематические задания
Тематическое задание 13.1. Проверка алгоритма художника
Тематическое задание 13.2. Тест и разбиение
Тематическое задание 13.3. Удаление невидимых поверхностей с использованием BSP-деревьев
Тематическое задание 13.4. HSR с использованием сортировки по глубине
Тематическое задание 13.5. Использование HSR-метода построчного сканирования
Тематическое задание 13.6. Рисование при помощи алгоритма Варнока
Тематическое задание 13.7. HLR с помощью алгоритма стека ребер
13.10. Дополнительная литература
Глава 14. Введение в трассировку лучей
14.1. Введение
14.2. Построение геометрии трассировки лучей
14.3. Обзор процесса трассировки луча
14.4. Пересечение луча с объектом
14.4.1. Пересечение луча с базовой плоскостью
14.4.2. Пересечение с базовой сферой
14.4.3. Пересечение луча с преобразованными объектами
14.5. Организация трассировщика луча в приложении
14.5.1. Подпрограмма для вычисления пересечений луча со сферой
14.5.2. Полный трассировщик лучей для сцен с излучающей сферой
14.6. Пересечение лучей с другими примитивами
14.6.1. Пересечение с квадратом
14.6.2. Пересечение с коническим цилиндром
14.6.3. Пересечение с кубом (или с любым другим выпуклым полиэдром)
14.6.4. Добавление новых примитивов
14.7. Рисование закрашенных изображений сцен
14.7.1. Нахождение нормали в точке соударения
14.7.2. Раскраска объектов в соответствии с материалами поверхностей
14.7.3. Физически обоснованные модели закраски: закрашивание Кука—Торренса
14.8. Наложение текстуры на поверхности
14.8.1. Текстура твердого тела
14.8.2. Наложение изображений на поверхности
14.8.3. Сглаживающая трассировка лучей
14.9. Использование экстентов
14.9.1. Боксы и сферические экстенты
14.9.2. Использование проекционных экстентов
14.10. Добавление теней для большей реалистичности
14.11. Отражения и прозрачность
14.11.1. Преломление света
14.11.2. Обработка преломления методом shade()
14.12. Составные объекты: логические операции с объектами
14.12.1. Трассировка лучей для CSG-объектов
14.12.2. Структура данных для Булевых объектов
14.12.3. Пересечения лучей с Булевыми объектами
14.12.4. Построение и использование экстентов для CGG-объектов
14.13. Резюме
14.14. Тематические задания
Тематическое задание 14.1. Эмиссионный трассировщик
Тематическое задание 14.2. Усовершенствованный трассировщик лучей
Тематическое задание 14.3. Реализация теней при трассировке лучей
Тематическое задание 14.4. Использование экстентов для ускорения трассировки лучей
Тематическое задание 14.5. Трассировка лучей с 3D-текстурами
Тематическое задание 14.6. Сглаживание
Тематическое задание 14.7. Трассировка лучей для других примитивов
Тематическое задание 14.8. Двумерный трассировщик лучей для работы с преломлением
Тематическое задание 14.9. Отраженный и преломленный свет
Тематическое задание 14.10. Трассировка Булевых комбинаций объектов
14.15. Дополнительная литература
Приложение А. Графический инструментарий: получение OpenGL
А1. Получение и инсталляция OpenGL
Приложение Б. Немного математики для компьютерной графики
Б1. Некоторые основные определения, относящиеся к матрицам и операциям над ними
Б1.1. Действия с матрицами
Б1.2. Умножение двух матриц
Б1.3. Разбиение матрицы на блоки
Б1.4. Определитель матрицы
Б1.5. Обращение матрицы
Б2. Некоторые свойства векторов и операции над ними
Б2.1. Перп вектора; перп-скалярное произведение
Б2.2. Смешанное произведение
Б2.3. Двойное векторное произведение
Б3. Арифметика комплексных чисел
Б4. Сферические координаты и направляющие косинусы

Приложение В. Некоторые полезные классы и служебные подпрограммы
В1. Классы для двумерной графики
В2. RGBPixmap CLASS
В3. Класс SCENE и сопутствующие классы
В4. Класс NOISE
В5. Некоторые классы, полезные при трассировке лучей

Приложение Г. Введение в PostScript®
Г1. О языке PostScript
Г1.1. Некоторые предварительные замечания
Г1.2. PostScript основан на стеке
Г1.3. Некоторые операции со стеком: pop, dup, exch, clear
Г1.4. Более сложные операторы работы со стеком
Г1.5. Некоторые арифметические операторы
Г2. Графические операторы в PostScript
Г2.1. Системы координат и преобразования
Г2.2. Команды создания контура
Г2.3. Дуги окружностей
Г2.4. Использование операторов закрашивания
Г2.5. Преобразования координат
Г2.6. Операторы графического состояния
Г3. Рисование текста в PostScript
Г4. Определение новых переменных и процедур
Г4.1. Определение переменных
Г4.2. Определение процедур
Г4.3. Простейшая форма итерации с использованием оператора repeat
Г5. Команды решений и итераций
Г5.1. Команды, принимающие логические величины в качестве аргументов
Г5.2. Принятие решений
Г5.3. Итерация
Г6. Печать численных значений
Г7. Рисование полутоновых изображений

Приложение Д. Введение в SDL
Д1. Синтаксис SDL
Д2. Макросы в SDL
Д3. Расширение SDL

Литература

Список терминов

Алфавитный указатель

Купить книгу





Другие книги Наверх


  Рейтинг@Mail.ru     Титульная страница Поиск, карта сайта Написать письмо