Hello I'm currently using the
Vector3 translation = new Vector3( tx, ty, tz);
GL.Translate(translation);
Way of translating an object in OpenTK where the Vector3 values are from -1 to 1
How do I change this and make the values of a movable object to go pixel wise that way I can set up a scene based on the user's screen size.
Thanks!
In legacy OpenGL 1.x, you can achieve this by setting up an orthographic projection with GL.Ortho:
GL.MatrixMode(MatrixMode.Projection);
GL.LoadIdentity();
GL.Ortho(0, Width, Height, 0, -1, 1);
GL.MatrixMode(MatrixMode.Modelview);
GL.LoadIdentity();
GL.Translate(1.0f, 0, 0); // translates by 1 pixel
Be forewarned that this will make your application difficult to port to high-resolution (4K) monitors. I would advise using a resolution-independent approach if at all possible. For example:
GL.MatrixMode(MatrixMode.Projection);
GL.LoadIdentity();
GL.Ortho(-1, 1, 1, -1, -1, 1);
GL.MatrixMode(MatrixMode.Modelview);
GL.LoadIdentity();
GL.Translate(1.0f / Width, 0, 0); // translates by 1 pixel