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)

用途:計算垂直於一個平面、三角形的矢量。還可用於判斷三角面片的朝向

 

 

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