首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >OpenGL三维变换:Z-高宽比

OpenGL三维变换:Z-高宽比
EN

Stack Overflow用户
提问于 2014-11-04 16:51:50
回答 1查看 481关注 0票数 0

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

在2D中,我用x和y分别除以1/宽度和1/高度来修正模型矩阵中的这一点。

现在,我也有z需要担心,我是非常不知道如何/在哪里转换z,以不扭曲我的3:2宽比。

模型矩阵似乎没有提供任何这样做的机会,我不知道在投影矩阵中应该做什么。

编辑:投影矩阵:

代码语言:javascript
复制
@_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的怪异扭曲

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-11-04 18:15:08

你错过了投影矩阵中的*left*, *right*, *top*, *bottom*

代码语言:javascript
复制
 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的红皮书似乎根本没有完成数学运算。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26740637

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档