
- •Глава 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.18).
Рис. 13.18 Источник света в бесконечности
В случае бесконечно удаленного источника света предполагается, что лучи света, приходящие к объекту, полностью параллельны. Это позволяет решить уравнение проекции только раз и применить полученное решение ко всем вершинам объекта.
Имея
точку источника света
и вершину объекта
,
необходимо получить проекцию вершины
объекта на плоскость z=o,
то есть точку тени
.
Из подобных треугольников получаем:
(1.1)
Решая
это уравнение относительно
,
получаем:
(1.2)
Если принять, что L - это вектор из точки P к источнику света, то точку S можно выразить как:
(1.3)
Так как проекцию производится на плоскость z=0, то уравнение (1.3) можно переписать в следующем виде:
(1.4)
или
(1.5).
Решая
(1.3) относительно
и
,
получаем
(1.6)
или в матричной форме:
(1.7)
Теперь
имея координаты точки P
в мировом координатном пространстве,
можно получить ее проекцию на плоскость
z=0
просто путем умножения на матрицу
(1.8).
Локальный источник
Уравнение (1.6) для бесконечно удаленного источника света может быть обобщено для случая, когда источник света находится на конечном расстоянии от объекта. В этом случае понадобятся дополнительные вычисления на каждую вершину, так как каждая вершина имеет, в общем случае, свое собственное направление на источник света. Тем не менее, в этом случае мы тоже можем перенести большую часть вычислений в матрицу .
Если L - это точка расположения источника света, то (1.3) принимает вид:
(1.9)
После проецирования на плоскость z=0:
(1.10)
и
(1.11)
Если использовать гомогенизацию после преобразования, то (1.11) можно записать в виде матрицы:
(1.12).
Имея координаты точки P в мировом координатном пространстве, можно записать:
(1.13)
13.5. Фактура. Нанесение узора.
В компьютерной графике фактурой называется детализация строения поверхности. Существует два вида детализации:
Нанесение заданного узора на гладкую поверхность (регулярная и стохастическая текстуры).
Создание неровностей на поверхности.
Нанесение узора на поверхность. Регулярная текстура.
Речь идет о рисунке, который чаще всего можно описать аналитически – клеточка, полосочка и т.д. Характерные точки узора из пространства текстуры (фактурное пространство (ФП)) переносятся в объектное пространство (ОП), затем в пространство изображения (ПИ) и определенным образом соединяются отрезками. Главным при этом является отображение, поэтому задача сводится к преобразованию систем координат.
Пусть рисунок узора задан в прямоугольной системе координат (u,w) (ФП), а поверхность – в другой прямоугольной системе координат (x,y) (ОП), то для нанесения узора на поверхность надо найти или задать функцию отображения одного пространства на другое:
,
или
,
.
Обычно предполагается, что функция отображения линейна:
,
где коэффициенты A, B, C, D выводятся из соотношения между двумя известными точками в системах координат.
Пример.
Узор в виде клеточки (рис. 13.19, а) надо отобразить на кусок поверхности, заданный десятой частью сферы.
Рис. 13.19 Нанесение узора на поверхность
Параметрическое представление куска сферы:
Пусть функция отображения линейна и имеет вид:
,
.
Углы узора переходят в углы куска следующим образом:
,
при
,
,
при
,
,
при
,
,
при
,
Отсюда
,
,
,
.
Функция
отображения:
,
или
обратное преобразование:
,
.
В
таблице 13.1 приведено отображение одной
линии узора из фактурного пространства
(u-w)
в объектное пространство
,
а затем в декартовы координаты (x,y,z).
Таблица 13.1 Значения параметров
-
u
w
x
y
z
¼
0
¼
½
¾
1
0,38
0,38
0,35
0,32
0,27
0,92
0,90
0,85
0,77
0,65
0
0,20
0,38
0,56
0,71