Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

ALL

.pdf
Скачиваний:
223
Добавлен:
12.02.2018
Размер:
15.74 Mб
Скачать

ПЕРСПЕКТИВНЫЕ ПРЕОБРАЗОВАНИЯ

Перспективное преобразование выполняется, когда не равен нулю любой из первых трех элементов четвертого столбца обобщенной 4 х 4-матрицы

преобразования однородных координат.

Верхняя левая (3 х 3)-подматрица задает линейное

 

 

 

 

 

 

3 3

 

 

 

 

31

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1 3

 

1 1

преобразование в форме масштабирования, сдвига, отражения и вращения. Левая нижняя (1 х 3)- подматрица задает перемещение, а правая верхняя (3 х 1)-подматрица — перспективное преобразование. Последняя правая нижняя (1 х 1)- подматрица задает общее масштабирование.

Перспективное преобразование — это преобразование одного трехмерного пространства в другое. В отличие от параллельных преобразований, в данном случае параллельные прямые сходятся, размер объекта уменьшается с увеличением расстояния до центра проекции, и происходит неоднородное искажение линий объекта, зависящее от ориентации и расстояния от объекта до центра проекции.

Это соответствует нашему восприятию глубины, но не сохраняет форму объекта.

ПЕРСПЕКТИВНЫЕ ПРЕОБРАЗОВАНИЯ

Одноточечное перспективное преобразование задается равенством

 

 

 

1

0

0

0

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

x y z

1

0

1

0

0

x y

z zr 1

Один элемент 0

0

0

1

r

 

 

 

 

 

0

0

0

1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

• Здесь h = rz + 1 1. Обычные координаты получаются делением на h:

x*

y*

z*

1

x

 

 

 

 

y

 

z

1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

zr 1

 

zr 1

 

 

 

 

 

 

 

zr 1

 

 

 

 

Перспективное проецирование на некоторую двумерную видовую плоскость можно получить, объединив ортографическую проекцию с перспективным преобразованием.

Например, перспективное проецирование на плоскость z = 0 выполняется с помощью преобразований

 

 

0

0

0

 

0

0

0

 

 

0

0

0

 

 

 

 

 

 

 

 

 

 

1

1

 

1

 

 

 

0

0

0

 

 

T Rx Ry

0 0

1

r

0 0

0

0

0 0

0

r

 

x

1

 

y 0 zr 1

y z 1 0 1

0

0 x

 

0 1

0

0 0 1

0

0

0 1

0

0

 

 

 

 

 

 

 

 

 

0 0

0

1 0 0

0

1

0 0

0

1

 

0

0

0

r

 

 

 

 

0 0

0

1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Обычные координаты равны

x*

y*

z*

1

 

x

y

0 1

 

 

 

 

 

 

 

 

 

 

 

zr 1

 

 

 

 

 

zr 1

 

ПЕРСПЕКТИВНЫЕ ПРЕОБРАЗОВАНИЯ

Перспективное проецирование на плоскость z = 0 отрезка АВ, параллельного оси z, в А*В* на плоскости z = 0 с центром проекции, расположенным в точке — 1/г на оси z.

Два этапа.

1.АВ отображается в А'В’.

2.Затем с помощью ортографического

проецирования отрезок А'В' в 3D пространстве отображается в отрезок А*В* на плоскости z = 0. Центр проекции в бесконечности.

Прямые А'В' и АВ пересекают плоскость в одной и той же точке. Прямая А'В' также пересекает ось z в точке z = +l/r. П-преобразование отображает расположенную в бесконечности точку пересечения параллельных прямых АВ и оси z в конечную точку z = 1/r на оси z. Эта точка называется точкой схода .

Точка схода — это такая точка «вдали», в которой параллельные прямые «кажутся» сходящимися и исчезающими. В качестве примера уходящая вдаль железнодорожная колея.

ПЕРСПЕКТИВНЫЕ ПРЕОБРАЗОВАНИЯ

