从零一起读_UnityShaderLab_02_矩阵(上)

191 阅读2分钟

「这是我参与11月更文挑战的第3天,活动详情查看:2021最后一次更文挑战

作为一名优秀的开发者,对于技术的探求应该是永无止步的,如何让自己更进步,那就只有不停的学习,不停的充电.而这些都都是说起来容易做起来难,坚持才是难的地方 --蛙哈哈

如果我能更新完这一系列,我希望掘金能给我颁发一个劳模奖.

1.1什么是矩阵?

向量的的维度表示该向量所包含的个数,同样,矩阵的维度表示该矩阵所包含的行和列的数量. 通常使用 r (raw的首字母缩写)表示行数,使用 c (column的首字母缩写)表示列数,而矩阵本身则使用黑斜体大写字母表示,例如 M

表示 M 矩阵有 r 行 c 列 就可以描述为 "r X c 的矩阵 M"行和列之间的符号是称号,读作乘

1.2 方阵和单位矩阵

行数和列数相等的矩阵被称为方阵, Shader 中主要使用的就是 3 X 3 或者 4 X 4 的方阵.

方阵中的行号和列号相等的分量称为对角元素,例如 3 X 3 的矩阵 M 的对角元素为m11 m22 m 33 而其他分量被称为非对角元素

[300010005]\begin{bmatrix} 3&0&0\\ 0&1&0\\ 0&0&5\\ \end{bmatrix}

在对角矩阵中,对角元素全为1的矩阵叫做单位矩阵, n X n 的单位矩阵可以表示为:

I=[100010001]I = \begin{bmatrix} 1&0&0\\ 0&1&0\\ 0&0&1\\ \end{bmatrix}

1.3 转置矩阵

假设将一个 r X c 的矩阵 M 沿着对角线翻转,得到的新矩阵称为矩阵 M 的转置矩阵(Transpose Matrix), 可以表示为 MT ,转置之后的矩阵行会变成列,列会变成行.比如:

[123456789]T=[147258369]\begin{bmatrix} 1&2&3\\ 4&5&6\\ 7&8&9\\ \end{bmatrix}^T = \begin{bmatrix} 1&4&7\\ 2&5&8\\ 3&6&9\\ \end{bmatrix}

转置矩阵的重要法则是:将一个矩阵转置之后再转置,就可以得到原矩阵.

通过公式可以总结为: (M T)T = M

也就可以推广出来一下的结论: 将一个矩阵转置偶数次之后,可以得到与原矩阵相同的矩阵.