【发布时间】:2014-12-31 16:00:57
【问题描述】:
我在 OpenGL (webgl) 中进行 3D 透视投影,自己使用统一矩阵进行。 一切正常,但我的纵横比为 3:2(600 像素 x 400 像素),这会扭曲所有渲染的几何图形。
在 2D 中,我曾经通过将 x 和 y 分别除以 1 / 宽度和 1 / 高度来修复模型矩阵中的这个问题。
现在我还要担心 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
【问题讨论】:
-
您能展示一下您是如何设置投影矩阵的吗?这就是您应该定义观看量的地方。纵横比实际上不适用于 Z 坐标,因为它是没有 Z 坐标(或者更确切地说是统一的 Z 坐标)的 2D 视口的函数。
标签: opengl projection-matrix 3dcamera