![]() |
|
|
|
Новости |
Новости сайта
Поиск |
Поиск по лучшим сайтам о 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.1. Выполнение вашего собственного преобразования с помощью CT в классе Canvas
5.8. Тематические задания- Тематическое задание 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Литература
Список терминов
Алфавитный указатель
Купить книгу
| Наверх |
|
|