我终于毕业了在OpenGL中使用我自己的矩阵,并且在设置正交投影时遇到了一些问题。目前,我有一个方法,它采用左,右,顶部和底部,并将它们抛入这样的矩阵(来自here):
2(right-left) 0 0 -right + (left * right) - left
0 2(top-bottom) 0 -top + (top * bottom) - bottom
0 0 -2(farVal-nearVal) -far + (far * near) - far
0 0 0 1
然后,我将该矩阵乘以投影矩阵,并且我绝对没有任何有意义的输出。这让我相信我是1)。不使用正确的正交矩阵,2)。不将正交矩阵乘以正确的矩阵,或3)。两者。
我怀疑它是2因为每当我使用已弃用的函数时,当当前矩阵为GL_PROJECTION时调用glOrtho。那么你究竟如何从左,右,上,下值计算出正交矩阵呢?
答案 0 :(得分:1)
嗯,从技术上讲,你不需要你的正交矩阵。使用固定函数管道,您通常会在投影矩阵堆栈上加载一个单位矩阵,因此将正交矩阵乘以投影矩阵堆栈上的正交矩阵。
在你的情况下,无论你将邻域乘以,它都可能是错误的(即不是同一性)。建议:不要繁殖,只需加载它。