Unity shader基础学习(三) ------ 数学基础

本系列文章是学习siki学院Unity Shader入门(Unity2018.3)笔记

一.二维向量

二维向量运算(加法) :

减法 :

点乘 :

叉乘 :

二维坐标系旋转变换 :

二维坐标平移变换:

二.矩阵

1.变换物体与变换坐标系 :

可知道旋转坐标系相当于以相反的量旋转物体(其他变换也是一样)

因此矩阵可以用来对向量进行变换成另一个向量,如果对坐标系的的每个基向量进行变换,就能旋转拉伸坐标系

2.坐标旋转矩阵

二维旋转矩阵推理过程 :

Θ为正是逆时针旋转,Θ为负是顺时针旋转

三维绕轴旋转推理 :
绕X轴旋转时,X不变,因此旋转矩阵第三行为(1,0,0),然后如左上角的图,Y Z平面进行旋转,由(p q)变成(p` q`)

三维绕任意轴旋转推理 :

v向量绕n轴旋转Θ角度

转换成二维来计算 :

那么要求V`就相当于求垂直v向量 :

将上面的图画成二维 :

V(T)` [垂直v向量] 推导 :
V平行向量就是V向量在n向量的投影,可以用点乘来计算

最后得到V` :

叉乘公式 :

然后代入基向量进行计算 :

最终可得矩阵 :

3.坐标缩放矩阵

均匀缩放 : 等比例分辨
非均匀缩放 : 每个轴的缩放因子不一样

均匀沿轴缩放二维三维 :

V向量沿n方向(任意)缩放 :

推导 :

那么二维上沿任意轴缩放代入公式 :

因此二维沿任意轴缩放矩阵为 :

二维上沿任意轴缩放代入公式 :

三维沿任意轴缩放矩阵为 :

4.正交投影

三维正交投影Z全变成0,参考【线性代数】正交投影

S中第一个[]是投影方向(垂直于平面的单位向量)

二维三维沿任意方向投影是归纳总结出来的

镜像矩阵 : S第二个参数是缩放因子,=0时代表投影矩阵,-1时是镜像矩阵

二维镜像矩阵 :

三维镜像矩阵:

5.切变

扭曲拉伸,面积(体积)没有变化,S : 切变因子

非均匀缩放

6.变换组合

7.行列式

二阶行列式推导 :

将前面的系数提出来就是二阶行列式 :

因此用行列式计算方程组非常简单

叉乘利用行列式计算 :

行列式性质 :

行列变换后行列式不变 :

下三角矩阵行列式计算 :

N阶行列式可转换成上三角/下三角进行计算 :

余子式 :
行列式的阶越低越容易计算,于是很自然地提出,能否把高阶行列式转换为低阶行列式来计算,为此,引入了余子式和代数余子式的概念。
在n阶行列式中,把所在的第i行与第j列划去后,所留下来的n-1阶行列式叫元的余子式。

性质1:

推导 :
i = 1 j= 1:

行列式A中两行(或列)互换,其结果等于-A
因此当i,j != 1时需要变换i-1(行互换) + j-1(列互换) :

性质2:行列式按行按列展开法则

根据性质1推导 :

行列式的几何解释 :

8.伴随矩阵与逆矩阵

跟矩阵的逆有关系

如果M的行列式不等于0就是可逆矩阵
如果矩阵不可逆,称为奇异矩阵
M的逆矩阵计算 :

M的逆矩阵性质 :

9.正交矩阵

单位向量的点击才=1,因此r1,r2,r3是单位向量

正交矩阵是一组标准正交基,但是一组正交基组成的矩阵不一定是正交矩阵,因为长度不一样

10.齐次矩阵

加了一个维度之后结果没有变化 [x,y,z]增加一维,[x,y,z,w]转换回来是[x/w,y/w,z/w],w=1时,不会有变化

4阶平移矩阵 :

R : 旋转矩阵 T : 平移矩阵

W控制平移的开关 : w = 0时,乘以平移矩阵结果跟之前一样

11.变换分类

①.线性变换

②.仿射变换

③.可逆变换

④.等角变换

变换前后,夹角大小方向都不变

12.一般仿射变换

13.透视投影

画成二维 :

可得到 :

一般是向z = d方向投影:

上面得到的是投影结果,投影矩阵可通过逆推得到

要注意,上面的矩阵乘完之后的结果还有需要消元成三维坐标才是最终的结果

你可能感兴趣的:(Unity shader基础学习(三) ------ 数学基础)