In some tutorials where the lighting is introduced, people would start with an example of a sphere, lit by all three types of lights: ambient, diffuse and specular. One can then easily see, e.g. by switching off individual lights, that the ambient one is responsible for uniform lighting of the object, the diffuse one comes from a specific direction, and thanks to the specular light we can observe a bright spot on the surface.
I tried to repeat the same steps with a simpler example, a cube that the user can arbitrarily rotate. What I actually expected to see was a similar picture: I presume OpenGL should to some extent follow the rules of geometrical optics, and, if positions of both the light source and the camera are specified, there should be only one bright spot on one of the cube faces, the one that reflects the light source directly onto the camera.
However, I could only obtain uniformly lit faces, never a bright spot. So, my question is, is it actually possible to get it? Forgot to mention, I used the simplest possible triangulation -- 2 triangles per face. Another thing, I am using OpenGL ES 1.1 so, no shaders.
The lighting strongly depends on the amount of vertices you have for each side of your cube. Since you are not using shaders the lighting is calcalulated per Vertex. But the calculation depends on the surface normal which is orientated perpendicular to the face and is calculated per face means 3 vertices.The normals are the same for each vertex of the face thats why the light intensity for each vertex is also the same, so that you can't see any lighting effect. If you calculate the normals correctly you must see a difference in the color of the different sides of the cube. To achieve some spot on one side you have to increase the grid resolution of each side of the cube and you have to apply an approriate angle for the cone of the spot light or you minimize the distance of the spotlight to the cube.
Take a look at this nice tutorial. It explains the basic mechanism in an very understandable way: http://www.opengl-tutorial.org/beginners-tutorials/tutorial-8-basic-shading/