
- •Глава 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
- •Фрактальное сжатие изображений
13.3. Закраска полигональных сеток
Объект, представленный или аппроксимированный гранями, с учетом освещения точечным источником света может быть закрашен разными способами. Существует три способа закраски объектов, заданных полигональными сетками:
Однотонная закраска
Это самый простой вариант закраски. Вычисляется один уровень интенсивности, который используется для закраски всего полигонального многоугольника. Это чаще всего не соответствует реальной картине, так как освещенность в рамках грани меняется. Если из некоторой точки направить один луч к источнику света, а второй перпендикулярно поверхности, то угол между этими лучами не будет постоянен в рамках полигональной грани. Исключение состовляет случай, когда источник света находится в бесконечности. Чем ближе источник света расположен к поверхности, тем больше будет разница в освещенности разных точек грани, так как меняется
При однотонной закраске предполагается, что:
Источник света расположен в бесконечности (
на всей полигональной грани)
Наблюдатель находится в бесконечности (
на всей полигональной грани)
Многоугольник представляет собой реальную моделируемую поверхность, а не является аппроксимацией криволинейной поверхности.
Если
первое или второе условие неприемлемо,
можно использовать усредненные значения
,
,
вычисленные в центре многоугольника.
Третье предположение тоже часто не выполняется, но оно оказывает большое влияние на результат: каждая из видимых граней аппроксимированной поверхности хорошо отличима от других, так какинтенсивность каждой из этих граней отличается от интенсивности соседних граней, то есть наблюдается эффект полос Маха (рис. 13.12).
Рис. 13.12 Пример однотонной закраски
Интерполяция интенсивностей (метод Гуро)
Метод Гуро позволяет получать сглаженный объект на этапе визуализации, не внося изменения в геометрическую модель (полигональные сетки). Полосы Маха значительно уменьшаются. Происходит сглаживаение ребер. Поэтому этот метод используется для объектов, аппроксимированных гранями.
Процесс закраски осуществляется в четыре этапа:
Вычисляются нормали к поверхностям.
Определяются нормали в вершинах путем усреднения нормалей по всем граням, которым принадлежит вершина (рис. 13.13)
Рис. 13.13 Определение нормалей
Используя нормали в вершинах и применяя произвольный метод закраски, вычисляются значения интенсивности в вершинах.
Каждый многоугольник закрашивается путем линейной интерполяции значений интенсивности в вершинах сначала вдоль каждого ребра, а затем между ребрами вдоль каждой сканирующей строки (рис. 13.14):
Рис. 13.14 Определение значений интенсивности путем линейной интерполяции
Интерполяция вдоль ребер легко объединяется с алгоритмом удаления скрытых поверхностей, построенном на принципе построчного сканирования. Для всех ребер запоминается начальное значение интенсивности, а также изменение интенсивности при каждом единичном шаге по координате y. Заполнение видимого интервала на сканирующей строке производится путем интерполяции между значениями интенсивности на двух ребрах, ограничивающих интервал. Для цветных объектов отдельно интерполируется каждая из компонент цвета (рис. 13.15).
Рис. 13.15 Пример закраски методом Гуро
По методу Гуро точные значения интенсивности находятся лишь в вершинах полигональных сеток. Значения во всех остальных точках получаются на базе значений в вершинах. Поэтому данный тип закраски не подходит для зеркального отражения. Блик, если он не попадает на вершину, будет просто проигнорирован. Если же блик захватывает вершину, то будет неестественно размазан вдоль граней, которым принадлежит эта вершина.