
- •Глава 9. Описание и характеристика поверхностей 3
- •Глава 14. Трассировка лучей 82
- •Глава 15. Цвет в компьютерной графике 90
- •Глава 16. Сжатие графических изображений 96
- •Глава 9. Описание и характеристика поверхностей
- •9.1. Описание поверхностей
- •Параметрическое описание
- •Описание неявными функциями
- •Поточечное описание
- •Фрактальное описание
- •9.2. Характеристики поверхностей
- •Поверхности 1-го порядка
- •Поверхности 2-го порядка
- •Фрактальные поверхности
- •9.3. Моделирование деформации трехмерных полигональных поверхностей в режиме реального времени
- •Метод деформации на основе использования неявного задания поверхности объекта
- •Метод деформации плоских протяженных объектов
- •Метод деформации тела, заданного полигональной сеткой
- •9.4. Триангуляция поверхностей
- •Уровень детализации (lod)
- •Глава 10. Получение реалистичных изображений
- •10.1. Методы создания реалистических изображений
- •Перспективные проекции
- •Передача глубины яркостью
- •10.2. Перспективные изображения
- •Глава 11. Проецирование
- •11.1. Основные виды проекций
- •Параллельные проекции
- •Центральные проекции
- •11.2. Математическое описание прямоугольных проекций
- •11.3. Математическое описание косоугольных проекций
- •11.4. Математическое описание перспективной проекции
- •11.5. Задание произвольных проекций. Видовое преобразование.
- •Глава 12. Алгоритмы удаления скрытых линий и поверхностей
- •12.1. Общие сведения об удалении скрытых линий и поверхностей
- •12.2. Алгоритм сортировки по глубине (оп)
- •12.3. Алгоритм, использующий z-буфер (пи)
- •12.4. Алгоритм построчного сканирования (пи)
- •12.5. Алгоритм разбиения области
- •12.6. Алгоритм плавающего горизонта
- •12.8. Алгоритм трассировки лучей
- •12.9. Иерархический z—буфер (смешанный тип)
- •Глава 13. Свет в компьютерной графике
- •13.1. Общие сведения о свете.
- •13.2. Модель освещения.
- •Свойства объектов
- •Отражение диффузное
- •Зеркальное отражение
- •Пропускание света (прозрачность)
- •13.3. Закраска полигональных сеток
- •Однотонная закраска
- •Интерполяция интенсивностей (метод Гуро)
- •Интерполяция векторов нормали (метод Фонга)
- •13.4. Тени
- •Источник света в бесконечности
- •Локальный источник
- •13.5. Фактура. Нанесение узора.
- •Нанесение узора на поверхность. Регулярная текстура.
- •Нанесение узора на поверхность. Стохастическая текстура.
- •13.6. Создание неровностей на поверхности.
- •Использование карт высот
- •Метод возмущения нормали
- •Использование фрактальных поверхностей
- •13.7. Фильтрация текстур
- •13.8. Полутоновые изображения
- •Глава 14. Трассировка лучей
- •14.1 Метод прямой трассировки
- •14.2 Метод обратной трассировки
- •Глава 15. Цвет в компьютерной графике
- •15.1. Ахроматический и хроматический цвета
- •15.2. Цветовые модели
- •Системы смешивания основных цветов
- •Цветовая модель hsv
- •Модель hls
- •Цилиндрическая цветовая модель
- •Глава 16. Сжатие графических изображений
- •16.1. Графические форматы
- •16.2. Основные сведения о сжатии изображений
- •16.3. Алгоритмы сжатия файлов без потерь
- •Алгоритм Хаффмана
- •Алгоритм Лемпеля—Зива (lzw)
- •Алгоритм rle (Run Length Encoding)
- •Обрезание хвостов
- •16.4. Сжатие с потерями цветных и полутоновых файлов
- •Сжатие изображения по стандарту jpeg
- •Новый стандарт jpeg 2000
- •Фрактальное сжатие изображений
Глава 12. Алгоритмы удаления скрытых линий и поверхностей
Задача удаления невидимых поверхностей является классической задачей компьютерной графики, и, начиная с 70-х годах было предложено большое количество алгоритмов для ее решения. Удаление невидимых поверхностей основывается на том факте, что если пользователь не видит некоторый объект, то нет необходимости этот объект визуализировать, то есть визуализировать нужно только полностью или частично видимые объекты.
12.1. Общие сведения об удалении скрытых линий и поверхностей
Алгоритмы удаления невидимых поверхностей определяют невидимые для пользователя части сцены и не используют их для отгображения.
Многие алгоритмы ориентированы на специализированное применение. При выборе алгоритма учитывается число объектов в сцене, их вид и способ расположения. Поэтому наилучшего решения задачи удаления скрытых линий и поверхностей не существует. Почти все алгоритмы удаления скрытых линий и поверхностей включают в себя сортировку по расстоянию от тела до точки наблюдения. Основная идея сортировки — чем дальше объект, тем больше вероятность, что он будет заслонен другим объектом.
Все алгоритмы удаления скрытых линий и поверхностей можно разделить на два типа:
Алгоритмы, работающие в объектном пространстве (ОП). Основной принцип этих алгоритмов - каждая из n граней сравнивается с оставшимися (n-1) гранями;
они имеют дело с физической системой координат, в которой описаны эти объекты;
весьма точны (полученные изображения можно легко увеличить в несколько раз без потери качества);
объем вычислений теоретически - n2, где n – количество объектов.
Алгоритмы, работающие в пространстве изображения (ПИ). Основной принцип этих алгоритмов - надо определить, какая из n граней видна в каждой точке экрана, т.е. каждый объект сравнивается с каждым пикселем экрана:
имеют дело с системой координат экрана;
точность ограничена разрешающей способностью экрана (если полученные результаты потом увеличивать во много раз, они не будут соответствовать исходному изображению);
объем
вычислений теоретически –
,
где N – количество пикселов на экране.
12.2. Алгоритм сортировки по глубине (оп)
Алгоритм сортировки по глубине относится к алгоритмам, работающим в объектном пространстве.
Основной принцип алгоритма - все объекты сортируются по глубине и выводятся на экран в обратном порядке, и, таким образом, более близкие объекты затирают более дальние. Алгоритм называют еще алгоритмом художника, так как, рисуя картины, вначале изображают обычно дальний план, а потом – ближайшие объекты.
Шаги алгоритма:
Упорядочение всех объектов в соответствии с увеличением их z-координат.
Разрешение всех неопределенностей, которые возникают при перекрытии z-оболочек (исследуется дополнительно x-оболочка (рис. 12.2)).
Преобразование каждого из объектов в растровую форму в порядке уменьшения z-координаты.
Рис. 12.2 Разрешение неопределенностей
На третьем рисунке неопределенностей нет, так как z-оболочки не перекрываются. На первом и втором происходит перекрытие z-оболочек, поэтому дополнительно исследуются x-оболочки. На втором рисунке они не перекрываются, а на первом перекрываются. В этом случае исследуются y-оболочки.