QT OpenGL 没有完全渲染立方体?
QT OpenGL not fully rendering cube?
我正在尝试创建和显示一个 3D 正方形,但由于某种原因,当我渲染它时,它的一部分丢失了:
void DrawCube::drawCubes(int amount){
glBegin(GL_POLYGON);
glVertex3f( 1.0, -1.0, 1);
glVertex3f( 1.0, -1.0, -1);
glVertex3f( 1.0, 1.0, -1);
glVertex3f( 1.0, 1.0, 1);
glEnd();
glBegin(GL_POLYGON);
glVertex3f(-1.0, -1.0, -1);
glVertex3f( 1.0, -1.0, -1);
glVertex3f( 1.0, 1.0, -1);
glVertex3f(-1.0, 1.0, -1);
glEnd();
glBegin(GL_POLYGON);
glVertex3f(-1.0, -1.0, 1);
glVertex3f( 1.0, -1.0, 1);
glVertex3f( 1.0, 1.0, 1);
glVertex3f(-1.0, 1.0, 1);
glEnd();
glBegin(GL_POLYGON);
glVertex3f( -1.0, -1.0, 1);
glVertex3f( -1.0, -1.0, -1);
glVertex3f( -1.0, 1.0, -1);
glVertex3f( -1.0, 1.0, 1);
glEnd();
}
}
我不是在寻找只给我代码的答案,而是在寻找导致这种情况的原因的解释。谢谢。
立方体似乎被投影的远平面裁剪了。当您将投影矩阵设置为 glOrtho
.
时,增加到远平面的距离
请注意,投影矩阵定义了一个视图体积(参见 3D projection)。所有在查看体积之外的几何体都被剪裁。
我正在尝试创建和显示一个 3D 正方形,但由于某种原因,当我渲染它时,它的一部分丢失了:
void DrawCube::drawCubes(int amount){
glBegin(GL_POLYGON);
glVertex3f( 1.0, -1.0, 1);
glVertex3f( 1.0, -1.0, -1);
glVertex3f( 1.0, 1.0, -1);
glVertex3f( 1.0, 1.0, 1);
glEnd();
glBegin(GL_POLYGON);
glVertex3f(-1.0, -1.0, -1);
glVertex3f( 1.0, -1.0, -1);
glVertex3f( 1.0, 1.0, -1);
glVertex3f(-1.0, 1.0, -1);
glEnd();
glBegin(GL_POLYGON);
glVertex3f(-1.0, -1.0, 1);
glVertex3f( 1.0, -1.0, 1);
glVertex3f( 1.0, 1.0, 1);
glVertex3f(-1.0, 1.0, 1);
glEnd();
glBegin(GL_POLYGON);
glVertex3f( -1.0, -1.0, 1);
glVertex3f( -1.0, -1.0, -1);
glVertex3f( -1.0, 1.0, -1);
glVertex3f( -1.0, 1.0, 1);
glEnd();
}
}
我不是在寻找只给我代码的答案,而是在寻找导致这种情况的原因的解释。谢谢。
立方体似乎被投影的远平面裁剪了。当您将投影矩阵设置为 glOrtho
.
时,增加到远平面的距离
请注意,投影矩阵定义了一个视图体积(参见 3D projection)。所有在查看体积之外的几何体都被剪裁。