A model (an orientable surface) should have
only polygons with clockwise orientation on the outside.
Hence all normal vectors point to the outside.
You can swap what OpenGL considers the back face by using the function:
void glFrontFace(GLenum mode);
For mode GL_CW and GL_CCW are accepted. The default value is GL_CCW.
In a completely enclosed surface constructed from polygons with a consistent
none of the back-facing polygons are ever visible.
You can maximize drawing speed by having OpenGL discard polygons as soon as it determines that they're back-facing. Similarly, if you are inside the object, only back-facing polygons are visible. To instruct OpenGL to discard front- or back-facing polygons, use the command glCullFace() and enable culling with glEnable():
void glCullFace(GLenum mode);
The mode is either GL_FRONT, GL_BACK, or GL_FRONT_AND_BACK. The default value is GL_BACK (is culled and gone).
To take effect, culling must be enabled using glEnable() with GL_CULL_FACE;
it can be disabled with glDisable() and the same argument.
-> see also: Determine the orientation of a polygon.