-1

当我使用以下数组时,为什么阴影会从立方体形状的未照亮面上消失:

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);
4

1 回答 1

0

你可能错过了一个电话

glEnableClientState( GL_NORMAL_ARRAY );
于 2013-10-16T21:08:03.420 回答