变换
# 1 变换概论 Transformation
# 1.1 模型变化 Modeling
# 1.2 视角变换 Viewing
# 2 二维变换
# 2.1 线性变换 Linear Transforms
线性变换的矩阵是一个相同维度的矩阵
# 2.1.1 缩放变换 Scale
# 2.1.2 翻转变换 Reflection
# 2.1.3 拉伸变换 Shear
# 2.1.4 旋转变换 Rotation
- 基于(0,0)旋转,默认逆时针旋转
# 2.2 平移变换 Translation
- 平移变换不是一种线性变换
- 为了解决这个问题,引入齐次坐标
# 2.2.1 齐次坐标 Homogeneous coordinates
- 增加一个维度来描述空间
- 2维点
(x,y,1)T
- 2维向量
(x,y,0)T
- 齐次坐标添加0,1的原因
- 向量+向量 = 向量
- 点-点 = 向量
- 点+向量 = 向量
- 点+点 = 两个点的中点
- 在齐次坐标下
# 2.3 齐次坐标下各类变换
# 2.3.1 仿射变换 Affine Transformations
# 2.3.1 缩放变换 Scale
# 2.3.2 旋转变换 Rotation
# 2.3.3 平移变换 Translation
# 2.3.4 逆变换 Inverse Transform
# 2.4 变换组合 Composite Transform
- 复杂变换可以根据一系列简单的变换得到
- 复杂变换顺序很重要,因为矩阵叉乘不满足交换律
- 简单变化的顺序反应到矩阵上就是下一步变换矩阵放在左侧
- 变换不仅能合成还能够分解
# 3 三维变换
# 3.1 三维的齐次坐标
- 3维点
(x,y,z,1)T
- 3维向量
(x,y,z,0)T
- 一般来说
(x,y,z,w)
表示一个三维坐标(x/w,y/w,z/w)
# 3.2 三维齐次坐标下的各类变换
# 3.2.1 仿射变换 Affine Transformations
和二维空间一样,也是先线性变换,再平移
# 3.2.2 缩放变换 Scale
# 3.2.3 平移变换 Translation
# 3.3 旋转
# 3.3.1 绕着坐标轴旋转
绕y轴旋转的矩阵与另外两个存在差异的原因是,y轴由z轴叉乘x轴得到,而不是x轴叉乘z轴。所以矩阵是反的
# 3.3.2 罗德里格斯旋转公式 Rodrigues’ Rotation Formula
- 绕着旋转轴
n
旋转角度α
,这里默认旋转轴过原点 - 如果要沿着任意轴旋转,先进行平移,使得旋转轴的起点在原点,然后旋转,最后再平移复原
# 4 观测变换 Viewing transformation
得到照片的过程(三维转二维观察的过程)
- 模型变换 model transformation
- 视图变换 view transformation
- 投影变换 projection transformation
# 4.1 视图变换 View / Camera Transformation
# 4.1.1 首先定义相机
- 相机位置 - Position (e向量)
- 相机观测方向 Look-at / gaze direction (g向量)
- 相机向上方向 Up direction (t向量)
由于相机和物体相对不变的时候,结果不会改变,所以相机约定固定,所有的视图变换都转变为物体变换
- 相机和物体应用同样变换的方法,对视觉没有影响
- 相机约定固定在原点
- 相机约定固定朝-z方向观看
- 相机约定以y轴为向上
# 4.1.2 相机移动到约定位置
- 先将e点平移至原点
- 将g向量旋转到-z方向
- 将t向量旋转到y方向
`Mview`矩阵的求法
- 由于是先平移后旋转,所以不能写成仿射变换
- 旋转变化直接写矩阵很难,所以我们先计算其逆矩阵
- 因为旋转矩阵上半部分是一个正交矩阵,所以求逆就是上半部分求转置
# 4.2 投影变换 Projection transformation
- 投影是一种从3D到2D的过程
- 分为正交投影Orthographic projection和透视Perspective projection
# 4.2.1 正交投影 Orthographic projection
简单理解
- 将相机和物体统一移动旋转至相机处于约定位置
- 丢弃z坐标(这样无法区分物体的上下关系)
- 将x,y缩放到
-1,1
区间
正式做法
将一个把物体包裹的长方体[l, r] x [b, t] x [f, n] 变换为一个标准(canonical)立方体[-1, 1]3
- 在右手系里面z坐标值是近大于远的
# 4.2.2 透视投影 Perspective projection
将透视的棱台变为长方体过程中遵循以下规律
- 远平面上的点z轴坐标不变
- 远平面中心点所有坐标不变
- 近平面上所有店所有坐标不变
# x,y坐标关系
从垂直于x轴或者垂直于y轴来看得到下面的相似三角形
齐次坐标系下
# z坐标关系
投影变正交矩阵
- 根据近平面所有点z坐标不变
- 根据远平面z坐标不变
- 联立方程组求解