# Vertex Normals

Ok so I have a cube

``````	static const GLfloat vert[] =
{
0.5f,  0.5f,  0.5f,   -0.5f,  0.5f,  0.5f,   -0.5f, -0.5f,  0.5f,    0.5f, -0.5f,  0.5f,
0.5f,  0.5f,  0.5f,    0.5f, -0.5f,  0.5f,    0.5f, -0.5f, -0.5f,    0.5f,  0.5f, -0.5f,
0.5f,  0.5f,  0.5f,    0.5f,  0.5f, -0.5f,   -0.5f,  0.5f, -0.5f,   -0.5f,  0.5f,  0.5f,
-0.5f, 0.5f,  0.5f,   -0.5f,  0.5f, -0.5f,   -0.5f, -0.5f, -0.5f,   -0.5f, -0.5f,  0.5f,
-0.5f,-0.5f, -0.5f,    0.5f, -0.5f, -0.5f,    0.5f, -0.5f,  0.5f,   -0.5f, -0.5f,  0.5f,
0.5f, -0.5f, -0.5f,   -0.5f, -0.5f, -0.5f,   -0.5f,  0.5f, -0.5f,    0.5f,  0.5f, -0.5f
};
``````

and its normals

``````	static const GLfloat norm[] =
{
0,  0,  1,    0,  0,  1,    0,  0,  1,    0,  0,  1,
-1, 0,  0,   -1,  0,  0,    -1, 0,  0,   -1,  0,  0,
0,  1,  0,    0,  1,  0,    0,  1,  0,    0,  1,  0,
1,  0,  0,    1,  0,  0,    1,  0,  0,    1,  0,  0,
0, -1,  0,    0, -1,  0,    0, -1,  0,    0, -1,  0,
0,  0, -1,    0,  0, -1,    0,  0, -1,    0,  0, -1
};
``````

But whenever I look straight down everything turns black.
I think it’s Normal problems,but I checked and they seem right.

``````static GLfloat material_specular[] = {1.0,1.0,1.0,1.0,};
static GLfloat material_shininess = 5.0;
static GLfloat light_position[] = {1.0,1000,1.0,0.0};
static GLfloat light_ambient[] = {1.0,1.0,0.0,1.0};
``````

This is lightning parameters,and the Lightning code

``````	void light()
{
glMaterialfv(GL_FRONT,GL_SPECULAR,material_specular);
glMaterialfv(GL_FRONT,GL_SHININESS,&material_shininess);

glLightfv(GL_LIGHT0,GL_POSITION,light_position);
glLightfv(GL_LIGHT0,GL_SPECULAR,light_ambient);

glEnable(GL_LIGHTING);
glEnable(GL_LIGHT0);

}
``````

You can only issue light commands after setting up the modelview matrix.

``````  glLightfv(GL_LIGHT0,GL_POSITION,light_position);
glLightfv(GL_LIGHT0,GL_SPECULAR,light_ambient);
``````

what is value of modelview matrix?

How should I look ?
But I called the function after

``````glMatrixMode(GL_PROJECTION);
GetClientRect(*hWnd,&rc);
glViewport(rc.left,rc.top,rc.right,rc.bottom);
gluPerspective(90,(float)( (float)(rc.right-rc.left)/(float)(rc.bottom-rc.top)), 0.001, 640.0);
glMatrixMode(GL_MODELVIEW);
``````

yes… but what have you set for the ModelView matrix?
Have you left it at identity? Have you defined your own camera class (inwhich case you will be changing ModelView Matrix)?

You said you were drawing a cube, but all I see is a flat grid/quad. So what’s the normal for the surface we are looking at in the picture you posted?

``````   void render()
{