《Unity Shader入门精要》学习心得----学习shader的数学基础

点乘公式一:a\cdot b=(a_{x},a_{y},a_{z})\cdot (b_{x},b_{y},b_{z}) = a_{x}*b_{x}+a_{y}*b_{y}+c_{z}*c_{z}

矢量点乘满足交换律,a\cdot b=b\cdot a

点乘的一个几何意义:投影

\hat{a}\cdot b 可以计算得到b在\hat{a}方向上的有符号投影.

通俗地说,一光源它所发出的光线是垂直于\hat{a}方向的,那么b在\hat{a}方向上的影子,就是b在\hat{a}方向上的投影。

投影结果的正负号与\hat{a}和b的方向有关

  • 当它们的方向相反(夹角大于90度)时,结果小于0;
  • 当它们的方向互相垂直(夹角为90度)时,结果等于0;
  • 当它们的方向相同(夹角小于90度)时,结果大于0;

点乘的性质一:点乘可结合标量乘法   (k\mathbf{a})\cdot \mathbf{b}=\mathbf{a}\cdot (k\mathbf{b})=k(\mathbf{a}\cdot \mathbf{b})

点乘的性质二:点乘可结合矢量加法和减法,和性质一类似 \mathbf{a}\cdot (\mathbf{b}+\mathbf{c})=\mathbf{a}\cdot \mathbf{b}+\mathbf{a}\cdot \mathbf{c}

点乘的性质三:一个矢量和本身进行点乘的结果,是该矢量的模的平方  \mathbf{a}\cdot \mathbf{a}=a_{x}a_{x}+a_{y}a_{y}+a_{z}a_{z}=|\mathbf{a}|^{2}

这意味着,我们可以通过点乘来求矢量的模,而不需要使用模的计算公式。

 

点乘公式二: \mathbf{a}\cdot \mathbf{b}=\left | \mathbf{a} \right |\left | \mathbf{b} \right |\cos \theta

补充:

余弦和反余弦关系公式: arccos(x) = a  ,  cos(a) = x 

我们应该知道\cos\theta= 邻边/斜边,由上面投影可知,此处邻边的大小便是\mathbf{b}\hat{a}方向下的投影,斜边为\mathbf{b}的模。

推导出公式一等于公式二。  我们还可以利用公式二求出两向量之间的夹角。

 

叉乘公式:\mathbf{a}\times \mathbf{b}=(a_{x},a_{y},a_{z})\times (b_{x},b_{y},b_{z}) =(a_{y}b_{z}-a_{z}b_{y},a_{z}b_{x}-a_{x}b_{z},a_{x}b_{y}-a_{y}b_{x})

叉乘不满足交换律和结合律,但满足反交换律。

|\mathbf{a}\times\mathbf{b}|=|\mathbf{a}||\mathbf{b}|\sin \theta   和平行四边形面积计算公式一样

 

本人已经被这本书的数理基础搞疯了................ 后面的数学内容还没整理.....

不知道是我数学太弱了还是怎么了...反正看这边书呢.就单纯看他数学基础部分..光靠看这书上的内容,可能还是无法理解这个数学知识,得动手做(这是必要的)还得动手查阅其他资料...

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值