openglc++;线在靠近摄影机旋转时消失

openglc++;线在靠近摄影机旋转时消失,opengl,camera,rotation,Opengl,Camera,Rotation,我正在尝试绘制一个三维立方体并旋转它。 它绘制并且旋转良好,但当立方体的一条线(它不是填充立方体)旋转到更靠近摄影机的位置时,它会慢慢消失,当它旋转到远离摄影机的位置时,它会再次缓慢绘制 我试着将相机设置得更远: glTranslatef(0.0f, 0.0f, -5.0f); 但它不起作用,窗户上什么也没有显示 这是我的渲染功能: void drawCube() { glPushMatrix(); glRotatef(angle, 1, 1, 1); glColor3f(0.0f, 0.0

我正在尝试绘制一个三维立方体并旋转它。 它绘制并且旋转良好,但当立方体的一条线(它不是填充立方体)旋转到更靠近摄影机的位置时,它会慢慢消失,当它旋转到远离摄影机的位置时,它会再次缓慢绘制

我试着将相机设置得更远:

glTranslatef(0.0f, 0.0f, -5.0f);
但它不起作用,窗户上什么也没有显示

这是我的渲染功能:

void drawCube() {
glPushMatrix();
glRotatef(angle, 1, 1, 1);

glColor3f(0.0f, 0.0f, 0.0f);

glBegin(GL_LINE_LOOP);
glVertex3f(-0.5f,-0.5f,0.0f);
glVertex3f(0.5f, -0.5f, 0.0f); //Platform front
glVertex3f(0.5f, 0.5f, 0.0f);
glVertex3f(-0.5f, 0.5f, 0.0f);
glEnd();

glBegin(GL_LINE_LOOP);
glVertex3f(-0.5f, -0.5f, 1.0f);
glVertex3f(0.5f, -0.5f, 1.0f); //Platform in the back
glVertex3f(0.5f, 0.5f, 1.0f);
glVertex3f(-0.5f, 0.5f, 1.0f);
glEnd();

glBegin(GL_LINE_LOOP);
glVertex3f(-0.5f, -0.5f, 0.0f);
glVertex3f(-0.5f, -0.5f, 1.0f);
glVertex3f(-0.5f, 0.5f, 1.0f);
glVertex3f(-0.5f, 0.5f, 0.0f);
glEnd();

glBegin(GL_LINE_LOOP);
glVertex3f(0.5f, -0.5f, 0.0f);
glVertex3f(0.5f, -0.5f, 1.0f);
glVertex3f(0.5f, 0.5f, 1.0f);
glVertex3f(0.5f, 0.5f, 0.0f);
glEnd();

angle += 0.005f;

glPopMatrix();
}

}

有人知道是什么导致了这种消失吗?
提前谢谢。

我最好的问题是你的物体被夹在相机的近剪裁平面上。这是正常效果,它工作正常。您应该尝试更改相机属性并观察更改。

按什么顺序推送矩阵?你试过在旋转之前推动平移吗?你在哪里设置投影矩阵?@genpfault,我想没有。我是openGL新手。我必须设置在何处和哪个矩阵?
void draw() {
//CLEARING THE SCREEN AND LOAD IDENTITY MATRIX FOR NEW DRAWINGS
glViewport(0, 0, 800, 600);
glClearColor(1.0f, 0.0f, 0.0f, 1.0f); //BACKGROUND COLOR
glClear(GL_COLOR_BUFFER_BIT); //CLEAR THE SCREEN
glLoadIdentity(); //RESET DRAWING LOCATIONS
glTranslatef(0.0f, 0.0f, -5.0f);
drawCube();

SDL_GL_SwapWindow(window.getWin()); //RENDER EVERYTHING TO THE SCREEN