分類
OpenGL中坐標(biāo)系主要分為兩大類
- 右手系
- 左手系
如圖所示
右手系需要遵循右手法則并闲,左手系需要遵循左手法則
常用坐標(biāo)系
而我們常用的坐標(biāo)系主要有以下幾種
- 世界坐標(biāo)系
- 物體坐標(biāo)系
- 慣性坐標(biāo)系
- 照相機(jī)坐標(biāo)系
-
NDC 標(biāo)準(zhǔn)化設(shè)置坐標(biāo)
各個(gè)坐標(biāo)系相應(yīng)的說明如圖所示
物體、慣性、世界三個(gè)坐標(biāo)系之間的關(guān)系
在物體成像到屏幕的過程中,需要經(jīng)過這三個(gè)坐標(biāo)系的相互轉(zhuǎn)換,慣性坐標(biāo)系是物體坐標(biāo)系向世界坐標(biāo)系轉(zhuǎn)換的”重點(diǎn)“
- 物體坐標(biāo)系僅通過
旋轉(zhuǎn)
即可轉(zhuǎn)換到慣性坐標(biāo)系 - 慣性坐標(biāo)系僅通過
平移
即可轉(zhuǎn)換到世界坐標(biāo)系
如圖所示
物體成像至屏幕需要經(jīng)歷的坐標(biāo)變換
即 3D物體轉(zhuǎn)換成2D圖像的變化過程
- 模型變換稼病,涉及模型矩陣:物體坐標(biāo) --> 世界坐標(biāo)
- 視變換(例如平移,旋轉(zhuǎn)掖鱼,縮放等)然走,涉及觀察者矩陣:世界坐標(biāo) --> 攝像機(jī)坐標(biāo)
- 投影變換,涉及投影矩陣:攝像機(jī)坐標(biāo) --> 裁剪坐標(biāo)
- 透視除法: 裁剪坐標(biāo) --> NDC
- 視口變換:NDC --> 屏幕坐標(biāo)
在這個(gè)變換過程中锨用,屬于OpenGL定義的坐標(biāo)系有3個(gè)
- 裁剪坐標(biāo)系
- 規(guī)范化設(shè)備坐標(biāo)系丰刊,即NDC
- 屏幕坐標(biāo)系
屬于用戶自定義坐標(biāo)系同樣也有3個(gè)
- 物體坐標(biāo)系
- 世界坐標(biāo)系
- 照相機(jī)坐標(biāo)系
其中下列的變換操作是用戶可以自定義變換的,即可以由用戶根據(jù)需要自行制定增拥,這些變換使在頂點(diǎn)著色器中完成
- 模型變換 Model
- 視變換 View
- 投影變換 Projection
以下兩種是屬于OpenGL 中的變換啄巧,即由OpenGL自動(dòng)執(zhí)行,在頂點(diǎn)著色器處理后的階段完成
- 透視除法
- 視口變換