0%

GAMES101-Lecture03-04-Transformation笔记

Transformation 变换

rotation 旋转 反向动力学 IK

image-20201129175509435

旋转矩阵

image-20201211103954520

image-20201211203919064

线性变化

image-20201211204037574

Scaling 缩放

image-20201129175543153

image-20201129175803171

非均匀缩放

image-20201129195657222

镜像

image-20201129195759104

剪切矩阵

image-20201129200344961

Translation 平移

齐次坐标 Why?

image-20201211204132368

平移不是线性变换,我们不希望平移是一种特殊的变换

引入齐次坐标的cost是什么?

image-20201211204409652

增加维度w 引入齐次坐标

向量具有平移不变性 What if you translate a vector?

image-20201211204622144

《计算机图形学(OpenGL版)》的作者F.S. Hill Jr.曾说过一句话:

齐次坐标表示是计算机图形学的重要手段之一,它既能够用来明确区分向量和点,同时也更易用于进行仿射(线性)几何变换

于是我们知道,其重要性,主要有二,其一是区分向量和点,其二是易于进行仿射变化(Affine Transformation)

image-20201211204944471

point+point = 齐次坐标系下 两点的中点

仿射变换

image-20201211205049558

2D Transformation

S(Sx,Sy) R(α) T(tx,ty)

image-20201211205135924

逆变换

image-20201211205351457

组合变换

image-20201211205453540

image-20201211205504579

矩阵顺序:
$$
\begin{equation}
T_{(1,0)} \cdot R_{45} \cdot 矩阵
\end{equation}
$$
image-20201211225658072

如果不以原点进行旋转呢?

对矩阵进行分解

image-20201211225924209
$$
\begin{equation}
\mathbf{T}(\mathbf{c}) \cdot \mathbf{R}(\alpha) \cdot \mathbf{T}(-\mathbf{c})
\end{equation}
$$

3维变换

image-20201212103907558

先线性变换->后平移 平移对形状影响不大 可以放在最后 也可以写在矩阵最后一列进行组合

image-20201212104230401

image-20201212104119596

Transformation Cont

旋转矩阵的逆等于其转置 正交矩阵

scale translation

rotarion matrix

任意方向的旋转 欧拉角

image-20201212110312557

绕任意轴旋转 formula

image-20201212110544269
$$
\begin{equation}
\mathbf{R}(\mathbf{n}, \alpha)=\cos (\alpha) \mathbf{I}+(1-\cos (\alpha)) \mathbf{n} \mathbf{n}^{T}+\sin (\alpha) \underbrace{\left(\begin{array}{ccc}
0 & -n_{z} & n_{y} \
n_{z} & 0 & -n_{x} \
-n_{y} & n_{x} & 0
\end{array}\right)}_{\mathbf{N}}
\end{equation}
$$

视图变换

image-20210722223258090

modeling tranformation 模型变换

将虚拟世界中或者更具体点,游戏场景中的物体调整至他们应该在的位置

View Camera tran. 相机变换

MVP 三变换 得到物体与摄像机的相对位置

摄像机变换的目的是得到所有可视物体与摄像机的相对位置,把物体和摄像机一起做移动,如果能够把摄像机的坐标轴(假设为u,v,w 分别对应原世界空间中的x,y,z)移动到标准的x,y,z轴,那么此时物体的坐标自然是相对坐标。

因此核心问题就变成了如何表示或者说如何将camera的坐标系与原世界坐标系重合

定义3个东西

  • 相机或眼睛位置 (eye postion) e
  • 观察方向 (gaze postion) g
  • 视点正上方向 (view-up vector ) t

相机的三个属性

image-20210722223548161

其中u,v,w分别对应标准坐标系下的x,y,z,示意图如下:

image-20210722223616101

不直接拿 t 当做基底向量是因为摄像机的头可能是歪着看的

image-20201212110856470

约定相机永远看向-Z方向,约定标准位置

image-20201212111020189

image-20201215204522585

把相机的uvw移到xyz标准坐标去,朝向为-z轴

平移矩阵 平移相机位置到原点上去 和旋转矩阵

image-20201215205338308

原始的旋转 从相机到世界原点的矩阵不好的到,反过来求其逆,把坐标原点旋转到相机,求逆就是其转置,因为旋转矩阵是

正交矩阵,就如同在blender里按下0到相机的视角。

Projection tran. 投影变换

正交投影Orthographic projection 和透视投影 Perspective projectivre

image-20201215205832209

锥与正方体的区别,坐标标准化,正交投影直接把z坐标给扔掉就是正交投影的视图

正交投影

image-20201215210343362

[left.right] [button,top] []

image-20201215210526361

矩阵平移缩放标准化

透视投影

image-20201215211402986

齐次坐标的缩放不变性

image-20201215211745427

远平面到近平面的矩阵变换,从侧视图想起

image-20201215211848174

一句逻辑推出x和y的解答 z的部分设为未知

image-20201215212025039

推理出来矩阵的第1,2,4行只剩第3行的值

image-20201215212124839

z用n代替 矩阵第三行乘原点得到n^2,但是A,B可能等于0,只有这一个条件还不行

image-20201215212320440

使用原平面的中心点得到第二个约束条件

image-20201215212523465

解的透视投影矩阵

image-20201215212616234

作业0:

1.添加->正方体

2.面->交集(切割)

3.网格->分离->按松散块

欢迎关注我的其它发布渠道