我正在使用openGL / GLUT尝试绘制基元并使用gluLookAt()来移动相机。有麻烦,我只是看到黑色。这是我的渲染函数代码。
glMatrixMode(GL_MODELVIEW);
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
glLoadIdentity();
gluLookAt(Player.GetX(), Player.GetY(), Player.GetZ()-5,
Player.GetX(), Player.GetY(), Player.GetZ(),
0,1,0);
glPushMatrix();
glBegin(GL_TRIANGLES); //Begin coordinates
glVertex3f(Player.GetX()-0.5f, Player.GetY()-1.0f, Player.GetZ());
glVertex3f(Player.GetX()+0.5f, Player.GetY()-1.0f, Player.GetZ());
glVertex3f(Player.GetX()-0.0f, Player.GetY()-0.0f, Player.GetZ());
glEnd(); //End quadrilateral coordinates
glPopMatrix();
glutSwapBuffers();
Player.GetXYZ()值均为0.0
答案 0 :(得分:1)
为什么缺少三角形有很多主要原因。您要检查的第一件事是深度缓冲区,以确保它不是照明问题。很多东西都可以阻止你的三角形显示在深度缓冲区中。
请务必阅读Avoiding 16 Common OpenGL Pitfalls。如果你不知道最基本的陷阱,你将无法正确调试你的图形管道。
如果您没有启用照明,您需要特别注意这些:
如果您启用了照明: