Три функции, используемые для установки преобразований моделирования и вида Ниже приводятся функции, обычно используемые для модификации матрицы моделирования-вида, которая вначале сделана «текущей» посредством вызова функции glMatrixMode(GL_MODELVIEW): О glScaled(sx, sy. sz) : умножает справа текущую матрицу на матрицу, выполняющую масштабирование на величину sx по оси х, на sy по оси у и на sz по оси z. Результат помещается обратно в текущую матрицу.

О glTranslatedCdx, dy, dz) ; умножает справа текущую матрицу на матрицу, которая выполняет перемещение на dx по оси х, на dy по оси у и на dz по оси z. Результат помещается обратно в текущую матрицу.

О glRotated (angle, их. иу, uz) : умножает справа текущую матрицу на матрицу, которая выполняет поворот на angle градусов вокруг оси, которая проходит через начало координат и точку (их, иу, игу. Результат помещается обратно в текущую матрицу. Для выполнения поворота используется матрица иэ уравнения (5.33).

Установка камеры в OpenGL (для случая параллельной проекции)

Функция g10rtho(left, right, bott, top, near, far) : устанавливает в качестве отображаемого объема параллелепипед, располагающийся от2 left до right по оси х, от bott до top по оси у и от -near до -far по оси 2. (Так как это определение работает в координатах наблюдателя, объектив камеры находится в начале координат и направлен вдоль отрицательной части оси г в сторону уменьшения значений г, то есть в сторону увеличения абсолютных величин.) Эта функция создает матрицу и умножает на нее справа текущую матрицу. (В главе 7 мы точно укажем, какие величины содержит эта новая матрица.)

1 Положительные значения угла angle соответствуют повороту против часовой стрелки при взгляде вдоль оси поворота со стороны точки (их, иу, uz) в сторону начала координат.

2 Все параметры функции glOrthoO имеют тип GLdouble.

Действие преобразования в порт просмотра

Рис. 5.52. Действие преобразования в порт просмотра

5.6. Рисование трехмерных сцен с применением OpenGL

Поясним знак «минус» перед величинами near и far. Так как по умолчанию камера расположена в начале координат и смотрит вдоль отрицательных значений оси г, использование для near значения 2 означает помещение ближней плоскости в г - -2, то есть на расстояние в две единицы перед глазом. Аналогично, использование 20 для far помещает дальнюю плоскость в 20 единицах перед глазом.


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