我正在用OpenGL (webgl)做3D透视投影,用统一矩阵自己做。每个东西都很好,但我有一个3:2 (600 Pxx400px)的纵横比,这扭曲了所有的几何图形。
在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<1的怪异扭曲

发布于 2014-11-04 18:15:08
你错过了投影矩阵中的*left*, *right*, *top*, *bottom*。
2*n
----- 0 0 0
r-l
2*n
0 ----- 0 0
t-b
r+l t+b -(f+n)
----- ----- ------ -1
r-l t-b f-n
-2*f*n 0
0 0 ------
f-n如果您定义了(r-l)/(t-b) = 3/2,使查看卷是模型的适当大小,那么您应该被设置。
下面是一些描述各种投影矩阵及其派生方式的幻灯片:17.pdf
他们是爱德华安吉尔,作者的交互式计算机图形学,这是我得到这个矩阵。不幸的是,OpenGL的红皮书似乎根本没有完成数学运算。
https://stackoverflow.com/questions/26740637
复制相似问题