gluLook没有出现

时间:2013-11-28 05:35:14

标签: c++ opengl glut

我正在使用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

1 个答案:

答案 0 :(得分:1)

为什么缺少三角形有很多主要原因。您要检查的第一件事是深度缓冲区,以确保它不是照明问题。很多东西都可以阻止你的三角形显示在深度缓冲区中。

请务必阅读Avoiding 16 Common OpenGL Pitfalls。如果你不知道最基本的陷阱,你将无法正确调试你的图形管道。

如果您没有启用照明,您需要特别注意这些:

  1. 三角形剪辑:确保您的播放器位于正确的位置,朝着正确的方向看。
  2. 三角形颜色:您没有指定颜色。我认为OpenGL默认为黑色。
  3. 如果您启用了照明:

    1. 检查你的法线。
    2. 检查您的剔除模式。 Back-face culling是OpenGL默认值。