With regard to the OpenGL question:
In an orthographic projection, objects of different distances appear the same size. Which is unnatural. Objects farther away appear smaller in reality. You usually want perspective projection.
OpenGL has a series of matrices, which are applied in order when it draws.
The default initial matrix is GL_MODELVIEW, which is typically what you operate in and apply your transformations to move around your objects and things.
The GL_PROJECTION matrix is used to change the projection of the entire scene. For example, when the window is resized, you typically want to switch to the Projection matrix, call gluPerspective() with the new window coordinates, and then switch back to the ModelView Matrix.
Does that clear things up?
I just happen to have taken a Graphics class last semester. :)