При работе с OpenGL матрица проецирования может быть загружена с помощью функции glLoadMatrix( ), как и матрица вида. Для большинства стандартных условий визуализации в составе OpenGL имеются соответствующие функции. Но сначала мы рассмотрим математический аппарат описания проективных преобразований на основе однородных координат. Этот аппарат позволяет описать практически любое проективное преобразование с помощью матриц размера 4x4.

Визуализация

5.3.1. Перспективные проекции Будем считать, что камера находится в начале координат и ее ось направлена вдоль отрицательной полуоси 2. На рис. 5.20 показаны два варианта компоновки объектива и картинной плоскости камеры. На рис. 5.20,а картинная плоскость ортогональна оптической оси объектива. Этот вариант характерен для большинства реальных оптических приборов, в том числе и для глаза человека. На рис. 5.20,6 показан более общий случай, когда ориентация картинной плоскости не совпадает с оптической осью объектива. Мы детально рассмотрим первый вариант, поскольку он проще. Однако вывод соотношений для общего случая выполняется по той же методике, и мы предоставляем читателям сделать его самостоятельно (см. упр. 5.6).

Как было сказано в главе 2, плоскость проекции можно поместить перед центром проецирования. Если картинная плоскость перпендикулярна оси проекции, то сформируются виды, схематически представленные на рис. 5.21. Точка, имеющая в мировом пространстве координаты (х, у, проецируется в точку (х,„ у,„ :р). Все проецирующие лучи сходятся в начале координат, и, поскольку картинная плоскость перпендикулярна оси г, 2Р = а". Так как камера "смотрит" в направлении отрицательной полуоси г. картинная плоскость находится в отрицательном полупространстве г < 0 и значение с/также отрицательно.

Рис. 5.20. Две камеры

Перспективная проекция

Рис. 5.21. Перспективная проекция: а - вид в пространстве; б - вид сверху; в - вид сбоку

На рис. 5.21,6 показаны два подобных треугольника, для которых справедливы соотношения

Эти уравнения нелинейны. Деление на г реализует перспективное сокращение - чем дальше отстоит объект от центра проецирования, тем меньше размер его изображения.


⇐ Предыдущая| |Следующая ⇒