0

我终于毕业了,可以在 OpenGL 中使用我自己的矩阵,并且在设置正交投影时遇到了一些问题。目前,我有一个方法,它采用左、右、上和下并将它们扔到这样的矩阵中(从这里):

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。那么,究竟如何从左、右、上、下值计算正交矩阵呢?

4

1 回答 1

1

好吧,从技术上讲,您不必要求您的正交矩阵带有某些东西。使用固定函数管道,您通常会在投影矩阵堆栈上加载单位矩阵,因此将正交矩阵与之相乘只会在投影矩阵堆栈上留下正交矩阵。

在您的情况下,无论您将正交与什么相乘,它都可能是错误的(即不是身份)。建议:不要相乘,加载即可。

于 2013-08-06T16:13:28.463 回答