opengl学习笔记(四)

相机空间

上一节提到了投影变换 ,投影变换简单点说就是在我们的视角看物体,所以我们总想让摄像机的视线沿z轴方向。

很多人了解过,从一个坐标系变换到另一个坐标系,其实通过复合变换一步就能实现。可是我们需要单独求出相机空间的变换矩阵,再乘以投影矩阵。为什么不能一步从世界坐标系到投影变换呢?

我们在实际操作中,比如unity,我们可以任意改变摄像机的角度,方向。所以,摄像机坐标系它并不是固定的,是随时变化的。所以要多一步求出摄像机的变换。

相机空间我们称之为UVN,看着感觉很简单,UVN,三个轴组成新的坐标系嘛,取了三个别名而已。

其实我觉得最最最难理解的地方就是UVN,因为相机的移动以及角度偏移都是通过对UVN做变换的。难道UVN不应该是(1,0,0)类似于这种的基向量吗?

UVN的确应该是基向量,初始化是和世界坐标系重叠的,但是经过人物移动,上下左右的看,UNV实质上应该是不断变化后的三个基向量,并且他们的向量是相对于世界坐标系的。但是在摄像机坐标系中的物体是相对于相机坐标系的。

什么意思呢,要理解UVN的一个很大的作用,它其实就是变换矩阵的三个行向量。我们从世界坐标系变换到相机坐标系,实际上就是空间中一个点,求出在U方向上的长度,V方向的一个长度,N方向上的一个长度。所以和单位基向量做向量叉乘就可以求出。

综上,世界坐标系中的点,通过三个基向量,求得摄像机坐标系中的位置。三个向量,都是世界坐标系中的值。当我们对相机做移动变换的时候,我们会变换UVN向量,实际上是taget向量(向前方看的方向)以及up向量(人物头顶的方向),另一个left/right通过这两个向量可以求得。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值