Shader中需要数学知识

在Shader的学习中,我们可能需要一些数学知识,我也是学习了一段时间,之前数学的知识都忘了,重新来一遍吧,我把学习的点分享一下。

向量:

点乘:
向量A·向量B = A向量的模 * B向量的模 * cosθ
一般用来计算向量夹角cosθ,这里可以看下Lambert (兰伯特)光照模型这篇文章来感受下在Shader中的向量计算

叉乘: 计算两个向量构成平面的法向量

矩阵:

矩阵相乘必须要满足一个规则:第一个矩阵的列数要与第二个矩阵的行数相同。
而得到的结果一定为:行数为第一个矩阵的行数,列数为第二个矩阵的列数。
一个m行n列的向量A与一个n行r列的向量B相乘,得到m行r列的向量C。
在这里插入图片描述
例如矩阵A的维度是3×2,矩阵B的维度是2×4,那么AB的维度就是3×4。如下

Shader中需要数学知识_第1张图片

另外还有一个计算技巧:
C23的值是从哪计算得来呢?可以看C23的下标,是由第一个矩阵的第2行 乘以 第二个矩阵的第3列得来

你可能感兴趣的:(Unity,Shader快速入门,线性代数,矩阵,Shader)