3D遊戲引擎數學基礎1 3D座標係

2021-07-11 12:58:08 字數 825 閱讀 6816

2、3d座標系

有了上面的基礎,過渡到3d座標系簡直是輕而易舉。3d的笛卡爾座標系只是多了乙個z軸,這三條軸相互垂直,共同構成了3d空間。這樣,要在3d空間中定義一點p,就需要3個座標:x、y、z。另外,這3條軸構成了3個平面:x-y平面、x-z平面和y-z平面。如下圖所示。這3個平面很重要,其中每個平面都將控制項分成兩個區域(半空間)。半空間的概念會應用到很多演算法中,所以要好好記住它。3個平面將控制項分為8個子空間,為子空間取乙個名字,叫卦限。卦限沒有編號,筆者也不知道為什麼,有興趣的讀者可以找一下資料然後給筆者科普一下。

於是,z軸帶來了一點小麻煩,那就是:z軸可以向里,也可以向外啊,到底哪邊才是z軸的正半空間呢?因此,產生了兩種不同的3d笛卡爾座標系:左手座標系和右手座標系。

將它們命名為左手座標和右手座標,是因為當用左手握住z軸時,如果其他手指從x軸繞道y軸,則大拇指的方向為z軸正方向。所以,上圖所示的是左手座標系,右手座標系如下圖所示:

本質上,左手座標系和右手座標系並沒有什麼區別,只是習慣上的表示方法不同。兩種座標系之間的轉換也很容易,對3d引擎的要求僅僅是座標系一致就可以了。值得提到的一點是,directx使用左手座標系,opengl使用的是右手座標系。

好了,座標系就講到這裡,非常簡單的知識,雖然簡單,但十分必要,下一節將講到3d數學中另乙個重要的知識點:向量。

由於筆者水平有限,博文中難免會有錯漏之處,還請讀者批評指正。

3D遊戲引擎數學基礎3 向量(下篇)

向量數乘 標量可以與向量相乘,可以直觀聯想到,該運算可以對向量進行縮放。該運算不改變向量的方向,除非標量是負數,這樣向量的方向與原來的方向相反。k u k ux,k uy,k uz 在unity引擎中有對物體進行縮放的功能,其提供在三個座標軸上的縮放,其底層的運算估計就是向量數乘。於是,有需要過載一...

3D數學 座標系

什麼是多座標系?用處是什麼?顧名思義,多座標係指在同一空間的不同座標系。如下圖為了繪製不同的幾何體,有時需要更換乙個相對容易繪製的座標系,這就形成了多座標系。該如何表示各種座標系關係?在遊戲模型中,為了表達乙個模型各個部位,需要建立多座標系。而這些不同的座標系又有巢狀關係 如耳朵座標系巢狀在頭部座標...

3D遊戲的數學基礎

第1章 向量 1.1 向量的性質 1.2 點積 1.3 叉積 1.4 向量空間 1.5 本章小結 習題第2章 矩陣 2.1 矩陣的性質 2.2 線性方程組 2.3 逆矩陣 2.4 行列式 2.5 特徵值與特徵向量 2.6 對角化 2.7 本章小結 習題第3章 變換 3.1 通用變換 3.1.1 正交...