3D基本概念答疑 1

2021-08-22 14:19:16 字數 560 閱讀 3656

答:乙個主要原因是行向量和列向量的區別。

對於變換矩陣m,如果v是行向量,這時使用v左乘 矩陣:

v'=vm (v是行向量)

如果v是列向量,就要使用v右乘矩陣:

v'=mv (v是列向量)

由於向量矩陣之間的乘法(實際也就是矩陣乘法)是不滿足交換率的,所以對於行向量和列向量 ,他們做相同變換的變換矩陣是不一樣的,所以在一些書上看到的變換矩陣和另外一些書上不 一樣。

當用連續多個矩陣變換向量時,對於行向量: v'=vm1m2m3

對於列向量: v'=m3m2m1v

所以當要連線變換矩陣時,相乘順序不一樣,分別是m'=m1m2m3和m'=m3m2m1

directx使用行向量,而opengl使用列向量;線性代數中使用列向量。在書寫時為了方便,常用行向量的轉置表示列向量,如[1,2,3]t表示乙個列向量。這兩種方式沒有什麼優劣之分,只是要注意對於某本書,某篇文章,某套api,某個引擎,要弄清楚他使用的是行向量還是列向量 。

矩陣不一樣可能還有其他原因,比如將頂點變換到攝像機的齊次剪裁空間時,如果遠近剪裁平面z值的範圍設定不同,那麼矩陣也會不同。

3D基本概念

用過3dmax的人都知道,乙個 場景是由很多 模型 model 組成的,而模型就是通常說的 網格 mesh 它是由 三角形面 組成,而每個三角形面又是由 個 頂點 vertex 構成。如圖 材質 materal 和紋理 texture 光有網格模型看上去就是乙個物品的輪廓,為了讓模型具有真實感,我們...

3d基本概念

乙個 場景是由很多模型 model 組成的,而模型就是通常說的網格 mesh 它是由三角形面 組成,而每個三角形面又是由 個頂點 vertex 構成。如圖 材質 materal 和紋理 texture 光有網格模型看上去就是乙個物品的輪廓,為了讓模型具有真實感,我們就要為模型賦予材質和紋理。材質包含...

3D數學基本概念

向量 概念 有大小,有方向的箭頭,但是向量是沒有位置的概念。方向就是從a點指向b點的方向,大小就是a點到b點的距離,這個距離就是向量的長度,叫做向量的模 和向量相關的幾個概念 負向量 和原向量方向相反,大小相等的向量。零向量 大小為0,沒有方向。單位向量 模長為1的向量叫單位向量。如果想讓乙個向量在...