2013-10-16 33 views
-1

爲什麼影子從我的立方體形狀不亮的臉,當我使用的數組了:的OpenGL:立方體失蹤陰影的形狀

vertices[] 
indices[] 
colors[] 
normals[] 
texcoords[] 
// and draw them by 
glDrawElements(); 

但是當我使用:

glBegin(...); 
glVertex3f(...); 
glEnd(...); 

的陰影是好的。 在這裏,你得到了什麼正在發生的圖像:IMG

我的光設置如下:

glShadeModel (GL_SMOOTH); 
glEnable(GL_LIGHTING); 
glEnable(GL_LIGHT0); 
glEnable(GL_DEPTH_TEST); 
glColorMaterial(GL_FRONT_AND_BACK, GL_AMBIENT_AND_DIFFUSE); 
glEnable(GL_COLOR_MATERIAL);   
glHint (GL_PERSPECTIVE_CORRECTION_HINT, GL_NICEST); 

GLfloat AmbientLight[] = {0.0, 0.0, 0,0, 1.0}; 
GLfloat DiffuseLight[] = {1.0, 1.0, 1,0, 1.0}; 
GLfloat SpecularLight[] = {1.0, 1.0, 1.0, 1.0}; 
GLfloat Shininess[] = { 90.0 }; 
GLfloat Emission[] = {0.0, 0.0, 0.0, 1.0}; 

glLightfv(GL_LIGHT0, GL_AMBIENT, AmbientLight); 
glLightfv(GL_LIGHT0, GL_DIFFUSE, DiffuseLight); 
glLightfv(GL_LIGHT0, GL_SPECULAR, SpecularLight); 
glMaterialfv(GL_FRONT_AND_BACK, GL_AMBIENT, AmbientLight); 
glMaterialfv(GL_FRONT_AND_BACK, GL_DIFFUSE, DiffuseLight); 
glMaterialfv(GL_FRONT_AND_BACK, GL_SPECULAR, SpecularLight); 
glMaterialfv(GL_FRONT_AND_BACK, GL_SHININESS, Shininess); 
glMaterialfv(GL_FRONT_AND_BACK, GL_EMISSION, Emission); 
+0

什麼陰影打個電話?這兩張圖都沒有顯示任何類似陰影的東西,只是一個立方體臉部和圓形物體的陰影不同。 –

回答

0

你可能缺少

glEnableClientState(GL_NORMAL_ARRAY);