学习笔记03:GAMES101现代计算机图形学入门——闫令琪

481 阅读1分钟

Lecture 03 Transformation(变换)

一、为什么学习变换

  • 模型变换(Modeling):translation、rotation、scaling

逆运动学:已知末端的位姿、求各关节的转角

正运动学:已知各关节的角度,求末端的位姿

  • 视图变换(Viewing):(3D to 2D)projection(投影)


二、二维变换:

  • 缩放

  • 镜像

  • 切片(shear)(一条边水平方向移动,相当于所有点水平方向上的移动为a*y)


  • 旋转(默认绕原点逆时针旋转)



以上都是线性变换,可以写成下面的形式:



三、齐次坐标(Homogeneous Coordinates)

1、为什么引入齐次坐标

因为平移不是线性变换,不能用上面的方法表示,引入齐次坐标,就可表示所有的变换

  • 平移

2、如何引入?

给二维的向量和点增加一个维度,因为向量具有平移不变性,所以是0


平移就可以写成下面的形式:


3、增加1,0背后的深层意义


所以点+点 表示两个点的中点(因为w=2)


4、仿射变换(Affine)=线性变换+平移


所有的仿射变换可以写成齐次坐标的形式(这样就用一个形式统一了所有的变换)



PS:只说了在表示二维情况下仿射变换的最后一行为(0,0,1),其他的像投影变换就不一定


5、(Inverse)逆变换

乘以变换矩阵的逆矩阵


四、Composite transform变换的组合

  • 注意顺序:先旋转、再平移
  • 结合律


  • 变换的分解

如绕着给定点c移动(应先将c移到原点,旋转后再移回来)