投影矩阵

一直以来其实都有点不是特别想去研究投影矩阵,主要原因是现在的游戏引擎这部分基本都不需要你去看和改动,因为它过于底层,也基本不会出错,所以根本没有机会接触。另一个原因是因为它偏数学,推导过程的话容易记不住。所以除非自己手搭一个渲染引擎,否则应该极难有动力。虽然这个稍嫌枯燥,但其实还是有些好奇的,所以今天也是趁着有空,打算彻底搞清楚,记不记得住就看天意了。

这里要感谢这篇博客,整个推导过程我觉得写得足够的农民,一看就懂,所以要Mark下,因为写得比较清楚,所以我自己只是简单整理下https://blog.csdn.net/zhanghua1816/article/details/23121735

正交投影(Orthographic Projection)

其实正交投影的近裁减面用处并不大,其实可以假设n为0。这样m23就是0了。只要关心正对角线的赋值即可。然后这里显然构造正交投影矩阵,只需要涉及投影矩阵所在viewport的宽高,近裁减面和远裁剪面距离。

 

透视投影(Perspective Projection)

虽然不像正交投影一样需要关心viewport宽高的实际大小,只需要关心宽高比,但是宽高比间接也用到实际宽高了,所以还是要用到的。然后这里的a,其实就是我们常说的fov,也就是视场角

 

世界坐标转投影坐标

投影矩阵 * 相机世界矩阵的逆矩阵 * 世界坐标

相机世界矩阵,指的是Matrix(translate, rotate, scale),也就是用来表示相机的平移旋转和缩放的矩阵,不过一般相机用不到缩放就是了。至于为什么是逆矩阵,其实就是为了将相机摆到坐标轴原点,方便观察和计算,龙书里其实有提及。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值