謝國平
(中船重工集團公司第七〇九研究所 武漢 430074)
如何在二維的顯示器平面上顯示三維立體圖像是許多從事虛擬現實工程人員所關心的一個問題。虛擬現實(Vitual Reality)正是在這個需求上展示起來的計算機領域的新技術,它綜合了計算機圖形學技術、多媒體技術、傳感器技術、人工智能、仿真技術等多種學科。虛擬現實技術的產生為三維圖像的二維顯示提供了很好的解決方法,因此在圖像視頻領域應用極為廣泛,發展前景廣闊。
視景仿真是虛擬現實技術的主要應用之一,它以三維動畫的形式再現真實環境,目前已在許多領域得到使用,如地形地貌模擬,城市建筑模擬,鐵路公路交通狀況模擬等[1~3]。近年來,視景仿真更廣泛地用于軍事領域,主要用在仿真平臺、模擬演習等方面,它可以營造逼真的虛擬場景,并給操縱人員提供充足的戰場信息,從而滿足操作人員與戰場環境之間的信息交互[4]。
本文以現有的成熟的軟件為開發工具,研究了飛機在不同的環境中跟蹤的三維視景顯示問題。對飛機和環境分別用不同的算法建模,然后用不同的算法進行紋理和渲染,最后用坐標變換的方法,將三維實體飛機動態加載到三維環境視景中,實現飛機的三維顯示跟蹤。
對待跟蹤的飛機的建模分兩類,分別為實物模型仿真和數學模型仿真[5]。其中,實物模型仿真針對的是飛機的外觀和結構,數學模型則需要了解飛機的動力學和物理模型。三維仿真系統的總體結構框架如圖1所示。

圖1 仿真總體框架
其中飛機模塊實現飛機進行機動飛行時的三維控制與顯示;環境模塊構建飛機在飛行時所處的環境背景,比如海洋、天空或平原山川;視景控制模塊:實現視角的控制,從不同角度觀察視景效果。
系統對三維建模的要求主要是要建立飛機的三維模型。創建飛機實體模型在于模擬飛機的航路規劃和調度整個過程。可用相應的軟件來完成飛機的三維建模,建模流程如圖2所示。

圖2 三維模型建模流程圖
飛機實體建模可分為以下幾步[4]:
1)模型數據采集
虛擬實體外觀與幾何形狀等數據主要來自設計圖紙和一些實地測量參考數據。飛機需要收集的數據主要是飛機的外型輪廓的尺寸和飛機外型輪廓照片,對某一型號飛機的結構尺寸進行計算和分析得到飛機的數據。
2)模型的層次結構
通過數據采集,就可以確定飛機的大體結構。按照飛機實體各個部件的位置分布情況,將飛機分解為機頭、機身、座艙、減速板、機翼(副翼、襟翼)、水平尾翼、垂直尾翼、升降舵、尾艙、發動機進氣口、發動機出氣口幾個部分,規劃好的模型的結構如圖3所示。

圖3 飛機實體模型層次結構示意圖
3)飛行實體的可視化建模
按照所確定的模型層次結構和飛機實體部件位置,在Creator中利用建模工具箱逐層進行可視化建模。
4)實體模型的冗余處理
實體外部觀察模型有不可視的部分,去除它們不會影響實體的視覺效果,而消除這些冗余多邊形可以降低整個場景的復雜度,減少計算機負荷,提高計算速度。
經過以上四個步驟,基本建成了飛機的幾何模型如圖4。

圖4 飛機幾何模型
飛機的飛行背景一般有海洋、陸地和天空。所以本文中所需要的環境仿真是這些景物在計算機中的二維體現。仿真的過程包括獲得衛星或其它圖像探測設備提供的數據信息,然后對其進行插值及網格化處理,再應用仿真軟件中的相應算法生成曲面模型,最后貼上真實的衛星紋理圖像并進行實時渲染,完成實時的三維視景的生成。其過程如圖5所示。

