On 27.11.2011 17:26, Sven Barth wrote:
On 26.11.2011 21:32, Felipe Monteiro de Carvalho wrote:
// Displacement trick for exact pixelization
glTranslatef(0.357, 0.357, 0);
Untested guess: try to move your object in front of the virtual camera
(which is located at (0, 0, 0) ). Thus set the Z value to something
negative (e.g. -0.5 as you've set your far clipping plane to 1). [The Z
axis is pointing from the infinity in front of you through the origin,
thus the negative values]
Ok, I have now experimented myself with glOrtho (as I had to do a
homework where we need to do a simple OpenGL project (boooring) I used
the time to find a solution for you ^^). The problem is not the missing
translation, but your setup of the orthographic projection matrix. The
coordinates you define there are NOT your viewport coordinates. Thus the
origin lies not at the upper left corner, but at the center! So if you
adjust your call to the following it should work:
glOrthof(-engine^.width/2, engine^.width/2, engine^.height/2,
-engine^.height/2, 0, 1);
Also it is sufficient to set the projection matrix only when a change in
the size of the window happens (or when you really need to switch
between rendering 3D and 2D content, e.g. when drawing a 2D GUI above a
3D scene).
Regards,
Sven
_______________________________________________
fpc-pascal maillist - fpc-pascal@lists.freepascal.org
http://lists.freepascal.org/mailman/listinfo/fpc-pascal