我在 OpenGL (webgl) 中做 3D 透视投影,自己用统一矩阵做。一切正常,但我的纵横比为 3:2(600 像素 x 400 像素),这会扭曲所有渲染的几何图形。
在 2D 中,我曾经通过将 x 和 y 分别除以 1 / width 和 1 / height 来修复模型矩阵中的这个问题。
现在我也有 z 担心,我很不知道如何/在哪里转换 z 以不扭曲我的 3:2 纵横比。
模型矩阵似乎没有提供任何机会来做到这一点,我不知道在投影矩阵中在哪里/做什么。
编辑:投影矩阵:
@_pMatrix = [
1, 0.0, 0.0, 0.0,
0.0, 1, 0.0, 0.0,
0.0, 0.0, -(f + n) / (f - n), -1,
0.0, 0.0, -2.0 * n * f / (f - n), 0.0
]
列主要顺序
编辑 2:n < 1 上的奇怪扭曲