- •Глава 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
- •Фрактальное сжатие изображений
11.4. Математическое описание перспективной проекции
Перспективное проеобразование имеет место в том случае, когда последний столбец результирующей матрицы преобразования ненулевой.
Для простоты примем, что плоскость проецирования перпендикулярна оси z и совпадает с плоскостью z=d.
Рис. 11.13 Схема перспективной проекции
Для каждой точки Р объекта точка изображения определяется как точка пересечения прямой линии ОР и экрана.
Рассмотрим подобные треугольники:
Расстояние d является в данном случае масштабным коэффициентом. Фактором, приводящим к тому, что удаленные объекты выглядят мельче, является деление на z. Допустимы все значения z, кроме z=0 (рис.11.14).
Рис. 11.14 Пример перспективной проекции
В матричном виде перспективное преобразование выразится:
Замечание
1: Т.к. точка,
принадлежащая оси z,
примерно находится в центре объекта, а
ось z
совпадает с
,
то точка Q
тоже будет находиться приблизительно
в центре изображения объекта. Если
расположить начало координат экрана
(плоскости проецирования) в нижнем левом
углу, а размеры экрана: а
– по горизонтали, b
– по вертикали, то
.
Замечание 2: Необходимо определить расстояние между точкой наблюдения Е и экраном – d (рис. 11.15).
Рис. 11.15 Схема перспективного проецирования
Это выражение равно применимо для горизонтальных и вертикальных размеров. Его надо использовать лишь для приблизительной оценки d, так как трехмерный объект может иметь сложную форму и не всегда ясно, какие размеры надо включать в это уравнение.
Замечание
3: Особенность
нашего глаза такова, что мы можем видеть
только точки, расположенные внутри
определенного конуса, ось которого
совпадает с направлением взгляда ОЕ.
Очень важный параметр этого конуса –
угол
(рис. 11.15).
Глаз, как и камера, допускает только такие значения угла , которые не больше . При выборе рекомендуется пользоваться формулой:
.
Выбор
слишком малого
может привести к трудностям. Если же
будет
слишком большим, то
будет мал, эффект перспективы уменьшится.
Оптимальный
вариант
.
Замечание 4: Рассмотрим случай, когда объект слишком длинный в направлении оси X (балка 200х2х2). Где лучше выбрать точку О? До сих пор мы выбирали ее в середине объекта. Всегда ли она будет и в центре объекта (рис. 11.16)?
Рис. 11.16 Перспективное изображение балки
Точка
,
которая находится в центре изображения,
не лежит на середине объекта.
Очевидно, что точку О надо выбирать не на середине балки, а ближе к глазу.
Рассмотренные формулы описывают перспективную проекцию с одной точкой схода. Результирующая матрица такого преобразования имеет ненулевой элемент на третьей строке в четвертом столбце.
Двухточечная перспективная проекция реализуется с помощью матрицы, в которой два ненулевых элемента в 4-ом стоблце.
Если же три элемента четвертого столбца матрицы преобразования ненулевые, по получается трехточечная (косая) перспективная проекция.
11.5. Задание произвольных проекций. Видовое преобразование.
В рассмотренных алгоритмах получения проекций были допущены ограничения на расположение картинной плоскости, центра проекции, что часто свойственно многим графическим пакетам.
Рассмотрим алгоритм получения проекций, когда картинная плоскость может располагаться относительно объекта произвольным образом. По сути дела задача сводится к преобразованию систем координат (рис. 11.17).
Рис. 11.17 Схема видового преобразования
Пусть
объект задан в мировой системе координат,
причем ее начало находится приблизительно
в центре объекта (точка О).
Объект наблюдается от точки Е
к точке О.
В точке Е
расположим вторую систему координат –
видовую. Вектор ЕО
определяет направление наблюдения.
Пусть точка Е
задана в сферических координатах
по отношению к мировым. То есть
ортогональные координаты
могут быть вычислены:
Ось z видовой системы координат расположена по линии наблюдения, x – вправо; y – вверх.
Мировая система координат – правосторонняя, видовая система координат – левосторонняя (обычно так выбирается) (рис. 11.18).
а) б)
Рис. 11.18 Правосторонняя (а) и левосторонняя (б) системы координат
Видовое преобразование:
,
где V – матрица видового преобразования ( ).
V представляет собой четыре элементарных преобразования и получается путем их перемножения.
Перенос
Перенос начала координат из точки О в точку Е.
Точка Е становится новым началом координат.
Поворот 1
Поворот
системы координат вокруг оси z
на угол
в отрицательном направлении (по часовой
стрелке). В результате ось Y
совпадает по направлению с горизонтальной
составляющей отрезка ОЕ. Матрица такого
изменения системы координат будет
совпадать с матрицей для поворота точка
на такой же угол в положительном
направлении.
Поворот 2
Поворот
вокруг оси X
на угол
в положительном направлении, чтобы ось
z
совпадала по направлению с ОЕ. Этот
поворот соответствует повороту точки
на угол
.
Изменение направления оси X
После трех преобразований оси Y и Z имеют правильную ориентацию, а ось Z должна быть направлена в противоположную сторону:
Результирующая матрица:
Теперь к полученным видовым координатам можно применить любое из элементарных проекционных преобразований (например, ортографическое, косоугольное или перспективное) для получения окончательного результата.
Проанализировав влияние параметров на получаемый результат, можно отметить, что расстояние до картинной плоскости работает как масштабный коэффициент, делая проекцию больше или меньше. Расстояние же до объекта влияет на сходимость линий (рис.11.19).
а) б)
Рис. 11.19 Примеры перспективных проекций с разными значениями расстояния до объекта
Чем ближе точка зрения к объекту, тем больше угол зрения, и искажение параллельности линий (рис. 11.18, б). И наоборот – чем дальше точка зрения от объекта, тем больше параллельные линии объекта стремятся к параллельности на проеции, а сама проекция стремится к параллельной (рис. 11.18, а).
