glMatrixMode (GL_PROJECTION); Затем при обработке любой команды преобразования соответствующая матрица будет сворачиваться с текущей проекционной матрицей.

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

glOrtho (xwmin, xwmax, ywmin, ywmax, dnear, dfar); Значения всех параметров этой функции задаются как числа двойной точности с плавающей запятой. Функция glOrtho используется для выбора координат отсекающего окна и расстояний от начала системы наблюдения до ближней и дальней плоскостей отсечения. OpenGL не позволяет выбирать положение плоскости наблюдения. Плоскостью наблюдения всегда является ближняя плоскость отсечения, следовательно, отсекающее окно всегда находится на ближней плоскости объема наблюдения.

Рис. 7.54. Объем наблюдения ортогональной проекции по умолчанию. Координатные границы данного симметричного куба - от -1 до +1 по каждому направлению. Ближняя отсекающая плоскость проходит через точку гПеаг = 1, а дальняя - через 2[яг = -1

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

В параметрах dnear и dfar указываются расстояния по отрицательному направлению оси Zyiew от начала координат системы наблюдения. Например, если dfar = 55.0, то ближняя отсекающая плоскость проходит через точку Zfar = -55.0. Отрицательное значение любого параметра соответствует положению “за” началом координат (против положительного направления оси zvjew). Этим параметрам можно присваивать любые значения (положительные, отрицательные или нулевые), главное, чтобы удовлетворялось условие dnear < dfar.

Объемом наблюдения для перспективного преобразования является прямоугольный параллелепипед. Точки, принадлежащие этому объему, с помощью матрицы (7.7), где znear = - dnear и Zfar = - df аг, переводятся в точки внутри симметричного нормированного куба, определенного в левосторонней системе координат.

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

glOrtho (-1.0, 1.0, -1.0, 1.0, -1.0, 1.0); При этом отсекающее окно является симметричным нормированным квадратом, а объем наблюдения по умолчанию - это симметричный нормированный куб с Znear = 1.0 (за точкой наблюдения) и Zfar = -1.0. Внешний вид и положение объема наблюдения ортогональной проекции по умолчанию показаны на рис. 7.54.

Ъ двухмерных приложениях для настройки отсекающего окна используется функция glu0rtho2D. Чтобы задать отсекающее окно, можно также использовать функцию glOrtho при условии, что параметрам dnear и df аг присвоены значения с противоположными знаками. Фактически вызов gluOrtho2D эквивалентен вызову функции glOrtho с параметрами dnear = -1.0 и df аг = 1.0.


⇐ вернуться назад | | далее ⇒