计算机图形学CG入门 | 视图变换

视图变换的目的就是将三维空间中以 (x, y, z) 表示的物体变换到二维坐标系中,以像素(pixels)为基本单位表示。

一、相机变换

以相机作为坐标原点的一个参考系,从世界空间变换到相机空间,就是把物体从世界坐标系,变换到相机为原点的相机坐标系。

1. 相机的表示

相机可以用三个向量来表示,如图:
在这里插入图片描述
其中:
向量 e 为相机相对于标准基xyz在空间中的位置
向量 g 为相机看向物体的方向单位向量)
向量 t 为相机朝上的方向

相机变换:将相机变换到标准基上,即位置移到原点,相机的视角g对应-z方向(规定的正方向),t对应y轴方向(也是规定y指向上方),变换物体位置使得变换后相机和物体的相对位置不改变。
在这里插入图片描述

具体分为两步:
在这里插入图片描述

(1)将相机的位置移到原点处

这一步比较容易理解,即进行一个平移操作,将所有点的坐标都减去相机现在的位置,这样我们就得到了平移矩阵T
在这里插入图片描述

(2)变换坐标系以相机为标准基

这一步需要思考理解,逆向思考。
在这里插入图片描述
要想将uwv坐标系变换到xyz坐标系,那么我们如果能得到将xyz坐标系旋转至uwv坐标系旋转矩阵R的逆操作即可。

正交矩阵所有列(行)向量构成了一个标准正交基(它的列向量都是互相正交,并且长度为1),因此可以把正交矩阵看成是对一个坐标系的描述。
同时,我们知道:同一个向量,在不同的基下面的坐标是不同的。因此,可以用正交矩阵来代表坐标系(也可以看作基)从而写出在统一的参考系(全局坐标系)下同一个向量在不同基中的坐标。

以下面为例:
在这里插入图片描述
参考系中向量v在基Q中的坐标是v’,在基R中的坐标是v’’(注意这里的环境下基矩阵是用列向量表示的,这样相乘之后的结果表示的是基向量的线性组合)。如下图,黑色基表示的是参考系,红色是基Q,蓝色是基R,v是参考系中的一个向量。
在这里插入图片描述
已知一个基Q和向量v在它之中的坐标v’,以及另外一个基R,我们可以通过v=Qv’=Rv’’公式来计算v’’。
在这里插入图片描述
上面就是求v’’的公式,注意到右边需要计算基R的逆矩阵R^-1,因为基R是正交矩阵,而正交矩阵的一个重要性质就是逆等于转置。因此,我们可以把它写成
在这里插入图片描述
这个公式就是坐标转换公式。特别地,如果Q是和参考系相同的坐标系(3D编程中大多数情况下如此),比如世界坐标系,则Q是一个单位矩阵I,则我们可以把它写成
在这里插入图片描述
这个坐标转换公式可以解释为:对于世界坐标系中的向量v’,它在坐标系R中的坐标是v’’。

公式推导完了,下面看怎么使用:
在这里插入图片描述
Rview矩阵:将物体由世界坐标系变化到相机坐标系

这里逆性思维,世界坐标系 ==Rview==>相机坐标系,v(相机坐标系) = Rview v’(v’是世界坐标系下的)
根据上面的公式,要求某个坐标系R中的坐标,只需要将基R的转置×世界坐标
那结合v = Rview v’,可知旋转矩阵Rview对应的就是相机坐标系的基R的转置,即Rview = R^T
基R可表示为:
在这里插入图片描述
对其转置即得到Rview

  • 19
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

猿知

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值