菜鸟的GAMES图形学笔记 Lecture 04 Transformation Cont.

该博客介绍了三维坐标系统中绕坐标轴的旋转以及视图转换的过程,涉及到相机位置的设定和平移、旋转矩阵的构建。接着,讨论了如何将模型规范化到-1到1的立方体内,并进行了透视投影到正交投影的转换。文章详细阐述了透视投影转正交投影的矩阵计算方法,并提及了近远裁剪面的处理。
摘要由CSDN通过智能技术生成

资料来自
链接: GAMES:101


齐次方程三维坐标–绕坐标轴旋转

在这里插入图片描述
绕y旋转之所有方向会正好相反,是因为右手坐标系下xz得到的y是反向的

xyzxyzxyz...
xy->z,  yz->x,  x z->-y

进行视图转换

首先确定相机位置

在这里插入图片描述

移动相机至原点

根据相对运动原理,移动相机固定移动物体等于物体固定移动相机,所以先把相机移动到原点以便后续的变换?

移动相机到原点的变换矩阵 M v i e w M_{view} Mview在数学上的意义是:
先把e平移到原点
旋转g至-Z
旋转t至Y
旋转(g x t)至X
e、g、t、(g x t)如下图所示
在这里插入图片描述
显然平移矩阵应该是
在这里插入图片描述
旋转矩阵需要写[g、t、gt]转到单位矩阵 I 的旋转矩阵,也就是
R v i e w [ g × t → t ⃗ − g → n ⃗ ] = [ 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 ] R_{view}\begin{bmatrix} \overrightarrow {g×t} & \vec t & \overrightarrow{-g} & \vec n \end{bmatrix} = \begin{bmatrix} 1 & 0 & 0 & 0\\ 0 & 1 & 0 & 0\\ 0 & 0 & 1 & 0\\ 0 & 0 & 0 & 1 \end{bmatrix} Rview[g×t t g n ]= 1000010000100001
其中
t ⃗ = [ x t y t z t 0 ] T \vec t = [ x_t\quad y_t\quad z_t\quad 0]^T t =[xtytzt0]T
因此
R v i e w − 1 I = [ g × t → t ⃗ − g → n ⃗ ] R_{view}^{-1}I = \begin{bmatrix} \overrightarrow {g×t} & \vec t & \overrightarrow{-g} & \vec n \end{bmatrix} Rview1I=[g×t t g n ]
R v i e w − 1 = [ g × t → t ⃗ − g → n ⃗ ] = [ x g ^ × t ^ x t x − g 0 y g ^ × t ^ y t y − g 0 z g ^ × t ^ z t z − g 0 0 0 0 1 ] \begin{equation}\begin{split} R_{view}^{-1} &= \begin{bmatrix} \overrightarrow {g×t} & \vec t & \overrightarrow{-g} & \vec n \end{bmatrix} \\ &=\begin{bmatrix} x_{\hat g ×\hat t} & x_t & x_{-g} & 0 \\ y_{\hat g ×\hat t} & y_t & y_{-g} & 0 \\ z_{\hat g ×\hat t} & z_t & z_{-g} & 0 \\ 0 & 0 & 0 & 1 \end{bmatrix} \end{split}\end{equation} Rview1=[g×t t g n ]= xg^×t^yg^×t^zg^×t^0xtytzt0xgygzg00001
再根据旋转矩阵都是正交矩阵,得到
在这里插入图片描述

把模型“规范化”

变换到 − 1 3 -1^3 13的立方体里

透视图的处理

先“收缩”成正交视图的样式
在这里插入图片描述
根据相似三角形的原理在这里插入图片描述
( x y z 1 ) \begin{pmatrix} x \\ y \\ z \\ 1 \end{pmatrix} xyz1 变成了 ( n x / z n y / z u n k n o w n 1 ) \begin{pmatrix} nx/z \\ ny/z \\ unknown \\ 1 \end{pmatrix} nx/zny/zunknown1 数乘不变 ( n x n y s t i l l    u n k n o w n z ) \begin{pmatrix} nx \\ ny \\ still\;unknown \\ z \end{pmatrix} nxnystillunknownz

因此透视投影转正交投影的矩阵满足
在这里插入图片描述
可以得出
在这里插入图片描述
进一步利用near面和far面上的z没有变化的性质,把z分别换成n和f,就可得M
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
以上得到了透视转正交的矩阵M

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值