Да, вы можете установить свою позицию просмотра с помощью команды gluLookAt
.Если вы посмотрите на FAQ по OpenGL, у вас есть вопрос, строка которого наиболее соответствует вашей проблеме: 8.060 Как сделать так, чтобы камера «вращалась» вокруг точки моей сцены?
Вы можете смоделировать орбиту, переместив / повернув сцену / объект и оставив камеру в том же месте.Например, чтобы вращаться вокруг объекта, расположенного где-то на оси Y, при этом непрерывно глядя на начало координат, вы можете сделать следующее:
gluLookAt(camera[0], camera[1], camera[2], /* look from camera XYZ */
0, 0, 0, /* look at the origin */
0, 1, 0); /* positive Y up vector */
glRotatef(orbitDegrees, 0.f, 1.f, 0.f); /* orbit the Y axis */
/* ...where orbitDegrees is derived from mouse motion */
glCallList(SCENE); /* draw the scene */
Если вы настаиваете на физическом вращении вокруг камерывам нужно будет преобразовать вектор текущей позиции камеры перед использованием его в ваших преобразованиях просмотра.
В любом случае я рекомендую вам изучить функцию gluLookAt () (если вы еще не используете эту процедуру).
Обратите внимание, что вызывается gluLookAt: автор сохраняет положение камеры в массиве из 3 значений.Если вы сделаете то же самое, вы сможете указать свою точку обзора в абсолютных координатах точно так, как вы хотели.
ПРИМЕЧАНИЕ: если вы переместите положение глаза, скорее всего, вы захотите указать виднаправление тоже.В этом примере автор решил сосредоточить внимание на точке (0, 0, 0).
Есть большая вероятность, что этот вопрос также связан с тем, что вы пытаетесь сделать: GLU.gluLookAt в Java Привязки OpenGL, похоже, ничего не делают .