您好,我目前正在使用
Vector3 translation = new Vector3( tx, ty, tz);
GL.Translate(translation);
在OpenTK中翻译对象的方法,其中Vector3值从-1到1
如何更改此设置并使可移动对象的值以像素I的方式像素一样 可以根据用户的屏幕尺寸设置场景。
谢谢!
答案 0 :(得分:1)
在传统OpenGL 1.x中,您可以通过使用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
预先警告,这将使您的应用程序难以移植到高分辨率(4K)显示器。如果可能的话,我建议使用与分辨率无关的方法。例如:
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