Shader学习第四篇: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。如下

在这里插入图片描述

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

矩阵乘法的一些性质

  • 性质一:矩阵乘法不满足交换律。
    也就是说,通常情况下:AB≠BA
  • 性质二:矩阵乘法满足结合律。
    (AB)C=A(BC)
    矩阵乘法的结合律可以扩展到更多矩阵的相乘。例如,ABCD=((A(BC))D)=(AB)(CD)

向量与矩阵相乘

一个向量可以用(x,y,z)表示,现在我们让向量与矩阵相乘。
行向量与矩阵相乘:
在这里插入图片描述
列向

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小~小

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值