
ALL
.pdfТРЕХМЕРНЫЙ КОНВЕЙЕР НАБЛЮДЕНИЯ
•На рис. 7.11 представлены общие этапы обработки при создании и преобразовании трехмерной сцены в координаты устройства. После того как сцена смоделирована во внешних координатах, выбирается система наблюдения, и описание сцены переводится в координаты наблюдения. Система наблюдения определяет его параметры, включая положение и ориентацию плоскости проекции (плоскости наблюдения), которая аналогична плоскости фотопленки. На плоскости проекции определяется двухмерное отсекающее окно, соответствующее выбранным линзам камер, и устанавливается трехмерная отсекающая область. Данная область называется объемом наблюдения или отображаемым объемом (view volume), и ее форма и размер зависят от размеров отсекающего окна, выбранного типа проекции и мест ограничения вдоль направления наблюдения. Чтобы преобразовать описание сцены в координатах наблюдения на плоскость проекции, выполняются операции проектирования. Объекты отображаются в нормированные координаты, и все части сцены вне отображаемого объема отсекаются. Операции отсечения можно применить после всех аппаратнонезависимых преобразований координат (из внешних координат в нормированные).
•Преобразования координат можно сворачивать для максимальной эффективности. Как и в двухмерном наблюдении, границы поля просмотра можно задать в нормированных координатах или координатах устройства.

ТРЕХМЕРНЫЙ КОНВЕЙЕР НАБЛЮДЕНИЯ
•При разработке алгоритмов наблюдения предполагалось, что поле просмотра задается в координатах устройства, и что нормированные координаты переводятся в координаты поля просмотра, а затем выполняются операции отсечения. Существует еще несколько действий, которые может потребоваться выполнить, например, идентифицировать видимые поверхности и применить процедуры визуализации поверхностей. Конечным этапом является отображение координат поля просмотра в координаты устройства в выбранном окне на экране дисплея. Описания сцены в координатах устройства иногда выражаются в левосторонней системе координат, и тогда для измерения глубин точек сцены можно использовать положительные расстояния от экрана.
•Рис. 7.12. Правосторонняя система наблюдения с осями xview, yview и zview, определенными в правосторонней внешней системе координат
•
•Рис. 7.13. Ориентация плоскости наблюдения и вектора нормали к плоскости наблюдения N
ПАРАМЕТРЫ ТРЕХМЕРНОГО НАБЛЮДЕНИЯ
•Формирование трехмерной системы наблюдения подобно формированию двухмерной, обсуждавшемуся в разделе 6.2. Вначале в качестве начала координат выбирается точка с внешними координатами P0 = (x0; y0; z0), которая называется точкой наблюдения или положением наблюдения. (Иногда точка наблюдения также называется положением глаза или положением камеры.) Затем задается вектор верха изображения V, который определяет направление yview. В трехмерном пространстве также нужно выделить направление одной из двух оставшихся координатных осей. Обычно для этого указывается второй вектор, определяющий ось zview, причем вдоль этой оси идет направление наблюдения. Расположение трехмерной системы наблюдения во внешней системе координат иллюстрируется на рис. 7.12.
•ВЕКТОР НОРМАЛИ К ПЛОСКОСТИ НАБЛЮДЕНИЯ
•Поскольку направление наблюдения обычно выбирается вдоль оси zview, плоскость наблюдения, также именуемая плоскостью проекции, обычно предполагается перпендикулярной этой оси. Следовательно, ориентация плоскости наблюдения, а также положительное направление оси zview можно определить вектором нормали к плоскости наблюдения N, как показано на рис. 7.13. Дополнительный скалярный параметр используется для установки положения плоскости наблюдения при некотором значении координаты zvp вдоль оси zview, как показано на рис. 7.14. Это значение обычно задается как расстояние от начала координат системы наблюдения по направлению наблюдения (часто это отрицательное направление оси zview). Таким образом, плоскость наблюдения всегда параллельна плоскости xviewyview, и проекция объектов на плоскость наблюдения соответствует проекции сцены, какой она будет на устройстве вывода.


