Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Shpory_3D-mod.docx
Скачиваний:
2
Добавлен:
01.05.2025
Размер:
11 Мб
Скачать
☆

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, а).

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]