我读到的关于投影矩阵的几乎所有理论资料都有第一个元素2n/(r-l)
,但我见过的大多数开源实现都有它2n/((t-b)*a)
,一开始对我来说很有意义,因为(r-l)
应该是((t-b)*a)
,但是当我实际运行数字,感觉有些不对劲。
如果我们有 65 度的垂直视野、0.1 的近平面和 4:3 的纵横比,那么我似乎得到:
2n/(r-l) = .2 / (tan(65*(4/3)*.5) * .2) = 1.0599
但
2n((t-b)*a) = .2 / (tan(65*.5) * (4/3) * .2) = 1.1773
为什么我阅读的所有内容与我看到的所有内容之间存在差异?直到我开始实现相同的分析逆时我才注意到,我看到它的第一个元素是 (rl)/2n,这不是这些其他实现的逆。