ВЕКТОР ВЕРХА
•Обычно V определяется выбором такой точки относительно начала внешней системы координат, чтобы вектор верха был направлен от начала внешней системы координат к данной выбранной точке. Поскольку вектор нормали к плоскости наблюдения N определяет направление оси zview, вектор V должен быть перпендикулярным N. Однако в общем случае может быть сложно определить направление вектора V, точно перпендикулярное N. Следовательно, процедуры наблюдения (проектирования) обычно подгоняют заданную пользователем ориентацию вектора V, как показано на рис. 7.16, чтобы вектор V проектировался на плоскость, перпендикулярную вектору нормали к плоскости наблюдения.
•В качестве вектора верха V можно выбирать любое направление при условии, что оно не параллельно N. Удобным является выбор направления параллельно оси yw внешней системы координат; т.е. можно положить V = (0; 1; 0).
Рис. 7.16. Входное направление вектора верха V подстраивается к ориентации перпендикулярно вектору нормали к плоскости наблюдения N

ЭТАЛОННАЯ СИСТЕМА НАБЛЮДЕНИЯ uvn
•В графических пакетах иногда используются левосторонние координаты наблюдения, и наблюдение ведется по положительному направлению оси zview. В левосторонних системах увеличение значений zview считается удалением от точки наблюдения вдоль линии обзора. Впрочем, правосторонние системы наблюдения более распространены, поскольку они имеют ту же ориентацию, что и внешняя эталонная система координат. Это позволяет графическому пакету использовать одну ориентацию координатных осей при работе со внешней системой координат и системой наблюдения. Хотя в некоторых ранних графических пакетах координаты наблюдения определялись в левосторонней системе координат, современным стандартом компьютерной графики являются правосторонние системы. В то же время левосторонние системы часто используются для представления экранных координат и преобразований нормировки.
•Поскольку нормаль к плоскости наблюдения N определяет направление оси zview, а вектор верха V используется для получения направления оси yview, нужно определить только направление оси xview. Используя входные значения N и V, можно вычислить третий вектор U, перпендикулярный N и V. После этого вектор U определяет положительное направление оси xview. Правильное направление U выбирается по направлению векторного произведения V и N, чтобы в итоге получалась правосторонняя система наблюдения. Векторное произведение векторов N и U также
дает значение вектора V, перпендикулярного N и U и идущего по положительному направлению оси yview. С помощью описанных процедур получаем следующий набор единичных осевых векторов правосторонней системы наблюдения:
•n = N / N = (nx; ny; nz);
•u = V n / V = (ux; uy; uz); (7.1)
•v = n u = (vx; vy; vz):
•Система координат, сформированная данными
•единичными векторами, часто называется
•эталонной системой наблюдения uvn (рис. 7.17).
Рис. 7.17. Правосторонняя система наблюдения, определенная единичными векторами u, v и n

ГЕНЕРАЦИЯ ЭФФЕКТОВ ТРЕХМЕРНОГО НАБЛЮДЕНИЯ
•Меняя параметры наблюдения, можно получать различные проекции объектов на сцене. Например, при фиксированной точке наблюдения можно изменить направление вектора N, чтобы отобразить объекты в точках, расположенных вокруг начала системы наблюдения. Кроме того, можно варьировать N и создавать сложное изображение, состоящее из нескольких проекций, полученных с фиксированной точки расположения камеры. На рис. 7.18 показано широкоугольное изображение, созданное для среды виртуальной реальности. Большой угол обзора получен за счет семи проекций сцены при фиксированном положении (но не ориентации!) камеры при слегка смещенных направлениях наблюдения; потом эти проекции объединялись в сложное изображение. Подобным образом генерируются стереоскопические проекции с помощью смещения направления наблюдения. В этом случае, однако, также нужно сместить точку наблюдения, чтобы сымитировать положение двух глаз.
•В интерактивных приложениях вектор нормали N является параметром наблюдения, который меняется наиболее часто. Разумеется, при изменении направления N также нужно изменить другие векторы осей, чтобы сберечь правостороннюю систему координат.
•Если требуется сымитировать панорамный эффект при анимации, например, когда камера движется по сцене или следует за объектом, проходящим по сцене, можно зафиксировать направлениеNи двигать точку наблюдения, как показано на рис. 7.19.
•Чтобы отобразить различные проекции объекта, например, боковую и фронтальную, можно
перемещать точку наблюдения |
. Есть и другой |
способ получения различных |
использовать |
геометрические преобразования |
|
• На рис. 7.21 показан интерфейс, |
выбора значений |
параметров наблюдения. Данный |
наблюдения, |
возможность выбора нескольких |
составляющие. |
• Рис. 7.20. Наблюдение объекта с |
фиксированной |
опорной точки |
|

