Правильный способ панорамирования и перемещения камеры в OpenGL? - PullRequest
1 голос
/ 03 сентября 2010

Прямо сейчас я панорамирую с помощью glRotating перед рендерингом и перемещаю камеру с помощью gltranslating. Я чувствую, как будто это неправильно, потому что я по сути перемещаю сцену, а не камеру. Как правильно перемещать камеру?

Спасибо

Ответы [ 3 ]

2 голосов
/ 03 сентября 2010

На самом деле «перемещение сцены вокруг камеры» является правильным способом в OpenGL.

Это связано с тем, что OpenGL объединяет матрицы вида и модели в матрицу вида модели.(смотрите здесь для более подробной информации)

Очевидно, что функция lookat (как упомянуто выше) является простым способом перемещения (виртуальной) камеры, но я обнаружил, что она не работает для OpenGL3.

Я бы предложил использовать превосходную библиотеку glm для настройки матриц преобразования для OpenGL3.

С уважением, Флориан

2 голосов
/ 05 сентября 2010

Перемещение сцены и камеры - это одно и то же. Один является негативом другого. Обычный способ реализовать это - иметь класс камеры с абсолютными координатами и направлением, тогда вы просто помещаете

glTranslate(-camera)
glRotate(-camera)

вверху функции отображения.

1 голос
/ 03 сентября 2010

gluLookAt - это способ перемещения камеры.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...