КО-ОУГОЛЬНЫЕ ПАРАЛЛЕЛЬНЫЕ ПРОЕКЦИИ
В общем случае параллельная проекция сцены получается переносом описаний объектов на плоскость наблюдения по траекториям проектирования, которые могут идти под любым углом к вектору нормали к плоскости наблюдения. Если траектории проектирования не перпендикулярны плоскости наблюдения, данное отображение называется косоугольной параллельной проекцией. Используя эту проекцию, можно объединить, например, вид объекта спереди, сбоку и сверху, как показано на рис. 7.32. Косоугольные параллельные проекции определяются направлением линий проекции, причем это направление можно задавать по-разному.
ПРЕОБРАЗОВАНИЯ ПОЛЯ ПРО-МОТРА И ТРЕХМЕРНЫЕ ЭКРАННЫЕ КООРДИНАТЫ
После того как преобразование в нормированные координаты будет завершено, к симметричному кубу (или единичному кубу) можно эффективно применить отсечение. Завершив процедуры отсечения, содержимое нормированного объема наблюдения можно перевести в экранные координаты. Для координат х и у в нормированном окне отсечения эта операция не отличается от двухмерного преобразования поля просмотра, описанного в разделе 6.3. Однако точки трехмерного объема наблюдения также имеют глубину (координату г), и эту информацию о глубине нужно сохранить для проверок видимости и алгоритмов визуализации поверхностей. В связи с этим преобразование поля просмотра можно рассматривать как отображение в трехмерные экранные координаты.
Прямоугольное поле просмотра располагается на экране точно так, как и в двухмерных приложениях. Левый нижний угол поля просмотра обычно размещается в точке, заданной относительно левого нижнего угла окна на экране. Кроме того, чтобы сохранить пропорции объекта, характеристическое отношение области поля просмотра задается таким же, как для отсекающего окна.
BEI ФУНКЦИИ ТРЕХМЕРНОГО НАБЛЮДЕНИЯ OpenGL
Библиотека OpenGL Utility (GLU) содержит одну функцию для определения параметров трехмерного наблюдения и вторую - для задания симметричного преобразования перспективной проекции. Другие функции, например, для ортогональной проекции, косоугольной перспективной проекции и преобразования поля просмотра, содержатся в основной библиотеке OpenGL. Кроме того, существуют функции GLUT для определения окон на экране дисплея и работы с ними (раздел 6.4).
ФУНКЦИЯ OpenGL ПРЕОБРАЗОВАНИЯ НАБЛЮДЕНИЯ
При задании параметров наблюдения в OpenGL формируется матрица, которая сворачивается с текущей матрицей проекции модели. -ледовательно, данная матрица наблюдения объединяется со всеми заданными ранее геометрическими преобразованиями. Под действием данной сложной матрицы описания объектов преобразовываются из внешних координат в координаты наблюдения. Режим модельной проекции задается следующей командой.
glMatrixMode (GL_MODELVIEW); Параметры наблюдения определяются следующей функцией GLU, которая вызывает процедуры трансляции и поворота из основной библиотеки OpenGL.
gluLookAt (хО, уО, zO, xref, yref, zref, Vx, Vy, Vz); ФУНКЦИЯ ОРТОГОНАЛЬНОЙ ПРОЕКЦИИ OpenGL
Проекционные матрицы записываются в режиме проектирования OpenGL. Поэтому, чтобы задать матрицу проекции, нужно активизировать этот режим с помощью следующей команды.