在計算機圖形學和著色器編程中,矢量運算是核心的數學工具之一。矢量用于描述空間中的位置、方向、速度等各種物理量,并在圖形變換、光照計算、紋理映射等方面起著至關重要的作用。本篇文章將詳細講解矢量和標量之間的乘法與除法、矢量的加法與減法、矢量的模與單位矢量、點積與叉積的數學原理及其在Shader中的應用。
矢量與標量的乘法與除法
乘法
矢量與標量的乘法操作將標量與矢量的每個分量相乘,產生一個新的矢量。例如,假設有一個三維矢量 和一個標量 k,它們的乘法結果為:
kv=(kvx,kvy,kvz)
幾何上看,矢量與標量的乘法表示對矢量進行一個大小為 ∣k∣|k| 的縮放。值得注意的是,乘法是交換律的,即:
kv=vk
除法
矢量和標量之間的除法操作并不像乘法那樣直接。實際上,矢量除以標量等同于將矢量乘以標量的倒數,即:
v/k=v?1/k
需要注意的是,除法的運算只能發生在矢量和標量之間,不能進行標量和標量之間的除法操作。