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

ALL

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

ЭТАЛОННАЯ СИСТЕМА НАБЛЮДЕНИЯ uvn

Иногда используются левосторонние координаты наблюдения, и наблюдение ведется по

положительному направлению оси zview. В левосторонних системах увеличение значений zview считается удалением от точки наблюдения вдоль линии обзора.

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

Нормаль к плоскости наблюдения N определяет направление оси zview, а вектор верха V - оси yview, нужно определить только направление оси xview.

Используя входные значения N и V, можно вычислить третий вектор U, перпендикулярный N и V.

Вектор U определяет положительное направление оси xview.

Правильное направление U выбирается по направлению векторного произведения V и N, чтобы в итоге получалась правосторонняя система наблюдения.

Векторное произведение векторов N и U также дает значение вектора V, перпендикулярного N и U и идущего по положительному направлению оси yview.

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

Рис. Правосторонняя система наблюдения, определенная единичными векторами u, v и n

Система координат, сформированная данными единичными векторами, называется эталонной системой наблюдения uvn (рис.).

ГЕНЕРАЦИЯ ЭФФЕКТОВ ТРЕХМЕРНОГО НАБЛЮДЕНИЯ

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

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

Вектор нормали N является параметром наблюдения, который меняется наиболее часто.

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

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

Есть и другой способ - использовать

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

не меняя параметры наблюдения.

• Рис. Наблюдение объекта с различных направлений с использованием фиксированной опорной точки

ПРЕОБРАЗОВАНИЕ ИЗ ВНЕШНИХ КООРДИНАТ В КООРДИНАТЫ НАБЛЮДЕНИЯ

В 3D конвейере наблюдения первым действием после построения сцены является перенос описаний объектов в систему наблюдения. Это преобразование описаний объектов эквивалентно последовательности преобразований, совмещающих систему наблюдения со внешней системой координат.

1. Транслировать (сдвиг) начало системы наблюдения в начало внешней системы координат.

2. С помощью поворотов совместить оси xview, yview и zview с осями xw, yw и zw внешней системы координат соответственно. Начало системы наблюдения находится в точке с внешними координатами P = (x0; y0; z0). Матрица трансляции начала системы наблюдения

в начало внешней системы координат :

R матрица поворота, совмещающую оси

наблюдения с осями внешней системы координат:

где элементы матрицы R это компоненты осевых векторов uvn.

Матрица преобразования координат получается умножением T и R:

Параметры трансляции вычисляются как скалярное произведение

единичных векторов u, v и n с P0, представляющим вектор, идущий из начала внешней системы координат в начало координат системы наблюдения.

Параметры трансляции это отрицательные проекции вектора P0 на все координатные оси системы наблюдения. Данные элементы матрицы вычисляются следующим образом:

Матрица переводит описания объектов во внешней системе

координат в систему наблюдения.

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

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

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

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

Рис. Параллельная проекция отрезка на плоскость наблюдения

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

Рис. Перспективная проекция отрезка на плоскость наблюдения

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

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

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

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

втрех главных направлениях.

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

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

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

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

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

Когда направление проектирования параллельно оси zview, уравнения преобразования ортогональной проекции тривиальны.

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

xp = x;

yp = y

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

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

Для 3D наблюдения отсекающее окно задается так же, как для 2D, выбираются двухмерные точки, соответствующие левому нижнему и правому верхнему углам.

В 3D наблюдении отсекающее окно размещается на плоскости наблюдения, а его

стороны параллельны осям xview и yview, (рис.

1).

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

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

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

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

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

область, показанную на рис. 2.

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

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

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

ведется по отрицательному направлению оси zview, выбирается zfar < znear, дальняя плоскость лежит дальше по отрицательному направлению оси zview.

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

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

ближней плоскостью

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

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

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

Плоскость наблюдения часто выбирается совпадающей с ближней плоскостью отсечения.

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

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

Часто нормированный объем наблюдения представлен единичным кубом, и координаты x, y и z нормируются в диапазон от 0 до 1.

Кроме того, используется симметричный куб, и в этом случае координаты меняются от -1 до 1.

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

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

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

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

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

Координаты z ближней и дельней плоскостей –

znear и zfar соответственно. Преобразование нормировки на рис.

Точка (xmin; ymin; znear) отображается в точку с нормированными координатами (-1; -1; -1), а точка (xmax; ymax; zfar) отображается в (1; 1; 1).

Преобразование объема наблюдения в форме прямоугольного параллелепипеда в нормированный куб выполняется подобно методам для преобразования отсекающего окна

внормированный квадрат.

Преобразование нормировки для координат x и y в ортогональном объеме наблюдения выражается матрицей нормировки.

Аналогично можно преобразовать координаты z

вдиапазоне от znear до zfar в интервал от -1до 1.

Домножаем на матрицу преобразования R T, в результате – полное преобразование из внешних координат в нормированные координаты ортогональной проекции.

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

Матица преобразования нормировки

ортогонального объема наблюдения :

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