2、矩阵属性

    1. 我们只研究 2 X 2 3 X 3 4 X 4的方阵
    2. 对角矩阵
    3. 方阵的对角线上有非零数,其他成员都是零
    4. 单位矩阵
    5. 对角线上的元素都必须是1,其他都是0
    6. 单位矩阵非常特殊,他和其他矩阵相乘后的结果都保持矩阵不变,也可以理解他就是原矩阵

    向量和矩阵

    1. 行向量
    2. 一行三列的矩阵
    3. 列向量
    4. 三行一列矩阵

    矩阵转置

    1. 让矩阵的行变成列,让列变成行

    转置记法: M^T

    注意:对于单位矩阵来说,他的转置就是他本身

    4、矩阵的几何意义

    1. 一般我们需要使用方阵的特性来描述一个物体变换时的线性变换规律;
    2. 前面的说明确认我们必须使用方阵来解决我们的3D数学计算。
    3. 使用方阵解决的变化
    4. 旋转
    5. 缩放
    6. 投影
    7. 镜像
    8. 仿射(一种特殊矩阵)
    9. 矩阵和向量的几何关系
    10. 我们可以把向量利用线性变换的规律转化成一个对角方阵,表达我们平移时的平移关系
    1. 方阵运算都是线性的,3X3方阵他的参照点就是(0, 0, 0)原点。
    2. 对于不在原点的线性变换 3X3 方阵是表现不了的。所以我们需要构建 4X4 的方阵来表现参照点不在原点的线性变换。
    3. 线性变换后接着自动平移了,这样的现象我们称为仿射变换。
    4. 特点,就是在发生线性变换的同时也发生了平移,就是将一个3x3矩阵和一个平移综合在了一起,得到了一个 4X4的方阵

    4x4齐次矩阵

    1. 4维矩阵的用途
    2. 主要用于显示方面的,最后一个维度用于标明显像管的比例
    3. 在图形图像编程中我们必须使用四维的向量,方便我们最后的显示
    4. 4x4 矩阵形式
    5. m11, m12, m13, Nx
    6. m21, m22, m23, Ny
    7. m31, m32, m33, Nz
    8. 0, 0, 0, 1
    9. m表示的是一个3x3的方阵,所以我们前面认识的所有方阵都可以放进去
    10. (Nx,Ny,Nz,1) 叫做增量变化,如果你没有增量那么你就传0就好了,但是最后一个维度一定是1
    11. 说明
    12. 齐次矩阵在和我们的向量发生关系后他并不会直接改变坐标,而是改变了4维向量的最后一个维度,这样的表现主要应用在我们的渲染当中,逻辑代码并不需要;

    6、矩阵计算

    概念

    旋转

    1. 模型的顶点自己不能直接选择,他必须参照一个方阵实现在各个轴向上发生旋转。旋转绝对不可以同时发生,只能一步步选择
    2. 旋转矩阵是固定一个轴,让顶点在这根轴上的平移没有发生变化,但是这根轴垂直的平面上的两个平移发生了变化, 所以我们的选择是不改变当前轴的坐标而改变垂平面上的坐标;
    3. X轴旋转A
    4. 1, 0, 0
    5. 0, cosA, sinA
    6. 0, -sinA, cosA
    7. Y轴旋转A
    8. cosA, 0, -sinA
    9. 0, 1, 0
    10. sinA, 0, cosA
    11. Z轴旋转A
    12. cosA, sinA, 0
    13. -sinA, cosA, 0
    14. 0, 0, 1
    15. 2D旋转
    16. cosA, sinA
    1. 缩放运算的方阵是一种特殊方阵:对角方阵
    2. 缩放对角矩阵
    3. Sx, 0, 0
    4. 0, Sy, 0
    5. 0, 0, Sz
    6. 缩放轴需要你填写,如果哪个轴不缩放,那么请你填写1
    7. 注意:缩放绝对不可以是0
    8. 2D
    9. Sx, 0
    10. 0, Sy

    镜像

    1. 在某个轴上产生一个反转的关系
    2. 从上翻到下,上下颠倒
    3. 从左翻到右就是左右颠倒
    4. 3D物体你需要注意,正反面的渲染问题,如果你反面没渲染,镜像后你就看不见了
    5. 镜像是轴发生的翻转关系,镜像是线性的一次只能镜像一根轴
    6. 镜像矩阵就是我们的缩放矩阵,只是他的缩放值必须是小于0的,而且每次只能镜像一次

    投影

      将多个变换矩阵按照次序组合(连接)成一个矩阵。这个新矩阵代表依次执行原变换的累加效果。

    1. 计算机的基本绘制
    2. 1、有世界坐标系,用于给其他坐标系提供参考
    3. 2、物体需要依靠自身坐标系发生旋转缩放,然后利用惯性坐标系产生平移
    4. 3、物体的存在我们看见才有意义,这个时候我们需要借助摄像机来观察物体,摄像机就可以将物体投影到屏幕上,这个时候需要经历投影矩阵计算;
    5. 4、将投影好的图像再转换到显示器的坐标系范围,完成最终显示
    6. 优化渲染过程
    7. 矩阵乘法支持我们的结合律
    8. 世界矩阵,摄像机投影矩阵,视口矩阵,是固定不变的
    9. 既然他们三个基本不变,那么我们可以提前把他们三个乘出来,得到一个新矩阵与我们的物体矩阵相乘
    10. 我们就可以得到一个MVP矩阵,方便我们做最后的定位
    11. 渲染
    12. CPU对于浮点和矩阵计算比较吃力