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

ALL

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

АКСОНОМЕТРИЧЕСКИЕ И ИЗОМЕТРИЧЕСКИЕ ОРТОГОНАЛЬНЫЕ ПРОЕКЦИИ

Наиболее распространенной аксонометрической проекцией является изометрическая, которая получается таким согласованием плоскости проекции (или объекта), при котором эта плоскость пересечет все координатные оси, по которым определен объект (называются главными осями), на одинаковом расстоянии от начала координат. На рис. 7.25 показана изометрическая проекция куба. Чтобы получить эту проекцию, вектор нормали к плоскости наблюдения выравнивается вдоль диагонали куба. Всего существует восемь точек (по одной в каждом октанте), в которых можно получить изометрическую проекцию. На изометрической проекции все три главные оси сокращены одинаково, поэтому сохраняются относительные пропорции.

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

Рис. 7.24. Ортогональное проектирование объекта с изображением вертикальной и горизонтальной проекций

Рис. 7.25. Изометрическая проекция куба

АКСОНОМЕТРИЧЕСКИЕ И ИЗОМЕТРИЧЕСКИЕ ОРТОГОНАЛЬНЫЕ ПРОЕКЦИИ

Рис. 7.26. Ортогональная проекция точки пространства на плоскость наблюдения

КООРДИНАТЫ ОРТОГОНАЛЬНОЙ ПРОЕКЦИИ

Когда направление проектирования параллельно оси zview, уравнения преобразования ортогональной проекции тривиальны. Для любой точки (x; y; z) в координатах наблюдения, как показано на рис. 7.26, координаты проекции выражаются так:

xp = x; yp = y: (7.6)

Напомним, что при любом преобразовании проектирования значение координаты z записывается для использования в процедурах определения видимости. Кроме того, каждая трехмерная точка сцены преобразуется в точку в нормированном пространстве.

ОТСЕКАЮЩЕЕ ОКНО И ОБЪЕМ НАБЛЮДЕНИЯ ОРТОГОНАЛЬНОЙ ПРОЕКЦИИ

Для трехмерного наблюдения отсекающее окно задается так же, как для двухмерного, выбираются двухмерные точки, соответствующие левому нижнему и правому верхнему углам. В трехмерном наблюдении отсекающее окно размещается на плоскости наблюдения, а его стороны параллельны осям xview и yview, как показано на рис. 7.27.

Стороны отсекающего окна задают пределы изменения x и y в той части сцены, которую требуется отобразить на экране. С помощью данных пределов формируются верхняя, нижняя и две боковые стороны отсекающей области, называемой объемом наблюдения ортогональной проекции. Поскольку линии проекции перпендикулярны плоскости наблюдения, данные четыре границы являются плоскостями, также перпендикулярными плоскости наблюдения и проходящими через стороны отсекающего окна, формируя бесконечную отсекающую область, показанную на рис. 7.28.

Рис. 7.27. Отсекающее окно на плоскости наблюдения, минимальные и максимальные координаты даны в системе наблюдения

Рис. 7.28. Бесконечный объем наблюдения ортогональной проекции

ОТСЕКАЮЩЕЕ ОКНО И ОБЪЕМ НАБЛЮДЕНИЯ ОРТОГОНАЛЬНОЙ ПРОЕКЦИИ

Размер ортогонального объема наблюдения по оси zview можно ограничить, выбрав положение одной или двух дополнительных граничных плоскостей, параллельных плоскости наблюдения. Данные две плоскости называются ближней/дальней плоскостями отсечения или передней/задней плоскостями отсечения. Ближняя и дальняя плоскости позволяют исключать объекты, находящиеся перед или позади части сцены, которую требуется отобразить. Если наблюдение ведется по отрицательному направлению оси zview, обычно выбирается zfar <znear, так что дальняя плоскость лежит дальше по отрицательному направлению оси zview.

Рис. 7.29. Конечный ортогональный объем

наблюдения отсекается плоскостью

наблюдения перед ближней плоскостью

• Если ближняя и дальняя плоскости заданы, объем наблюдения, представляющий собой прямоугольный параллелепипед, как показано на рис. 7.29, где также представлено одно возможное расположение плоскости наблюдения. В данном случае проекция сцены будет содержать только те объекты, которые принадлежат объему наблюдения, а все части сцены вне этого объема удаляются алгоритмами отсечения.

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

альтернатив размещения отсекающих плоскостей и плоскости проекции обычно приводит к

НОРМИРОВКА ОРТОГОНАЛЬНОЙ ПРОЕКЦИИ

Используя ортогональный перенос точек на плоскость проекции, спроектированное положение любой заданной точки (x; y; z) можно представить как (x; y). Следовательно, задав границы объема наблюдения, описания внутри этого прямоугольного параллелепипеда представляются в координатах проекции, и их можно отобразить в нормированный объем наблюдения и завершить этапы обработки, связанные с проектированием. В некоторых графических пакетах данный нормированный объем наблюдения представлен единичным кубом, и координаты x, y и z нормируются в диапазон от 0 до 1. Кроме того, используется симметричный куб, и в этом случае координаты меняются от -1 до 1.

