在openGl中将相机位置放置在立方体内

Placing the camera position inside cube in openGl

我正在尝试创建一个 3D 房间。我正在做的是创建一个 3D 立方体,然后尝试更改立方体内的相机位置,使其显示为一个房间。当我将我的坐标顶点设置为 3 而不是 1 时,它可以工作,但对于 1 它不起作用。 为什么会这样?

我的立方体代码是:

glBegin(GL_QUADS);        // Draw The Cube Using quads
glVertex3f(1.0f, 1.0f, -1.0f);    // Top Right Of The Quad (Top)
glVertex3f(-1.0f, 1.0f, -1.0f);    // Top Left Of The Quad (Top)
glVertex3f(-1.0f, 1.0f, 1.0f);    // Bottom Left Of The Quad (Top)
glVertex3f(1.0f, 1.0f, 1.0f);    // Bottom Right Of The Quad (Top)
glVertex3f(1.0f, -1.0f, 1.0f);    // Top Right Of The Quad (Bottom)
glVertex3f(-1.0f, -1.0f, 1.0f);    // Top Left Of The Quad (Bottom)
glVertex3f(-1.0f, -1.0f, -1.0f);    // Bottom Left Of The Quad (Bottom)
glVertex3f(1.0f, -1.0f, -1.0f);    // Bottom Right Of The Quad (Bottom)
glVertex3f(1.0f, 1.0f, 1.0f);    // Top Right Of The Quad (Front)
glVertex3f(-1.0f, 1.0f, 1.0f);    // Top Left Of The Quad (Front)
glVertex3f(-1.0f, -1.0f, 1.0f);    // Bottom Left Of The Quad (Front)
glVertex3f(1.0f, -1.0f, 1.0f);    // Bottom Right Of The Quad (Front)
glVertex3f(1.0f, -1.0f, -1.0f);    // Top Right Of The Quad (Back)
glVertex3f(-1.0f, -1.0f, -1.0f);    // Top Left Of The Quad (Back)
glVertex3f(-1.0f, 1.0f, -1.0f);    // Bottom Left Of The Quad (Back)
glVertex3f(1.0f, 1.0f, -1.0f);    // Bottom Right Of The Quad (Back)
glVertex3f(-1.0f, 1.0f, 1.0f);    // Top Right Of The Quad (Left)
glVertex3f(-1.0f, 1.0f, -1.0f);    // Top Left Of The Quad (Left)
glVertex3f(-1.0f, -1.0f, -1.0f);    // Bottom Left Of The Quad (Left)
glVertex3f(-1.0f, -1.0f, 1.0f);    // Bottom Right Of The Quad (Left)
glVertex3f(1.0f, 1.0f, -1.0f);    // Top Right Of The Quad (Right)
glVertex3f(1.0f, 1.0f, 1.0f);    // Top Left Of The Quad (Right)
glVertex3f(1.0f, -1.0f, 1.0f);    // Bottom Left Of The Quad (Right)
glVertex3f(1.0f, -1.0f, -1.0f);    // Bottom Right Of The Quad (Right)
glEnd();

我正在使用 gluLookAt(0.0,0.0,0.0,0.0,0.0,-1.0,0.0,1.0,0.0);

我假设您使用的是透视投影并且近平面大于一。这将导致以下情况,其中几何体位于近平面后面并被剪裁:

例如简单地将近平面缩小到0.1。但是请确保在远平面太大时不要让它太小,否则你会失去深度精度并遇到 "z fighting" 问题。