Установка проекционной матрицы осуществляется с помощью следующего кода:

gl Mat г i xMode(GL_PR0J ЕСТION):

// make the projection matrix current

// делаем текущей проекционную матрицу

glLoadldentityO:
// set it to the identity matrix

// устанавливаем ее в единичную матрицу

glOrthoOeft, right, bottom, top. near, far):
// multiply it by the new matrix

// умножаем ее на новую матрицу

Позиционирование и нацеливание камеры

В OpenGL предлагается функция, которая упрощает установку основной камеры: gluLookAtCeye.x. eye.у. eye.z. look.x. look.y. look.z. up.x. up.y. up.z): Эта функция создает матрицу просмотра и умножает на нее справа текущую матрицу. Функция принимает в качестве параметров: eye - положение наблюдателя (камеры) и точку, на которую направлен взгляд - look. Кроме того, она принимает параметр up - приблизительное направление вверх. Поскольку программисту известно, где расположена интересующая его часть сцены, обычно нетрудно выбрать соответствующие значения eye и look для обеспечения хорошего первого взгляда. При этом параметр up чаще всего принимается равным (0, 1, 0) для того, чтобы направление вверх было параллельно оси у. Позднее мы разработаем более мощные инструменты для установки камеры и интерактивного «пилотирования» ее в процессе анимации.

Мы хотим, чтобы эта функция установила часть V матрицы моделирования-вида VM. Поэтому она запускается до того, как добавлены какие-либо преобразования моделирования, поскольку последующие преобразования будут умножаться на матрицу моделирования-вида справа. Поэтому для использования функции gluLookAtO необходимо применить такую последовательность команд:

g 1 Mat г i xMode(GL_M0DE LVIEW);

// make the modelview matrix current

// делаем текущей матрицу моделирования

glLoadldentityO:
// start with a unit matrix

// начинаем с единичной матрицы

gluLookAtCeye.x. eye.у. eye.z.

// the eye position

// положение наблюдателя

look.x. look.y. look.z. // the "look at" point // точка направления взгляда

up.x. up.y. up.z); // the upwards direction // направление вверх


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