2013-11-28 122 views
0

我正在使用openGL/GLUT試圖繪製一個圖元並使用gluLookAt()移動相機。有麻煩,我只是看到黑色。這是我的渲染函數的代碼。gluLook沒有任何東西出現

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

一旦你解決了這個問題,請你幫個忙,直接轉到OpenGL 3.0+。 [這是爲什麼](http://stackoverflow.com/questions/3492729/whats-so-different-about-opengl-3x)。 [這裏是如何](http://stackoverflow.com/questions/9293817/resources-to-learn-opengl-3-x)。 – Domi

+1

看起來你的眼睛超出了你的三角形。嘗試第3次參數中的+5。 – bvj

+0

是啊剛得到那個:/謝謝!好的,所以我會嘗試轉換爲OpenGL 3.0之前我太深謝謝你的幫助。 –

回答

1

有很多重要原因,爲什麼三角形失蹤。你要檢查的第一件事是深度緩衝區,以確保它不是一個照明問題。許多事情可能會阻止你的三角形出現在深度緩衝區中。

請確保您閱讀了Avoiding 16 Common OpenGL Pitfalls。如果你不知道最基本的缺陷,你將無法正確調試你的圖形管道。

如果不啓用照明,要特別注意這些:

  1. 三角剪裁:請確保您的播放器是在正確的位置,找對了方向。
  2. 三角形顏色:您沒有指定顏色。我認爲OpenGL默認是黑色的。

如果啓用了照明:

  1. 檢查法線。
  2. 檢查您的剔除模式。 Back-face culling是OpenGL的默認值。
+0

忘了提及,我可以得到三角形沒有gluLookAt()我只是想添加相機移動。 –