如何在OpenGL中正确实现基本的第一人称相机?

时间:2011-11-10 02:52:47

标签: opengl

我是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 个答案:

答案 0 :(得分:1)

需要反转相机变换,以便将相机位置(在这种情况下是播放器的位置)移动到原点:

glTranslatef(-player.x, -player.y, -player.z);

答案 1 :(得分:0)

我建议你建立你的迷宫,不管它,然后使用gluLookAt()来获得你的第一人称视角。你现在正在做的是站着不动,把迷宫移到你身边。你正在努力做到这一点。