圖5 實時場景生成三維視景過程框圖
三維視景的紋理通常都是通過現場拍攝、虛擬生成和衛星圖像等方法獲取[6~7]。現場拍攝過程繁雜,成本較高,而虛擬視景又因缺少真實性。所以衛星圖像的方法是最可行的,而且大面積海域中的三維視景的顯示并不需要太高的精度,衛星圖像的精度能夠滿足要求。
地形數據的獲取主要依靠的技術是GPS測量、攝影測量、海底回波探測等。通常的場景生成都用“現場拍攝-場景建模”的過程來實現,但是這一過程同樣需要耗費許多人力物力。若去掉現實紋理,僅依據數據生成場景的三維幾何模型,然后再從數據庫中尋找到合適的衛星圖像的紋理進行渲染,也可實時完成場景的生成,并節省人力物力。
從衛星圖像中讀取的數據不僅有限,而且分布散亂,因此需要對其進行網格化處理,以滿足三維建模的需要。目前常用的數據網格有結構化網格、非結構化網格兩種。其中,結構化網格有生成速度快、生成質量好、數據結構簡單等優點,不足之處是適用范圍比較窄。非結構化網格是結構化網格的延伸,它包含了結構化網格的部分。非結構化網格主要是彌補結構化網格不能解決任意形狀和任意連通區域的網格部分的欠缺。非結構化網格的不足是生成技術不成熟,邊界的恢復依然是一個難題。實際應用中,通常是把結構化網格和非結構化網格結合在一起使用。
作為大范圍的虛擬場景,環境所用到的三維模型的數量很多,但大部分離視點很遠,無法辨清許多細節結構。所以,用復雜的模型去描述,即無必要也會影響實時三維顯示的速度。因此,本文采用了LOD(Levels of Detail)技術,針對不同的顯示環境,調用不同層次的描述模型進行渲染顯示。在不影響畫面視覺效果的條件下,通過逐次簡化景物的表面細節來減少視景的幾何復雜度,從而提高繪制算法的效率。
用LOD 技術進行渲染顯示的具體過程如下:
1)判斷觀察視點的位置,計算當前位置到顯示目標的距離;
2)根據距離計算顯示區域在顯示屏幕上的投影面積;
3)根據預設參數選擇渲染目標區域在金字塔法管理模式的數據層級和經緯度塊信息;
4)調出圖像數據進行快速渲染顯示。
采用LOD 技術時應注意不同LOD 模型之間切換時容易出現“突變”現象。解決的方法主要有兩種:一種是將物體看作是兩個不同LOD 模型的混合,賦予不同LOD 模型相應的權值,且權值可以動態調整;另一種方法是“Morping”,即動畫變形法,建立不同層次模型間物體的對應關系,利用中間插值得到物體的綜合描述。
在實際情況中,為了定位的準確,飛機在飛行時采用的是大地坐標系,位置由地球的經度、緯度和海拔高度確定。而在三維視景仿真中,由于視景能展示的環境相比地球微不足道,加上三維顯示系統的限制,不能直接利用大地坐標來顯示和更新飛機的位置,因此系統需要把接收到的飛機所在的大地坐標系信息轉換成直角坐標系的信息。這樣的步驟稱為坐標轉換[8~9]。
建立仿真環境下的新坐標系,其原點A(j1,w1,0)為大地坐標系中任取的某點B(j2,w2,h2),XOY平面為B點處的水平面,正東為X軸的正方向,正北為Y軸的正方向,高度為大地坐標系中的高度值。其中,j表示經度,w表示緯度,h表示海拔高度,R(w)為地球的緯半徑,則兩個坐標系之間的轉換矩陣為

則經緯度地心坐標為

則B相對于A的直角坐標(x,y,z)可由下式求得

令B為飛機所處的點,則可用式(5)來求解飛機相對于新坐標的直角坐標信息,從而完成坐標的轉換。
紋理映射技術是把二維圖像上的像素值映射到三維實體模型對應點的技術,目的是產生特殊的效果和增強實體模型的真實感[10]。
飛機的紋理數據來源于實地攝影照片或常用材質圖片庫。當收集工作結束時,要對收集到的數據進行初步處理,去掉不正確或冗余的部分,同時不損害數據的精度;然后用相應的軟件將數據裁剪并轉換成系統支持的紋理二維圖像格式,最后將標準格式的紋理數據分類整理并存儲起來。由于紋理數據可以存儲和反復使用,紋理映射也是簡化復雜三維建模的有效方法。
在用二維標準格式的紋理數據對三維模型進行映射時,應通過軟件對飛機各部分的紋理進行提取、分析和修正,以保證最終生成的飛機三維紋理能最大程度地反映其真實性。

