GAMES101 L4: Transformation 3D

在这里插入图片描述
类比2D空间的齐次坐标,引入3D空间中的齐次坐标
在这里插入图片描述
在这里插入图片描述

注意这个问题:是线性变换先还是平移变换先?这个问题的意思是是左上角的3×3矩阵是线性变换(缩放、旋转、错切),右边一列表示平移变换,那么这个矩阵作用在这个点上,是先线性变换,还是先平移呢?

这个问题其实很简单,该矩阵的作用其实是:
( x ′ y ′ z ′ ) = ( a b c d e f g h i ) ⋅ ( x y z ) + ( t x t y t z ) \left( \begin{array}{l} x'\\ y'\\ z' \end{array} \right) = \left( \begin{array}{l} a&b&c\\ d&e&f\\ g&h&i \end{array} \right) \cdot \left( \begin{array}{l} x\\ y\\ z \end{array} \right) + \left( \begin{array}{l} t_x\\ t_y\\ t_z \end{array} \right) xyz=adgbehcfixyz+txtytz
所以当然是线性变换再平移了

在这里插入图片描述
在这里插入图片描述
绕着哪个轴旋转,哪个轴的坐标就不变
注意: R y R_y Ry矩阵有些不一样的原因在于,根据右手法则,y轴=z轴×x轴,是z轴在前。

一个重要的思路就是由简单的变换组合出复杂的变换。
在这里插入图片描述

在这里插入图片描述
注意:默认Rodrigues’ Rotation Formula默认 axis n 过原点。如果是要绕任意轴旋转,做法是先把要旋转的轴平移到原点,然后再做旋转,然后再平移回去。

prove:

在这里插入图片描述
还有一种古老的方法是四元数,主要解决旋转矩阵不适合做插值的问题。本门课程不再提了。

View / Camera Transformation

三维空间的物体,变成二维的一张照片,是如何变换的?

在这里插入图片描述
MVP变换,也就是 model view projection

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
注意 R v i e w − 1 R_{view}^{-1} Rview1的这个矩阵,它的第一列是一个单位向量,第二列也是一个单位向量,第三列也是一个单位向量,且这三个单位向量相互垂直,这满足了正交矩阵的条件,所以它是一个正交矩阵,
然后它可以将 x方向单位向量旋转到 g ^ × t ^ \hat{g}\times\hat{t} g^×t^.将y方向单位向量旋转到 t ^ \hat{t} t^,将z方向单位向量旋转到 − g -g g.所以它是一个可以将原始坐标的xyz方向按原点旋转到摄像机的方向的一个旋转向量
反过来,它的逆矩阵就是将摄像机的方向旋转到xyz轴方向的旋转向量,而正交矩阵的逆就是它的转置。
在这里插入图片描述
注意这个名字 ModelView Transformation
这样做的目的是要方便投影!!!

在这里插入图片描述
Orthographic projection 正交投影
Perspective projection 透视投影
它们本质的区别是是否有近大远小的性质。
那么,在数学上如何来描述这个区别呢?

在这里插入图片描述
在这里插入图片描述
translate and scale the resulting rectangle to [ − 1 , 1 ] 2 [-1,1]^2 [1,1]2 的意思是将去掉z坐标后的平面移动和缩放到-1到1范围的矩形,这是一个约定俗成的办法,可以简化之后的操作

在这里插入图片描述
注意名词:canonical cube
注意通常的办法和之前先投影的办法有区别
在这里插入图片描述
在这里插入图片描述
在这里,l<r, b<t,但是f<n,也就是说,如果一个面离视点更远,它的z值会更小,也就是说“远小于近”,所以opengl使用左手系来避免这个问题,可是使用左手系也会带来其它的问题,再次强调,本课程统一使用右手系。

拉成一个单位立方体之后,物体会被拉伸。但是还会做视口变换,这之后再讲。

透视投影是应用最广泛的投影
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值