【GAMES101笔记速查——Lecture 04 Transformation Cont】

目录

1. 观测变换(Viewing transformation)

1.1 视图变换(View/Camera transformation)

1.1.1视图变换是什么?

1.1.2 如何进行视图变换?

(1)首先定义相机

(2)如何使用矩阵变换将相机移动到上述约定位置?

(3)如何书写这个变换矩阵呢?

1.1.3 模型|视图变换

1.2 投影变换(Projection transformation)

1.2.1 正交投影(Orthographic projection)

(1)正交投影的一种简单的理解

(2)正交投影的通常实现

1.2.2 透视投影(Perspective projection)

(1)透视投影的数学基础

(2)如何进行透视投影

(3)对梯台进行挤压的几点前置规定

(4)如何对梯台进行挤压?

1.3 补充(垂直可视角度fovY与长宽比)


1. 观测变换(Viewing transformation)

1.1 视图变换(View/Camera transformation)

1.1.1视图变换是什么?

让我们思考拍摄一张照片的过程:

1.找好地点,需要拍照的人站好,摆好姿势。(模型变换Model transformation)

2.放好相机,并找好相机的角度(视图变换 View transformation

3.茄子!拍好照片。(投影变换Projection transformation)

1.1.2 如何进行视图变换?

(1)首先定义相机

1.放置在哪里?e向量

2.看向哪里? g向量

3.相机自身关于视线轴的旋转程度? t向量

这三个向量便可以确定相机了。

     

如果相机和物体的运动一致,那么拍到的图像就是一成不变的,我们不希望看到这样的结果。

我们约定:

将相机放在(000)处

相机永远面向-Z

永远以Y轴为向上方向。

其他的物体参照相机的位置来运动。

(2)如何使用矩阵变换将相机移动到上述约定位置?

e向量移到坐标原点

旋转g向量使之与-Z轴重合

旋转t向量使之与Y轴重合

自然g叉乘t的结果向量也与X重合了

(3)如何书写这个变换矩阵呢?

整个变换过程:先平移,再进行复合的旋转。

平移矩阵T比较容易得出,只要将e移到原点即可,也就是矩阵的平移部分填写e点坐标的相反数-xe、-ye、-ze。

旋转矩阵R的推导可以使用逆向思维。任意轴旋转至标准轴的矩阵不好书写,但从标准轴旋转至特定轴(逆操作)的矩阵较好写出R-1,写出之后再对其求逆矩阵,便可以得到想要的结果。而旋转矩阵是正交矩阵,它的逆就是它的转置。

1.1.3模型|视图变换

因为模型变换和视图变换本质上都是把物体放到特定的位置上,所以人们往往将他们统称为模型|视图变换

1.2 投影变换(Projection transformation)

正交投影不会带来近大远小的现象,它默认相机离物体无限远。

透视投影会带来近大远小的现象,平行线的延长线会在空间中某一点相交。

人眼成像更类似于透视投影。

1.2.1 正交投影(Orthographic projection)

(1)正交投影的一种简单的理解

·将相机以我们约定好的方式(置于原点,面向-Z轴,头指Y轴)放好

·舍弃物体的Z坐标

·将物体的大小缩放为围绕坐标原点的[-1,1]2的小矩形(约定俗成)

经过这三步就完成了正交投影。

(2)正交投影的通常实现

·在空间中定义一个宽度[l,r]、高度[b,t]、深度[f,n]的长方体

·平移这个长方体,使它的体心与坐标原点重合

·将其缩放成[-1,1]3的标准正方体

这个变换矩阵书写格式如下:

PS:这样变换之后,物体确实会被拉伸,这部分变形会在后面视口变换中讲到。

1.2.2 透视投影(Perspective projection)

透视投影应用的非常广泛

近大远小

平行线在视觉上不再平行

(1)透视投影的数学基础

将齐次坐标(x,y,z,1)的各部分乘以同一个非零数,其结果与(x,y,z,1)本身都表达三维空间中的同一个点(x,y,z)。

(2)如何进行透视投影

       

·先将透视投影形成的梯台(截头锥体)挤压成一个长方体

·再对这个挤压后的长方体进行正交投影

(3)对梯台进行挤压的几点前置规定

·规定近平面的任何一点都不会改变

·规定远平面的深度(Z坐标)不会发生改变,只是向里收缩。

·远平面的中心点不变

(4)如何对梯台进行挤压?

       1.画出侧视图,观察图中的相似三角形,得到表达式

          2.同理,可得表达式

              3.将这两个表达式代入变换矩阵的结果中,可以确定矩阵的1、2、4这三行参数。

              4.使用两个已知条件:近平面任何点变换前后不发生改变;

                                              远平面中心变换前后不发生改变。

               即可推出剩下的一行未知数。

               至此,透视变换的挤压矩阵所有参数已知。

透视变换的挤压矩阵:

1.3 补充(垂直可视角度fovY与长宽比)

定义空间观察范围(视锥)的常用方式

人们常通过下面两个数据描述一个观察范围

·垂直可视角度  vertical field-of-view (fovY)

·长宽比  aspect ratio

已知垂直方向可视角度fovY后,可以根据其正弦值与距离n求出可视范围的一半的高度t,再根据已知的长宽比,便可以算出可视范围的宽度。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值