我正在从传统的opengl迁移到现代的opengl,但是我需要一个glortho的替代品,因为它现在已经被删除了。由于导入的不同,我似乎无法确切地找出如何在java中用c++完成某些事情。
相关代码:GL11.glOrtho(0, Display.getWidth(), 0, Display.getWidth(), 100, -100);
这是我使用的当前正交函数,以及现在未使用的旧的glEnable
s。
最佳答案
好消息是glOrtho (...)
实现起来很简单,甚至不需要像透视投影矩阵那样的任何三角函数。
您将需要构建一个lwjglMatrix4f
如下:
(来源:microsoft.com)
,给定:
(来源:microsoft.com)
请记住,此矩阵是列主矩阵,因此您可以这样填写:
Matrix4f.m00 = 2.0f/(right-left);
Matrix4f.m01 = 0.0f;
Matrix4f.m02 = 0.0f;
Matrix4f.m03 = 0.0f;
Matrix4f.m10 = 0.0f;
Matrix4f.m11 = 2.0f/(top-bottom);
Matrix4f.m12 = 0.0f;
Matrix4f.m13 = 0.0f;
Matrix4f.m20 = 0.0f;
Matrix4f.m21 = 0.0f;
Matrix4f.m22 = -2.0f/(far-near);
Matrix4f.m23 = 0.0f;
Matrix4f.m30 = -(right+left)/(right-left);
Matrix4f.m31 = -(top+bottom)/(top-bottom);
Matrix4f.m32 = -(far+near)/(far-near);
Matrix4f.m33 = 1.0f;
关于java - 在LWJGL中替换glOrtho?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/20294080/