圖6 飛機模型(加紋理)
經過紋理映射后,飛機的幾何模型效果如圖6所示。
環境的建模到后期也要用到紋理映射技術,不同的是環境紋理通常用的是不透明紋理技術,而實物的紋理映射適合透明紋理技術[9]。
紋理貼圖可以預先設計并存儲一些常見的特效,如果需要一些復雜情況的特效,則可用粒子系統來模擬。粒子系統采用大量具有一定生命力的粒子來描述自然界不規則的模糊景物。每一個粒子均具有一組屬性,如形狀、大小、顏色、位置、運動速度、運動方向、生命周期等,所有屬性都是時間的函數。隨著時間的變化,每個粒子都要經過“產生”、“運動”和“消亡”這三個具有隨機性的階段[10]。按照粒子系統工作原理每次循環都對粒子進行操作,改變其屬性就可產生不同的效果。
應用粒子系統進行特效繪圖按如下步驟循環:
1)在系統中按一定的頻率產生新的粒子,初始屬性隨機;
2)更新現存粒子的屬性,同時所有粒子的生命遞減一個時間步長。粒子屬性的更新的方法有很多種,比如速度和位置就可采用等加速度的方法,如下式

3)刪除系統中生命周期為0的所有粒子。
4)繪制并顯示所有有生命的粒子。
通過紋理映射和粒子貼圖后的飛機飛行環境仿真圖如圖7所示。

圖7 環境仿真
三維顯示系統可將虛擬現實技術應用到指揮控制系統中,將戰場變化的過程、戰場態勢發展、雙方兵力對抗過程等可視化,增強了指揮控制系統的真實感,以及指揮人員的浸入性和交互性,為提高指揮自動化系統的實用性提供了依據和參考。
后續工作中,我們會研究飛機在飛行時的動力學理論,構建相應的數學模型,并加入到實體和場景的三維仿真中,使仿真的效果更接近于實際,在實際應用中對飛行的跟蹤和狀態監測更加準確。
[1]黃友能,杜霄,唐濤.城軌列車運動仿真系統中三維視景研究與實現[J].系統仿真學報,2006,18(12):3430-3433.
[2]羅秋鵬,高曉光,楊建國.空戰三維視景仿真設計與實現[J].電光與控制,2008,15(10):33-36,73.
[3]Baciu G,Wong W.Rendering in object interference detection on conventional graphics workstations[C]//In:Proceedings of the Pacific Graphics,Korea,1997.51-58.
[4]Xianjian Chen,Gang Liu,Guanxin Hong.Design of the Virtual Training Platform for Carrier Aircrafts Approach and Landing[C]//Communications in Computer and Information Science,2012:238-247.
[5]羅木生,侯學隆,徐君明.基于Vega Prime的直升機反潛機動三維視景仿真[J].火力與指揮控制,2012,37(8):143-146,150.
[6]Hei Lin.Design and Research of Visual Simulation System Based on HLA[C].Communication in Computer and Information Science,2012:412-419.
[7]Xiao Xu,Wanyan Xiaoru,Zhuang Damin,Wei Zongmin.Ergonomic Design and Evaluation of Visual Coding for Aircraft head-up Display[C]//5thInternational Conference on Biomedical Engineering and Informatics,2012:748-752.
[8]Z Li,C Xie,X Shi.Research on Simulation of Low Altitude Penetration Technologic for Target of Radar Training Simulator[J].Applied Mechanics and Matericals,2013,300-301:1610-1616.
[9]李倩.飛機起飛調運航路規劃、調度與仿真研究[D].哈爾濱工程大學,2009.
[10]祝明,楊然.三維視景仿真系統的軟硬件開發研究[J].飛機設計,2012,32(1):39-42.