Problem with Zoom In/Out and glOrtho : Model flipped
I am a beginner with OpenGL so any help would be really appreciated.
I have the following problem:
When I zoom in, the model moves towards the screen, but
then it is flipped and then starts moving back to the z direction
of the screen.
I use the glOrtho(left, right, bottom, top, near, far) function,
so I noticed that the flip happens when bottom and top change
their sign (from positive to negative and vice versa).
Some details about the code:
I have setup the mouseMoveEvent (in Qt) where I calculate
the Z translation according to the mouse Y movement.
zTranslation -= mouseClickYPosition - mouseLastYPosition;
then while drawing the objects I setup the glOrtho parameters:
left = -2.1 + zTranslation;
right = 2.1 - zTranslation;
bottom = -2.1 + zTranslation;
top = 2.1 - zTranslation;
near = -3.1 - zTranslation;
far = -3.1 ;
glOrtho(left, right, bottom, top, near, far);
So what is wrong here?
In general it is better to use glTranslatef, glRotatef, glScalef or glOrtho?
Use glOrtho for the projection matrix, and the others for the model-view matrix. Also, avoid using negative scale factors with the model-view matrix, as that will turn the model inside-out (i.e. it will change whether faces are front-facing or back-facing for the purposes of culling and lighting).
Originally Posted by HephaestusGR