unity shader 矢量

矢量

1、矢量和标量乘法/除法

乘法:2(1,2,3)=(2,4,6)

除法:(1,2,3)/2=(0.5,1,1.5)

注意:对于乘法来说,位置可以互换;但对于除法来说,只能是矢量被标量除,否则没有意义。

 

2、矢量的加法和除法

例子:(1,2,3)+(4,5,6)=(5,7,9)

 

3、矢量的模

模用 |v| 表示,如 |(1,2,3)|=(1²+2²+3²)½ (1/2是开根号的意思。其实也就是开平方再开根号)

 

4、单位矢量

指的是那些模为1的矢量,也被称为 被归一化的矢量

用^v=v / |v| ,v是任意非零矢量

例子:(3,-4) / |(3,-4)|=(0.6,-0.8) (分母取模,再做除法)

零矢量(0,0,0)不可被归一化,因为分母不能为零

 

5、矢量的点积

矢量也可乘法,但和标量之间的乘法有很大不同

矢量的乘法有两种:点积(内积);叉积(外积)

公式一:a·b=(ax,ay,az)·(bx,by,bz)=axbx+ayby+azbz 例子:(1,2,3)·(0.5,4,2.5)=0.5+8+7.5=16

公式二:a·b=|a||b|cosθ (cosθ=邻边/斜边)

点击有什么意义呢?其中最重要的一个是投影

 

6、矢量的叉积

叉积,也叫外积

与点积不同的是,矢量叉积的结果仍是一个矢量

公式:

看起来很复杂,其实是有规律的,如下图,先从中间开始,再从右边,最后左边

 

注意点:

叉积不满足交换律,即a×b≠b×a。实际上叉积满足反交换律。即a×b=-(b×a)

用途:计算垂直于一个平面、三角形的矢量。还可用于判断三角面片的朝向

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章