ПРЕОБРАЗОВАНИЕ ИЗ ВНЕШНИХ КООРДИНАТ В КООРДИНАТЫ НАБЛЮДЕНИЯ
•В трехмерном конвейере наблюдения первым действием после построения сцены является перенос описаний объектов в систему наблюдения. Это преобразование описаний объектов эквивалентно последовательности преобразований, совмещающих систему наблюдения со внешней системой координат. Данный переход можно выполнить, используя метод преобразований, описанный в разделе 5.15.
•1. Транслировать начало системы наблюдения в начало внешней системы координат.
•2. С помощью поворотов совместить оси xview, yview и zview с осями xw, yw и zw внешней системы координат соответственно.
•Начало системы наблюдения находится в точке с внешними координатами P = (x0; y0; z0). Следовательно, матрица трансляции начала системы наблюдения в начало внешней системы координат выглядит так:
• |
В преобразовании поворота можно с помощью единичных |
v и n |
|
|
сформировать сложную матрицу поворота, совмещающую |
|
наблюдения с осями |
|
внешней системы координат. Данная матрица преобразования записывается следующим |
||
|
образом: |
|
|
• |
; |
|
|
• |
где элементы матрицы R это компоненты осевых |
uvn. |
|
•Матрица преобразования координат получается умножением приведенных выше матриц трансляции и поворота:

ПРЕОБРАЗОВАНИЕ ИЗ ВНЕШНИХ КООРДИНАТ В КООРДИНАТЫ НАБЛЮДЕНИЯ
•Параметры трансляции в этой матрице вычисляются как скалярное произведение единичных векторов u, v и n с P0, представляющим вектор, идущий из начала внешней системы координат в начало координат системы наблюдения. Другими словами, параметры трансляции это отрицательные проекции вектора P0 на все координатные оси системы наблюдения (отрицательные компоненты вектора P0 в координатах наблюдения). Данные элементы матрицы вычисляются следующим образом:
•Матрица (7.4) переводит описания объектов во внешней системе координат в систему наблюдения.

ПРЕОБРАЗОВАНИЯ ПРОЕКТИРОВАНИЯ
•На следующем этапе трехмерного конвейера наблюдения (после преобразования в координаты наблюдения) описания объектов проектируются на плоскость наблюдения.
•При параллельной проекции точки переводятся на плоскость наблюдения вдоль параллельных линий. На рис. 7.22 иллюстрируется параллельная проекция отрезка прямой с конечными точкамиP1 иP2. Параллельная проекция сохраняет относительные пропорции объектов, и этот метод используется в автоматизированном черчении и проектировании для получения чертежей трехмерных объектов в масштабе. Все параллельные линии сцены остаются такими же на параллельной проекции. Существует два общих метода получения параллельной проекции объекта: можно проектировать вдоль линий, перпендикулярных плоскости наблюдения, или точки можно спроектировать под косым углом к плоскости наблюдения.
•При перспективной проекции положения объектов преобразуются в координаты проекции вдоль линий, сходящихся к точке за плоскостью наблюдения. Пример перспективной проекции отрезка прямой с конечными точками P1 и P2 приведен на рис. 7.23. В отличие от параллельной, при перспективной проекции не сохраняются относительные пропорции объектов. Однако перспективные проекции сцены более реалистичны, поскольку удаленные объекты после проектирования выглядят меньшими.
•Рис. 7.22. Параллельная проекция
•отрезка на плоскость наблюдения
•Рис. 7.23. Перспективная проекция
•отрезка на плоскость наблюдения