2D变换

线性变换

  • 可以用矩阵直接表示

  • Scale 缩放

  • Reflection 反射/对称

  • Shear 切变

  • Rotate 旋转

    6

齐次坐标系(Homogeneous)

  • 线性变换+平移,不能用矩阵直接表示,添加第三个坐标即使用齐次坐标表示

    齐次坐标就是用N+1维来代表N维坐标,在笛卡尔坐标系下加额外变量w形成齐次坐标

    • 2D 点 =

    • 2D向量 =

    • 针对点/向量具有平移不变性,为0或1时才是有效操作,需要变成

​ 把齐次坐标转化为笛卡尔坐标的方法是前面n-1个坐标分量分别除以最后一个分量即可

  • 向量+向量=向量

  • 点-点=向量

  • 点+向量=点
  • 仿射变换 Affine:线性映射+平移使用齐次坐标系为:
  • 缩放/ 旋转/ 平移

    Scale

    Rotation

    Translation

  • 组合变换

    设有仿射变换……

    由矩阵乘法组合对性能影响很大,可以将n个变换先合成一个计算


3D变换

四元数

  • 3D 点 =

  • 3D向量 =

7

​ 矩阵的逆为转置:

3D变换

  • Scale
  • Translation
  • Rotation
    • 旋转-欧拉角:绕x、y、z轴旋转
    • 旋转-任意方向

View / Camera视图变换

拍照:①确定好模型位置 ②调整相机位置(视图变换)③3D->2D,通过投影变换

视图变换:通过相机拍摄,相机随物体一起变换,目的是将相机位置调整为标准坐标轴位置

  • 定义相机:位置,拍摄方向,向上方向

    ​ 相机模型转化在坐标轴上:为原点,为-Z,为Y

    ​ 由于难以转换,通过计算由标准坐标轴转化为相机视图

QQ截图20220827235748

QQ截图20220828000623


Projection 投影变换

QQ截图20220828001010

正交投影

正交投影:直接将3D拍扁就是上面的图,通过平移和缩放使其变为1x1x1的立方体

  • 由于摄像机看向-Z方向,物体在-Z轴上,因此z越大越近 (l, r)X(b, t)X(n, f)为在x, y, z轴上的范围

QQ截图20220828001551

透视投影

透视投影:近大远小,不平行的平行线,收敛到单点;通过挤压变换投影到另一个面

  • z值不变,切面上中心点不变,近平面不变(z=n的平面)

QQ截图20220828002828

  • 则对于任一点(x, y, z)在齐次坐标下表示为:

​ 构造矩阵为:

  • 由于近平面(最近即z=n的情况)上任意点不变z值不变,将z替换为n,中心坐标不变:

​ 因此:

  • 由于最远平面(最远即z=f,只剩原点(0,0)的情况)中心不变

​ 因此:

  • 最终

​ 即

视野:垂直可视角度,上下中点与视锥点的夹角决定范围大小

纵横比:宽高比

视锥点:相机位置