is there any command manipulate face normals,i assume glNormal*() but i ve no idea how to use it.
You can transform them with a matrix or something more exotic in the vertex shader, or you can do it on the CPU and then specify them with glNormal*(). If you use the fixed pipeline in most cases the GL will handle the transformation for you.
Just use glNormal before calling to glVertex, and change it for every faces.
Or if your using vertex arrays, you can enable the normal array and set the pointer to your array before drawing.
glEnableClientState(GL_NORMAL_ARRAY); //enable the normal array glNormalPointer(GL_FLOAT, 0, myNormals); //set the normal array to the array holding your normal data glDrawElements(GL_QUADS, 4, GL_UNSIGNED_BYTE, myIndices); //draw the object glDisableClientState(GL_NORMAL_ARRAY); //disable the normal array
for more info on the above commands, there is plenty of info on google.