韓魯佳等
【摘 要】現(xiàn)實世界是一個三維立體世界,可以輕易地分辨出物體的形狀大小、遠近高低及其之間的相對位置。而在顯示器和繪圖機上僅能用二維空間來表示三維空間,因此需要應(yīng)用投影變換使其維數(shù)降低,達到合理逼真的顯示。投影變換是一種重要而基本的三維幾何圖形變換,在實際中應(yīng)用廣泛。針對投影變換,主要介紹了其分類方法、基本原理,并淺析了投影變換的一些應(yīng)用,給出了具體的推導(dǎo)步驟和方法,最后說明了投影變換在飛行模擬器視景仿真中的應(yīng)用及其重要性。
【關(guān)鍵詞】投影變換;透視投影;平行投影;斜投影;視景仿真
The Principle and Application Elementary Analysis of Projection Transformation
HAN Lu-jia LI Song-wei
(Aviation University of Air Force Military Simulation Technique Institution, Changchun Jilin 130022, China)
【Abstract】The real world is a 3D world. We can easily recognize the shape,the size,the height,the distance and the relative position of the objects. In the display and the drawing machine, the three-dimension space can only be represented in two-dimension space.Therefore,we need to reduce the dimension to aquire a reasonable and realistic display.The projection transform is an important and basic 3D geometry transform, which is widely used in practice. Aiming at the projection transformation, mainly introduces the classification method,the basic principle,analyzes some application of projection transformation and gives the specific procedures and methods. Finally, explains the projection transform is viewed the importance and application of scene simulation in a flight simulator.
【Key words】Projection transform; Perspective projection; Parallel projection; Oblique projection; Visual simulation
在計算機顯示、地圖、工程圖、機械圖中,經(jīng)常要用到投影變換。在三維立體空間中,我們可以輕易辨別出物體的大小、形狀及其空間位置關(guān)系。然而,當需要將真實物體顯示或記錄時,往往要將其變換為二維空間圖形。投影變換可以降低三維物體的空間維度,使其能夠在顯示器和繪圖機等二維圖形顯示器中表達三維空間物體的一些必要信息。投影變換在計算機圖形學(xué)中有著廣泛的應(yīng)用。
1 投影變換的分類
投影變換是將三維物體變?yōu)槎S圖形表示的過程[1],投影變換的目的是顯示圖形[2],變換過程中用到的矩陣稱為投影矩陣[3]。根據(jù)投影中心和投影平面之間的距離不同,基本的投影變換有兩種,分別是平行投影和透視投影[4],如圖1所示。平行投影的投影中心位于無窮遠,投影線互相平行。這樣產(chǎn)生的投影結(jié)果和物體與投影平面的相對位置無關(guān),對實際物體信息的反映較差。例如在三視圖中只能夠表達物體兩個方向的信息[5],如果改變物體的位置或是投影方向,則可以讓平面投影圖表達物體在三個方向上的信息,使圖形的真實感大大增強。而透視投影能夠根據(jù)觀察點與物體的遠近位置不同,采用中心投影法,正確地描述出物體在三維空間中的遠近位置和相互層次之間的關(guān)系,使人獲得有立體感,有深度的空間視覺效果。
在平行投影中,根據(jù)投影方向是否與投影平面垂直,可以分為正交投影和斜投影[6]。投影方向與投影平面垂直叫做正交投影,不垂直則稱作斜投影。在正交投影中,根據(jù)視向與坐標軸的關(guān)系分為多視角正投影和正軸測投影。正軸測投影又依據(jù)有多少個主軸被同等地縮短,分為正等測、正二測、正三測投影。同理,斜平行投影分為斜等測和斜二測投影。
在透視投影中,依據(jù)視向與世界坐標系的相對關(guān)系,可以分為一點、兩點和三點透視。它們的視向區(qū)別和滅點個數(shù)如圖2所示。
2 投影變換的原理
在坐標系oxyz中,假設(shè)投影平面就是z=0,推導(dǎo)透視投影的計算公式。設(shè)視點為V(xv yv zv),空間中任一點M(x y z)在平面z=0上的投影為N(x1 y1 0),則:
此時,只要知道空間中一點的坐標,就可以計算出其在面z=0上的透視投影的坐標。
用矩陣表示為:
在實際應(yīng)用當中,如果我們能夠采用自己規(guī)定的坐標系,可以將投影平面設(shè)置在面z=0處,則用上面推出的公式計算即可。但是這樣做有一定弊端,一旦投影平面固定在面z=0,對于某些物體只能得到物體的一點透視且與視點位置無關(guān),而往往二點透視、三點透視具有更好地空間感、立體感,更加生動逼真。因此,通常情況下我們不能要求投影平面的位置,需要允許投影平面的改變。下面我們討論在坐標系oxyz中,投影平面是任意平面的情況。
首先定義投影平面,在坐標系oxyz中建立一個任意的投影平面。給定坐標系oxyz中的任意一點O′(x′ y′ z′)和法相量R′(xr′ yr′ zr′),則投影平面就是過點O′且與法相量R′垂直的平面。通過改變點O′和法相量R′的參數(shù),可以方便地改變投影平面的位置。然后需要在投影平面上建立一個坐標系o′x′y′z′,給出o′y′的方向。給定一個向量W(xw yw zw),規(guī)定o′y′的方向是向量W在投影平面上垂直投影的方向,o′z′的方向是法相量R′的方向。如果坐標系o′x′y′z′的投影平面恰好是面z′=0,則可以在變換坐標系后直接利用公式(1)、(2)計算投影。設(shè)o′x′,o′y′,o′z′軸的單位方向向量(x11 y12 z13),(x21 y22 y23),(x31 y32 z33)。由于o′z′軸與法相量R′方向一致,o′x′軸與W×R′方向一致,o′y′軸方向與o′x′和o′z′軸單位向量的向量積方向一致, 則有(x31 y32 z33)=(xr′ yr′ zr′)/,(x11 y12 z13)=(b1 b2 b3)/,(x21 y22 y23)=(z13y32-y12z33 x11z33-z13x31 y12x31-x11y32)
從坐標系oxyz到坐標系o′x′y′z′的變換為
這樣在坐標系oxyz中的投影方向和視點坐標均可通過變換得到其在坐標系o′x′y′z′中的量(′ ′ ′)和(x′ y′ z′)。在透視投影中變換投影方向時,令x′=0,y′=0,z′=0使(3)取齊次式,令
3 幾種典型的投影變換
我們通常所說的三視圖屬于正平行投影。正投影由空間三個坐標軸中的任意兩個表達[8],由于其仍保有其深度信息,在有多個物體顯示時具有可以反映前后關(guān)系的特點。而采用變換矩陣將第三個坐標值變?yōu)?,則無法達到此效果。生成三視圖就是將三維物體投影分別投影到面xoy、面xoz和面yoz上,而通常我們還要將其畫在同一平面上,如圖3所示。
3.2 軸測圖
把一個物體投影到一個投影面上,使它在投影面上的投影能反映它在長、寬、高3個方向的形狀,并能沿軸向測量,這樣的投影叫做軸測投影圖[9]。
(a)原圖 (b)正二測投影 (c)正等測投影
3.2.1 正軸測投影
把物體繞Y軸旋轉(zhuǎn)φ角,再繞X軸旋轉(zhuǎn)α角
3.4 透視投影
物體透視圖具有較強的立體感,直觀,逼真,符合人的視覺習(xí)慣,在建筑、設(shè)計、廣告、藝術(shù)繪畫應(yīng)用廣泛[10]。
圖7 透視投影
由之前的推導(dǎo)可知,計算一個點的透視投影坐標,應(yīng)當先物體坐標系轉(zhuǎn)換視點坐標系,利用中心投影法計算坐標,再還原到物體坐標系。如圖7。設(shè)點O到投影面距離為D,由三角形相似原理知:xs=xe·,ys=ye·,矩陣形式為,記為點P的透視投影矩陣。
計算物體透視投影時,應(yīng)當將物體放入視點坐標系里,原點重合,繞視點坐標系y軸旋轉(zhuǎn)α,繞x軸旋轉(zhuǎn)φ,最后平移一段距離L、M、N,則:
Ty、Tx分別是繞y軸、繞x軸旋轉(zhuǎn)變換矩陣,Tt是平移矩陣,物體透視變換矩陣T=Ty·Tx·Tt·TP。
當α=0,φ=0時,單滅點平行透視變換矩陣為
當α≠0,φ=0時,雙滅點成角透視變換矩陣為
當α=0,φ≠0時,雙滅點成角透視變換矩陣為
當α≠0,φ≠0時,三滅點透視變換矩陣為
4 透視投影變換在飛行模擬器視景顯示中的應(yīng)用
在飛行模擬器中,需要將實際地景顯示在屏幕上,為飛行員提供逼真的視景顯示畫面,使飛行員能夠在模擬飛行訓(xùn)練中感覺更真實,更貼近實際飛行。在將三維空間景物轉(zhuǎn)換到二維投影屏幕上顯示的過程中,由于需要變現(xiàn)出空間景物的遠近,縱深,而不改變物體的真實形狀和拓撲結(jié)構(gòu)[11],這就要用到透視投影變換。我們在PC平臺下使用視景仿真顯示相關(guān)軟件驅(qū)動,并得到了經(jīng)過透視投影變換后的圖像,如圖8所示。 運行環(huán)境為:Inter Core CPU 3.10GHz,內(nèi)存4GB,顯卡GeForce GTX 980 4GB。
5 結(jié)束語
投影變換在計算機圖形學(xué)中應(yīng)用廣泛,具有重要的作用和地位[12]。介紹了投影變換的分類方法,及其基本原理,詳細給出了透視投影和平行投影推導(dǎo)的具體步驟,并計算了一些投影變換的具體應(yīng)用,最后將透視投影應(yīng)用在飛行模擬器的顯示系統(tǒng)中,并在PC環(huán)境中證明了投影變換能夠達到良好的顯示效果,獲得逼真的視覺反饋。
【參考文獻】
[1]范賢德,李松維.計算機成像技術(shù)與應(yīng)用[M].吉林:吉林人民出版社,2008:70-71.
[2]Bjorn Bollensdorff,Uwe Hahnet,Marc Alexa. The Effect of Perspective Projection in Multi-Touch 3D Interaction[J]. Graphics Interface Conference 2012.
[3]陳杰.空間曲面的平行正投影原理[J].水利科技,2002(3):61-62.
[4]王長波,高巖.3D計算機圖形學(xué)[M].北京:機械工業(yè)出版社,2010:49-50.
[5]鐘韜,袁威,左煒亮.系統(tǒng)標定中的透視投影模型[J].兵工自動化,2011-03:30-35.
[6]Donald Hearn,M,Pauline Baker.計算機圖形學(xué)[M].北京:電子工業(yè)出版社,2013:294-295.
[7]唐榮錫.計算機圖形學(xué)教程[M].北京:科學(xué)出版社,2008:59-60.
[8]何援軍.計算機圖形學(xué)[M].北京:機械工業(yè)出版社,2006:99-100.
[9]范幸義.計算機圖形學(xué)[M].3版.重慶:重慶大學(xué)出版社,2008:110-111.
[10]Yang Zhang. Fisheye Distorted Image Calibration using Parabolic Perspective Proj ection Constraint[C]//2012 5th International Congress on Image and Signal Processing.
[11]陳自強.投影透視研究[J].華東理工大學(xué)學(xué)報,2000,26(2):201-205.
[12]李佳田.球面Delaunay三角網(wǎng)的透視投影算法[J].武漢大學(xué)學(xué)報,2011,36(9):1116-1119.
[責(zé)任編輯:湯靜]