Unity Shader学习笔记——简单图形学

        二维笛卡尔坐标系:可以通过将自身设置为原点,找到目标离自己的距离和方向

         三维笛卡尔坐标系:定义三个坐标轴和一个原点,这三个坐标轴是该坐标系的基矢量,并且这三条坐标轴之间是互相垂直的,且长度为1,这样的基矢量被称为标准正交基。如果互相垂直但长度不为1,则被称为正交基。

         三维可分成左手坐标系和右手坐标系,二维坐标系可以通过旋转使两个坐标系方向重合,但是三维坐标系可能会有如何旋转都无法方向完全重合的情况,就比如以下两个坐标系。 

        用两种坐标系去描述下列图片的话:

        因此在左手坐标系中,首先向x轴正方向平移1个单位,然后再向z轴负方向移动4个单位,最后朝旋转的正方向旋转60°。而在右手坐标系中,首先向x轴正方向平移1个单位,然后再向z轴正方向移动4个单位,最后朝旋转的负方向旋转60°。

        对于模型空间来说,Unity使用的是左手坐标系。

        对于观察空间(以摄像机为原点的坐标系)来说,Unity使用的是右手坐标系,摄像机的前向是z轴的负方向,也就是说,z轴坐标的减少意味着场景深度的增加。


         一些练习题:

        个人解答:

(1)右手坐标系

(2)旋转后的坐标为(1,0,0),第二个旋转坐标为(1,0,0)

(3)观察空间下为-10,模型空间下为10


        标量和向量的乘除:(注意除法只能是向量被标量除)

         向量的加法和减法:


                向量的模:对于二维向量模的几何意义就是使用了勾股定理,向量的两个分量的绝对值对应了三角形两个直角边的长度,而斜边的长度就是向量的模。

         单位向量:当我们只关心向量的方向而不是模时,就需要计算单位向量,它一般指那些模为1的向量,也被称为归一化的向量。(零向量不可被归一化,因为做除法运算时分母不能为0)


        点积:

         公式一:

        点积的几何意义:投影,也可以知道两个向量的方向关系(前后)

         可以得到以下的性质,性质三代表着我们可以直接用点积来求向量的模,只要对结果进行开平方即可,不过大部分情况下,我们只是想比较两个向量的长度大小,因此可以直接使用点积的结果。

         公式二:

        根据公式二我们可以得到两个向量之间的夹角(在0°~180°) 


 叉乘:叉乘得出来的仍然是一个向量,它的几何意义是可以得到一个同时垂直于这两个向量的新向量,这个新向量的模是a和b的模的乘积再乘以他们之间夹角的正弦值,这个新向量的方向就代表了b在a的左侧或者右侧。


        矩阵:

         矩阵和向量都是数组,那么就可以将两者联系起来,向量可以看成nx1的列矩阵或者1xn的行矩阵,比如向量v=(3,8,6)

        标量和矩阵的乘法: 

        矩阵和矩阵的乘法 :即对于每个元素cij找到A中的第i行和B中的第j列,然后把他们对应的元素相乘然后在加起来。

         因此,矩阵乘法不满足交换律,但是满足结合律。

 一些特殊的矩阵

        方块矩阵:简称方阵,指那些行和列数目相等的矩阵。在三维渲染里,最常用的就是3x3和4x4的方阵。方阵的对角元素是指行号和列号相等的元素,如果一个矩阵除了对角元素外所有元素都为零,那么这个矩阵就叫做对角矩阵。


        单位矩阵:任何矩阵和他相乘的结果还是原来的矩阵,即MI=IM=M


        转置矩阵:是对原矩阵的一种运算,即转置运算。给定一个rxc的矩阵M,她的转置可以表示成,这是一个cxr的矩阵,计算只需要把原矩阵翻转一下即可,也就是说原矩阵的第i行变成了第i列,而第j列变成了第j行。

   


         逆矩阵:不是所有矩阵都有逆矩阵,第一个前提就是该矩阵必须是一个方阵。逆矩阵最重要的性质就是

         如何判断一个矩阵是否可逆,简单来说就是如果一个矩阵的行列式不为0,那它就是可逆的。

 

         逆矩阵的几何意义:矩阵可以表示一个变换,而逆矩阵允许我们还原这个变换


         正交矩阵:正交是矩阵的一种属性,如果一个方阵M和他的转置矩阵的乘积是单位矩阵的话,我们就说这个矩阵是正交的

        根据正交矩阵的定义:如下图可得,矩阵的每一行,即c1,c2,c3使单位矢量,因为只有这样它们与自己的点积才能是1,且他们三个之间互相垂直,这样他们之间的点积才能是0

 

猜你喜欢

转载自blog.csdn.net/weixin_45081191/article/details/129169131