投影矩陣備忘

2021-05-22 13:09:17 字數 861 閱讀 6795

投影矩陣(project matrix)本意是將不規則的檢視體(view volume)變換成乙個單位立方體,但投射到螢幕時,z被丟棄了,所以造成了2d投影的假象.注意這是錯覺,實際概念應該是投射到單位立方體空間,是空間投射的概念.

需要注意的是,opengl最終投射到單位立方體[-1,-1,-1], [1, 1, 1],而directx則不是,它的投影矩陣將z投射到[0, 1].

丟棄掉z後,就得到[-1,-1],[1,1]的平面投射範圍,為計算投射到的視窗螢幕座標,將x,y的值域,乘0.5,加0.5,對映到[0,1]值域,再分別乘視窗螢幕寬或高,才得到最終的視窗螢幕座標.

經過opengl或directx的投射矩陣變換後的頂點,稱作在clip space空間內,即單位立方體空間內.

為得到最終螢幕視窗座標,將上述變換使用矩陣表達為:

0.5, 0, 0, 0.5,

0, 0.5, 0, 0.5,

0,   0, 0, 0,

0,   0, 0, 1

為得到opengl的投射立方體的矩陣為:

0.5, 0, 0, 0.5,

0, 0.5, 0, 0.5,

0,   0, 0.5, 0.5,

0,   0, 0, 1

為得到directx的投射立方體的矩陣為:

0.5, 0, 0, 0.5,

0, 0.5, 0, 0.5,

0,   0, 0, 0,

0,   0, 0, 1

投影矩陣前的頂點w總是為1, 正射投影矩陣後的頂點w還是為1, 但透視投影矩陣後的頂點w開始不為1.

投影矩陣詳解

視錐就是場景中的乙個三維空間,它的位置由視口的攝像機來決定。這個空間的形狀決定了攝像機空間中的模型將被如何投影到螢幕上。透視投影是最常用的一種投影型別,使用這種投影,會使近處的物件看起來比遠處的大一些。對於透視投影,視錐可以被初始化成金字塔形,將攝像機放在頂端。這個金字塔再經過前 後兩個剪下面的分割...

投影矩陣推導

投影變換是計算機圖形學的基礎,理解並推導投影矩陣也是很有必要的。正交投影比較簡單,沒有透視失真效果 近大遠小 而透視投影比較符合人類的眼睛感知,平行線在遠處會相交於一點。投影是通過乙個4x4的矩陣來完成的,將視錐對映成標準觀察體 齊次裁剪空間 opengl採用的是右手座標系,z軸朝螢幕向外,因此觀察...

投影矩陣介紹

一般我們是將相機模型簡化成針孔相機模型,那麼相平面與相機座標系之間的關係為 通常為了方便,會把相平面放在小孔與目標點之間。下面就介紹下相平面投影的三種不同方法。通過相似三角形 下圖兩個虛線三角形 可以得到下列關係 展開就是 這裡x h等為齊次座標系座標,x等為相機座標系點,x等則為相平面上的透視投影...