Поскольку экранные координаты задаются в левосторонней системе координат (рис. 7.30), нормированные координаты также часто задаются в левосторонней системе. Это позволяет непосредственно интерпретировать положительные расстояния по направлению наблюдения как расстояния от экрана (плоскости наблюдения).

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

Рис. 7.30. Левосторонняя система экранных координат

НОРМИРОВКА ОРТОГОНАЛЬНОЙ ПРОЕКЦИИ

Чтобы проиллюстрировать преобразование нормировки, предположим, что объем наблюдения ортогональной проекции нужно отобразить в симметричный нормированный куб, расположенный в левосторонней системе координат. Кроме того, координаты z ближней и дельней плоскостей записываются как znear и zfar соответственно. Данное преобразование нормировки иллюстрируется на рис. 7.31.

Точка (xmin; ymin; znear) отображается в точку с

нормированными координатами (-1; -1; -1), а точка (xmax; ymax; zfar) отображается в (1; 1; 1).Преобразование объема наблюдения в форме прямоугольного параллелепипеда в

нормированный куб выполняется с помощью методов, подобных рассмотренным в разделе 6.3 для преобразования отсекающего окна в нормированный квадрат. Преобразование нормировки для координат x и y в ортогональном объеме наблюдения выражается матрицей нормировки (6.9). Кроме того, с помощью схожих расчетов нужно преобразовать координаты z в диапазоне от znear до zfar в интервал от -1до 1.

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

Следовательно, преобразование нормировки ортогонального объема наблюдения записывается так:

НОРМИРОВКА ОРТОГОНАЛЬНОЙ ПРОЕКЦИИ

На данную матрицу справа множится матрица сложного преобразования наблюдения R T (раздел 7.4), в результате чего находится полное преобразование из внешних координат в нормированные координаты ортогональной проекции.

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

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

Рис. 7.32. Косоугольная параллельная проекция куба, показанного как вид сверху на панели а, дает проекцию (панель б), содержащую несколько поверхностей куба

Рис. 7.33. Косоугольная параллельная проекция точки (x; y; z) в точку (xp; yp; zvp) на плоскости проекции, которая характеризуется положением zvp вдоль оси zview

ОТСЕКАЮЩЕЕ ОКНО И ОБЪЕМ НАБЛЮДЕНИЯ КОСОУГОЛЬНОЙ ПАРАЛЛЕЛЬНОЙ ПРОЕКЦИИ

Объем наблюдения косоугольной параллельной проекции задается с использованием тех же процедур, что и при ортогональной проекции. Вначале выбирается отсекающее окно на плоскости наблюдения; левый нижний и правый верхний углы отсекающего прямоугольника имеют координаты (xwmin; ywmin) и (xwmax; ywmax).

Затем определяются верхняя, нижняя и боковые стороны объема наблюдения, для чего используется направление проекции и стороны отсекающего окна. Кроме того, объем наблюдения можно ограничить, добавив ближнюю плоскость и дальнюю плоскость, как показано на рис. 7.38. Окончательно объем наблюдения косоугольной параллельной проекции представляет собой наклонный параллелепипед.

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

Рис. 7.38. Вид сверху конечного объема наблюдения для косоугольной параллельной проекции в направлении вектора Vp

МАТРИЦА КОСОУГОЛЬНОЙ ПАРАЛЛЕЛЬНОЙ ПРОЕКЦИИ

Подставляя параметры вектора проекции в уравнения (7.12), элементы матрицы косоугольной параллельной проекции можно выразить следующим образом:

Под действием данной матрицы значения координат x и y смещаются на величину, пропорциональную расстоянию от плоскости наблюдения, которая проходит на расстоянии zvp по оси zview. Значения z точек не меняются. Если Vpx = Vpy = 0, получаем ортогональную проекцию, и матрица (7.13) сводится к единичной.

Для произвольной косоугольной параллельной проекции матрица (7.13) представляет преобразование сдвига относительно оси z. Все точки косоугольного объема наблюдения сдвигаются на величину, пропорциональную их расстоянию от плоскости наблюдения. Целью является сдвиг косоугольного объема наблюдения в прямоугольный параллелепипед, как видно на рис. 7.39. Таким образом, точки внутри объема наблюдения сдвигаются в точки ортогональной проекции под воздействием косоугольной параллельной проекции.

Рис. 7.39. Вид сверху косоугольного параллельного преобразования. Косоугольный объем наблюдения переходит в прямоугольный параллелепипед, и такие объекты в объеме наблюдения, как зеленый прямоугольник, отображаются в координаты ортогональной проекции

ПЕРСПЕКТИВНЫЕ ПРОЕКЦИИ

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

Рис. 7.41. Перспективная проекция точки P с координатами (x; y; z) в выбранный центр проекции. Точка пересечения с плоскостью наблюдения имеет координаты (xp; yp; zvp)

Хотя параллельную проекцию сцены легко сгенерировать и сохранить относительные пропорции объектов, она нереалистична.

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

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