Зона видимости

Рис. 2.29. Зона видимости

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

Ортогональная проекция

2.5.2. Ортогональная проекция Описанный двухмерный вид является частным случаем ортогональной проекции (orthographic projection), которую мы подробно рассмотрим в главе 5. При простом ортогональном проецировании точка (х,у, z) на объекте проецируется в точку (х,у, 0) на плоскости проекции (рис. 2.30). Поскольку двухмерное пространство есть плоскость z - 0, то никакого эффекта проецирования мы не заметим. Однако, что не менее важно, при формировании ортогональной проекции двухмерных объектов можно использовать тот же механизм, что и при проецировании трехмерных объектов. В OpenGL ортогональная проекция, характеризуемая параллелепипедом видимости, задается функцией gl0rtho(), объявленной следующим образом"images/tmpB6CA-60.png">

При настройке по умолчанию камера направлена в сторону, противоположную направлению оси z на рис. 2.31. При ортогональном проецировании видны только объекты, попавшие внутрь параллелепипеда видимости. В отличие от реальной камеры, видимыми полагаются и объекты, расположенные позади нее. Таким образом, до тех пор, пока плоскость z = 0 находится между ближней и дальней гранями параллелепипеда видимости, все объекты, попавшие в прямоугольник видимости, будут включены в изображение. Если прикладной программист испытывает определенный дискомфорт от необходимости использовать трехмерную зону видимости при работе с двухмерными объектами, то можно воспользоваться специальной функцией glu0rtho2D(), которая специфицирует не параллелепипед видимости, а именно прямоугольник. Определение функции имеет вид

void glu0rtho2D(GLdouble left, GLdouble right, GLdouble bottom, GLdouble top)

Результат выполнения этой функции будет таким же, как и после вызова функции gl0rtho(), где для аргументов near и far установлены значения -1.0 и 1.0 соответственно. В главах 4 и 5 будет рассмотрено, как организовать в программе перемещение камеры и формирование более сложных видов.


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