Точка схода лежит на том же расстоянии от плоскости проекции, что и центр проекции, только с противоположной стороны от плоскости, например, если z = 0 плоскость проекции, а центр проекции находится в z = -1/r, то точка схода находится в z = +1/r.

Перспективное преобразование точки, находящейся в бесконечности на оси +z, т. е.

 

 

 

 

 

 

 

1

0

0

0

 

 

 

0

0 1 0 0 1

0

0

0

0 1 r

 

0

0

1

r

 

 

 

 

0

0

0

1

 

 

 

 

 

 

 

 

 

 

Соответствующая ей точка [x* y* z* 1] = [0 0 1/r 1] теперь является конечной точкой на положительной оси z.

Это означает, что все полубесконечное положительное пространство 0< z < отображается в ограниченную область 0 < z* < 1/r.

А так же, все прямые, параллельные оси z, теперь проходят через

точку [0 0 1/r 1] - точку схода.

ПЕРСПЕКТИВНЫЕ ПРЕОБРАЗОВАНИЯ

Одноточечные перспективные преобразования с центром проекции и точкой схода, расположенными на осях х и у. Одноточечное перспективное преобразование

 

 

 

 

 

 

 

 

 

 

1

0

0

p

 

 

 

 

x

y z 1 0

1

0

0

 

x y z

px 1

• (1)

 

0

0

1

0

 

 

 

 

 

 

0

0

1

 

 

 

 

 

0

 

 

 

 

с обычными координатами

 

 

 

 

 

 

 

x*

y*

z*

1

x

 

y

 

z

1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

px 1

 

px 1

 

 

 

 

 

px 1

 

 

имеет центр проекции [-1/p

0

 

0 1] и точку схода, расположенную на оси х в [1/p 0 0

 

1].

 

 

 

 

 

 

 

 

 

 

 

 

Одноточечное перспективное преобразование

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1

0

0

 

0

 

 

 

 

 

 

 

 

 

 

x

y z 1 0 1 0

q

x

y z qy 1

• (2)

 

 

 

 

0

0

1

 

0

 

 

 

 

 

 

 

 

 

 

 

0

0

 

 

 

 

 

 

 

 

 

 

 

 

 

 

0

 

1

 

 

 

 

 

 

 

с обычными координатами

 

 

 

 

 

x*

y*

z*

1

 

 

x

 

 

 

 

y

 

 

z

 

1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

qy 1

 

qy 1

 

 

 

 

 

 

 

qy 1

 

 

 

 

 

имеет центр проекции [0

- 1/q

 

0 1] и точку схода, расположенную на оси у в [0 1/9 0

 

1].

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Двуточечное перспективное преобразование

Если в четвертом столбце (4 х 4)-матрицы преобразования два элемента из первых трех не равны нулю, то такое преобразование называется двуточечным перспективным преобразованием.

 

 

 

 

 

 

 

 

 

 

1

0

0

p

 

 

 

x

y z 1 0 1

0

q

 

x y z

px qy 1

 

 

0

0

1

0

 

 

 

 

 

 

 

 

 

 

0

0

1

 

 

 

0

 

 

 

с обычными координатами

x*

y* z* 1

 

x

y

z

1

 

 

 

 

 

 

 

 

 

 

 

px qy 1

px qy 1

 

 

 

px qy 1

 

• имеет два центра проекции: первый на оси х в точке [-1/р 0 0 1] и второй на оси у в точке [0 -1/q 0 1], и две точки схода: на оси х в точке [1/р 0 0 1] и на оси у в точке [0 1/q 0 1].

• заданное уравнением двуточечное преобразование можно получить

объединением двух одноточечных. Конкретнее,

 

Ppq Pp Pq Pq Pp

• (3)

 

где [Ppq] задается уравнением (3), [Рр] — уравнением (1) и [Pq] —уравнением

(2) на предыдущем слайде.

Трехточечное перспективное преобразование

Трехточечная перспектива получается, если не равны нулю три первых элемента четвертого столбца (4 х 4)-матрицы преобразования..

 

 

 

 

 

 

 

 

 

1

0

0

p

 

 

 

x

 

 

0

q

 

x y z

px qy rz 1

