【MVP矩阵】投影矩阵推导与实现

相机空间和NDC空间示意图(来自奇乐编程学院)

相机坐标系一般都是右手坐标系, 相机朝向是 z 的负半轴
在这里插入图片描述

裁剪空间和NDC空间示意图

在这里插入图片描述

投影矩阵推导

【本文仅用于自身备忘】
正交投影推导结果如下
在这里插入图片描述

透视投影推导结果如下
在这里插入图片描述

备注

一般情况下,透视投影我们使用的是下面的矩阵,因为视锥体的r、l、t、b信息一般不好拿到
在这里插入图片描述
这个第三行三列和三行四列和上面一样,一行一列和二行二列不一样,怎么来的?
这里推导一下
首先aspect是横高比,aspect = r / t,一般也等于渲染窗口的横宽比,比如webgl中就是拿div的width/height计算
r = aspect * t(公式一)
还有tan(fovy/2) = t/n(公式二)这里fovy指的是y方向锥体的边和垂直视线的夹角
根据公式一和公式二可以得到
最终的结果

games101投影矩阵推导结果和上面那个为啥不一样

1.games101中相机空间是右手坐标系,这个一样,但是NDC也是右手坐标系,上面列的那个投影矩阵是Opengl用的,opengl NDC坐标系是左手坐标系,前提在这

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值