Как правильно реализовать базовую камеру от первого лица в OpenGL? - PullRequest
0 голосов
/ 10 ноября 2011

Я новичок в OpenGL и пытался создать простой лабиринт, через который я могу пройти, используя вид от первого лица. У меня есть рендеринг лабиринта и все это просто отлично. Но моя перспектива камеры от первого лица в конечном итоге оказывается скорее камерой от третьего лица. Камера вращается вокруг определенной точки перед камерой.

Мой код для фактического ротации и перевода

void camera(){
    glMatrixMode(GL_MODELVIEW);
    glLoadIdentity();
    glRotatef(pitch, 1, 0, 0);
    glRotatef(yaw, 0, 1, 0);
    glTranslatef(player.x, player.y, player.z);
}

Это также первые переводы и повороты, которые происходят при рендеринге. Спасибо за любую помощь.

Ответы [ 2 ]

1 голос
/ 10 ноября 2011

Преобразование камеры необходимо инвертировать, чтобы вы перемещали положение камеры, в данном случае положение игрока, в начало координат:

glTranslatef(-player.x, -player.y, -player.z);
0 голосов
/ 10 ноября 2011

Я предлагаю вам построить свой лабиринт, оставить его в покое, а затем использовать gluLookAt (), чтобы иметь вид от первого лица.То, что вы делаете сейчас, стоит на месте и перемещает лабиринт вокруг вас.Вы делаете это трудным путем.

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