遊戲開發3D基礎知識

黑色的夢發表於2019-07-31

概念學習:

向量

向量簡介

我們將所有彼此平行的向量進行平移,使其起點與座標原點重合,當某一向量的起始端與座標原點重合,我們成該向量處於標準位置。這樣,我們就可用向量的終點座標來描述一個處於標準位置的向量。 我們通常用小寫粗體字母表示一個向量,又是也是用大寫粗體字母,比如:2D,3D,4D向量分別表示為:u=(u_{x},u_{y}), N=(N_{x},N_{y},N_{z}),c=(c_{x},c_{y},c_{z},c_{w})。 D3DX庫中,類D3DXVECTOR3表示3D空間中的向量。

向量相等

幾何學中,如果兩個向量長度和方向都相同,那麼這兩個向量相等。

向量長度

||u||= sqrt(u_x^2+u_y^2+u_z^2)

向量規範化

向量的規範化就是使向量的模變為1,即變為單位向量。可以通過將向量的每個分量都除以該向量的模來實現向量的規範化。

向量加法

向量加法定義為兩個向量對應分量分別相加,只有維數相同的兩個分量才能進行加法運算。
u+v = (u_x+v_x, u_y+v_y, u_z+v_z)

向量減法

u-v = u+(-v) = (u_x-v_x, u_y-v_y, u_z-v_z)

數乘

標量可以與向量相乘,顧名思義,該運算可對向量進行縮放。
ku = (ku_x,ku_y,ku_z)

點積

點積是向量代數所定義的兩種乘法之一,其運算規則如下:
u*v = u_x*v_x + u_y*v_y + u_z*v_z
上述公式並不具有明顯的幾何意義,由余弦定理,可以發現u*v = ||u|| * ||v|| * cosθ,即兩向量的點積等於兩者夾角的餘弦再乘以兩個向量的模的乘積。

叉積

a\*b = x_1\*y_2-x_2\*y_1 = x_1 \* y_2 - x_2 \* y_1 = a \* b \* sinθ

矩陣

矩陣相等

矩陣數乘

矩陣加法

矩陣乘法

若A為m*n的矩陣,B為n*p矩陣,則乘積AB有意義,且等於一個m*p矩陣

單位矩陣

逆矩陣

矩陣轉置

一個m*n矩陣的轉置是一個n*m的矩陣。我們用符號M^T表示矩陣M的轉置