3D數(shù)學(xué)-正交投影
好記性不如爛筆頭啊,還是記錄一下!
概述
正交投影也被稱為平行投影叶堆,不會出現(xiàn)透視投影的近大遠(yuǎn)小
的扭曲現(xiàn)象,
正交投影的推導(dǎo)
構(gòu)建正交投影矩陣相對來說會簡單一些沥匈,由于不存在透視扭曲高帖。
是相機(jī)空間中的一個坐標(biāo)點(diǎn)
表示經(jīng)過透視投影后在
規(guī)范化設(shè)備坐標(biāo)系(Normalized Device Coordinates)
中的坐標(biāo)
表示
近裁剪平面(near clip plane)
的左邊散址,即
表示
近裁剪平面(near clip plane)
的右邊,即
表示
近裁剪平面(near clip plane)
的上邊义起,即
表示
近裁剪平面(near clip plane)
的下邊,即
如圖所示犁罩,可以先行的映射到
規(guī)范化設(shè)備坐標(biāo)系(Normalized Device Coordinates)
中的床估,因?yàn)槲覀儗?shí)際只是將一個長方體縮成一個立方體丐巫,并把它移動到原點(diǎn)勺美。下面我們就來使用線性映射關(guān)系(linear relationship)
來推導(dǎo)正交投影矩陣
現(xiàn)在需要將映射到
,
得范圍是
缎脾,
的范圍是
遗菠,還需要將
映射到
辙纬,
得范圍是
叭喜,
的范圍是
域滥,還需要將
映射到
,由于齊次裁剪空間為左手坐標(biāo)系昂儒,所以需要將z軸反置渊跋,因此
的范圍是
,
得范圍是
可以利用簡單線性插值的方法獲得以下關(guān)系式:
解出可得:
將以上三個關(guān)系式寫成矩陣形式,可得:
就是
正交投影矩陣
投影矩陣的另一種形式
根據(jù)Size(豎直方向上高度的一半)
和Aspect(投影平面的寬高比)
可得出以下關(guān)系:
所以還可以寫成:
本節(jié)教程就到此結(jié)束,希望大家繼續(xù)閱讀我之后的教程材诽。
謝謝大家,再見!
飲水思源
參考文獻(xiàn):
《3D游戲與圖形學(xué)中的數(shù)學(xué)方法》
《OpenGL投影矩陣(Projection Matrix)構(gòu)造方法》
版權(quán)聲明:原創(chuàng)技術(shù)文章脸侥,撰寫不易睁枕,轉(zhuǎn)載請注明出處!