矩阵
一个m×n的矩阵是一个由m行n列元素排列成的矩形阵列。关于矩阵的更详细信息与计算在这里。
变换
基本概念
变换(transform)是把一些数据(点、矢量、颜色)通过某种方式进行转换的过程。
线性变换(Linear transform),是指可以保留矢量加和标量乘的变换。其数学公式是:
缩放(scale) 以及旋转(rotation)都是最普通的线性变换。
线性变换都包括:旋转、缩放、错切(Shear)、镜像(Mirroring)、正交投影(orthographic projection)。
仿射变换(affine transform)可以合并线性变换和平移变换,将仿射变换扩展到4维空间下用4x4的矩阵来表示,它就是齐次坐标空间(homogeneous space)。
齐次坐标
齐次坐标就是将3x3矩阵(其不能表示平移操作),扩展到4x4的矩阵。
4x4的矩阵可以表示平移、缩放、变换,可以将4x4的就很分解成4个部分:
其中,左上角的矩阵 M3x3 用于表示旋转和缩放, t3x1 用于表示平移, 01x3 是零矩阵,右下角的是标量1。
平移矩阵
结果x、y、z分量分别增加了一个位置的偏移,在3D中的可视化效果就是把 (x,y,z) 在空间中平移了 (tx,ty,tz) 个单位。
缩放矩阵
对模型空间沿着x轴、y轴、z轴进行缩放。若 kx=ky=kz ,这样的缩放是统一缩放,否则是非统一缩放。
其逆矩阵是:
旋转矩阵
绕x轴旋转a度:
绕y轴旋转a度:
绕z轴旋转a度:
复合变换
顺序是右乘且先缩放再旋转,最后平移。