Как я могу заставить камеру летать через объекты в OpenGL, используя Glut? - PullRequest
0 голосов
/ 16 февраля 2011

Во-первых, весь мой код можно найти здесь, он в 3 файлах.

flythrough.cpp , support.cpp , поддержка.h

Хорошо ... так что, если вы запустите это, это похоже на работу, но некоторые вещи действительно меня пугают!

Камера запускается в странном местеЯ пытаюсь изменить все виды переменных, но это, похоже, не дает эффекта.

Самая большая проблема сейчас - это перемещение камеры.В этот момент ... камера будет двигаться влево и вправо, но НЕ вперед или назад.Когда я пытаюсь двигаться вперед, пиксели делают все правильно, объект со временем исчезает, когда я двигаюсь вперед, как будто я прошел мимо него, но сам объект не «кажется больше», когда я подхожу ближе.То же самое для движения назад.

Пожалуйста, дайте мне знать, если вы можете что-нибудь придумать.

Я хотел бы добавить, что большая часть этого кода взята из моего учебника.С модификациями от себя.

Спасибо!

Ответы [ 2 ]

4 голосов
/ 16 февраля 2011

Это орфографическая камера, поэтому вы не можете двигаться вдоль оси Z.Вам нужно изменить тип камеры, чтобы сделать то, что вы пытаетесь сделать.

Ссылка: строка 33, flythrough.cpp

glOrtho(-2.0 * 64 / 48.0, 2.0 * 64 / 48.0, -2.0, 2.0, 100, 100.0);

Обычно просто раскомментируйте эту строку, а затем напишите следующее:

gluPerspective(60.0, 640.0 / 480.0, 0.1, 1000.0);

Это умножит матрицу перспективы на текущую загруженную матрицу идентификаторов (LoadIdentity ()).

Ссылка: http://www.opengl.org/sdk/docs/man/xhtml/gluPerspective.xml

0 голосов
/ 16 февраля 2011

Не пытаясь отработать свою ось, пытались ли вы перемещать камеру назад и вперед вдоль оси Z вместо Y. Возможно, ваша ось глубины настроена на Z, а не Y.

...