y z 1 0 1

 

 

0

0

1

r

 

 

 

 

 

0

0

1

 

 

 

0

 

 

 

• с обычными координатами

 

 

 

 

x

y

z

 

x*

y*

z*

1

 

 

 

 

 

 

1

 

 

 

 

 

 

 

 

 

px qy rz 1

px qy rz 1

px qy rz 1

 

 

 

 

 

Трехточечное перспективное преобразование имеет три центра проекции: на оси х в точке [-1/р 0 0 1], на оси у в [0 -1/q 0 1] и на оси z в [0 0 - 1/r 1], а также три точки схода: на оси х в [1/р 0 0 1], на оси у в [0 1/q 0 1] и на оси z в

[0 0 1/г 1].

Трехточечное перспективное преобразование, заданное, может быть получено конкатенацией трех одноточечных перспективных преобразований, по одному на каждую координатную ось.

МЕТОДЫ СОЗДАНИЯ ПЕРСПЕКТИВНЫХ ВИДОВ

Для того чтобы наблюдатель воспринял трехмерную форму объекта на основании только одного вида, надо, чтобы были видны несколько граней этого объекта.

Для простых объектов, подобных кубу, должны быть видны как минимум три грани.

Вид с несколькими гранями можно получить из одноточечной перспективной проекции с фиксированным центром и с плоскостью проецирования, перпендикулярной направлению взгляда, если предварительно выполнен перенос и/или поворот объекта. Тогда получается реалистический вид, если только центр проекции не находится слишком близко к объекту.

МЕТОДЫ СОЗДАНИЯ ПЕРСПЕКТИВНЫХ ВИДОВ

Рассмотрим простой перенос объекта с последующим одноточечным проецированием на плоскость z = 0 и с центром проекции в точке z = zc.

преобразование записывается в виде

T

(4)

 

 

 

 

1

Tr

P

0

 

xyz

 

rz

 

0

 

 

 

 

 

 

 

 

 

 

 

l

1

0

0

 

0

 

0

1

0

 

0

 

0

0

0

 

r

 

 

m

0

 

 

 

l

1 rn

где r = -l/zc.

 

0

0

0 1

0

0

0

1

0

0 0

1

0

0

0

1

0 0

0

0

r

 

m

 

 

0

0

 

 

n 1 0

1

1

0

0

0

 

 

 

0

1

0

0

 

 

 

0

0

0

1 z

c

 

 

 

 

 

 

 

 

m 0

 

 

 

l

1 n zc

 

Перенос в направлениях х и у открывает

дополнительные грани объекта. Перенос в обоих этих направлениях необходим, чтобы открыть три грани простого кубообразного объекта. На передней грани показываются истинные размер и форма.

Рис. Одноточечная перспективная проекция на плоскость z = 0 с переносом в х, у в направлениях вдоль прямой у = х отцентрированным относительно начала

координат куба .

МЕТОДЫ СОЗДАНИЯ ПЕРСПЕКТИВНЫХ ВИДОВ

Уравнение (4) также показывает, что перенос вдоль оси z, т.е. к центру проекции или от него, приводит к явному изменению масштаба (из-за элемента 1 — n/zc).

Этот эффект соответствует физической реальности, так как объекты, находящиеся дальше от наблюдателя, выглядят более мелкими.

При приближении центра проекции к бесконечности явление масштабирования исчезает. Как изображено на рисунке, объект может находиться с любой стороны от центра проекции. Если объект и плоскость проекции находятся по одну сторону от центра, то получается прямое изображение. Если же объект и плоскость проекции лежат по разные стороны от центра, то получается перевернутое изображение.

•Показаны. результаты перемещения объекта во всех трех направлениях. Здесь куб перемещается вдоль трехмерной прямой от -x = -у = - z к x = у = z.

Заметно очевидное увеличение размера, а также на всех видах заметно сохранение истинной формы, но не размера передней грани

Рис. Эффект масштабирования при перемещениях вдоль оси z для одноточечной перспективной проекции.

Соседние файлы в предмете Компьютерная Графика