蘇志剛,陳天彧,郝敬堂
(中國民航大學 中歐航空工程師學院,天津 300300)
國內外學者針對機場的視景仿真問題,已經開展了一些有益的探索與研究[1-7]:文獻[5]在3DMAX平臺下開發出某型飛機的三維運動仿真系統,該系統能夠加載飛機模型以及飛行數據文件,并通過終端輸出實時仿真結果;文獻[6]基于3DMAX和Unity3D構建機場場景,實現了飛機運動的三維仿真;文獻[7]利用MultiGen Creator建立了一個飛行視景數據庫,針對其中各類模型的特點提出相應的優化建模方法,結合地面實拍數據,以某機場為原型,建立了一套完成的機場視景數據庫。但以上對機場視景仿真的研究仍然存在建模過程復雜、場景無法快速搭建的問題,不利于進行機場場面的二次開發。
針對上述問題,本文基于X-Plane模擬飛行軟件搭建機場地景數據庫,基于Java3D API對機場視景仿真系統體系結構和功能模塊進行設計。X-Plane是一款包括世界各地機場地景和多種機型的模擬飛行軟件[8],Java3D是用來開發三維圖形和3D應用程序的編程接口[9]。
為滿足機場視景仿真的需求,為用戶提供逼真的機場地景觀察環境,系統需要產生的主要視覺信息為:地貌與實際相符的機場地景和豐富可調的環境背景。其中,機場地景要求機場具有相應的地標、跑道、停機坪、機庫、塔臺等具有細節紋理的建筑物。環境背景包含具有色彩和方向特性燈光,以及能見度與距離相關的大氣衰減效果。
為了讓用戶有更好的觀察效果以及更利于系統進行基于機場場面監視的二次開發,視景仿真系統至少應具有以下性能:具有觀察視角和漫游路徑可調的場景漫游功能;場景觀察效果流暢,畫面無卡頓,圖形更新率不小于25幀/秒;場景的能見度、視景圖像亮度、霧等環境背景均可調。
根據設計需求,將機場視景仿真系統結構設計為數據層、接口層和應用層。數據層存儲以X-Plane模擬飛行軟件的地景數據為基礎的地景數據庫,為系統提供數據支持。接口層包括地景數據解譯動態鏈接庫和坐標轉換動態鏈接庫。調用地景數據解譯動態鏈接庫可以實現機場地景文件的解譯,獲取需要搭建的機場信息;調用坐標轉換動態鏈接庫可以實現地理坐標系與觀察場景坐標系的轉換。應用層包括地景數據管理、視景多模型顯示和人機交互3個功能模塊,各功能分析詳見1.2小節。系統的體系結構設計如圖1所示。

圖1 機場視景仿真系統體系結構
根據系統功能需求和性能需求的分析,現將機場視景仿真系統設計為地景數據管理模塊、視景多模型顯示模塊和人機交互模塊,如圖2所示。

圖2 機場視景仿真系統功能結構
(1)地景數據管理模塊
地景數據管理模塊通過調用地景數據解譯動態鏈接庫和坐標轉換動態鏈接庫,對地景數據庫中的核心地景數據進行解譯和坐標轉換,完成對機場信息、建筑物模型信息和地形多邊形信息的預處理,為機場場景的快速搭建提供數據支持。
(2)視景多模型顯示模塊
視景多模型顯示模塊負責為觀察場景添加豐富可調的環境背景,主要包括光照模型和大氣衰減模型的設置。其中,光照模型負責產生具有色彩和方向特性的環境燈光,大氣衰減模型負責產生能見度與距離相關的大氣衰減效果。
(3)人機交互模塊
人機交互模塊負責添加觀察視角和漫游路徑可調的場景漫游等功能,使用戶通過簡單的操作獲得更多的視覺信息,增加系統的交互性和實用性。
地景數據庫是整個視景仿真系統的數據基礎,它的質量直接影響到整個系統的顯示效果。本系統選用模擬飛行軟件X-Plane的地景模型庫作為數據基礎。X-Plane作為一款逼真的模擬飛行軟件,擁有一套完整且豐富的地景模型庫,能夠為用戶提供全世界超過200個機場的地景模型。X-Plane的地景模型庫為系統提供了完整且逼真的機場地景信息和模型,保證了機場地景視景仿真的真實感和準確性。
X-Plane中使用的地景是由描述各種實體的模型文件和機場核心數據文件組成的。其中,模型文件主要包括描述建筑物的三維模型文件和描述地形的覆蓋多邊形文件;機場核心數據文件則記錄了搭建整個機場場景所需的核心數據,主要包括:機場的名稱、類型、ICAO代碼、經緯度覆蓋范圍;機場范圍內所有建筑物模型的名稱、經緯度;機場范圍內所有地形多邊形的名稱、頂點坐標、頂點索引規則;對機場范圍內所有建筑物模型和覆蓋多邊形等單獨存儲起來的地景模型文件的引用信息等。
為滿足系統設計的要求,本文建立的機場地景數據庫使用X-Plane地景模型庫作為數據基礎,將地景數據分為機場核心數據、建筑物模型和地形多邊形3種類型。其中,包含機場核心數據的地景文件具有特殊的文件格式,需要調用地景數據解譯動態鏈接庫進行解譯,地景數據解譯動態鏈接庫是基于開源X-Plane地景處理工具DSFTOOL進行仿寫的動態鏈接庫,可以實現對X-Plane中地景文件的解譯。此外,在X-Plane中建筑物模型和地形多邊形的位置信息都是以經緯度的形式存儲的,在以外部文件的形式將其加載到場景之前,需要調用坐標轉換動態鏈接庫對其位置信息進行坐標轉換,坐標轉換動態鏈接庫是基于地圖投影坐標轉換公式進行封裝的動態鏈接庫,可以實現地理坐標系與觀察場景坐標系的轉換。地景數據庫的E-R模型如圖3所示。

圖3 地景數據庫E-R模型
由于X-Plane中地景文件格式的特殊性,地景信息經過解譯后才能被獲取和使用,為實現機場場景的快速搭建,減少場景繪制過程中系統資源的消耗,需要對地景數據庫中的地景信息進行解譯和預處理,對搭建機場場景所需的關鍵地景數據進行管理和控制。地景數據管理模塊通過對地景數據解譯動態鏈接庫和坐標轉換動態鏈接庫的調用實現對地景數據的解譯和預處理,具體步驟如下:首先,調用地景數據解譯動態鏈接庫解譯地景文件,獲取需要搭建的機場信息;然后,對建筑物模型和地形多邊形中“所屬機場”屬性進行索引,篩選出所有屬于所選機場的建筑物模型和地形多邊形;隨后,調用坐標轉換動態鏈接庫,將篩選出的建筑物模型的經緯度坐標和地形多邊形的頂點坐標轉換為場景坐標系下的坐標;最后,將轉換后的坐標信息分別存儲到相應的字符串組中,等待系統指令進行下一步的調用和處理。
地景信息管理模塊通過對地景數據的解譯和預處理,避免了場景搭建時對地景數據庫中無關建筑物模型和地形多邊形的加載與渲染,減少了場景繪制過程中系統資源的消耗,對機場地景的快速加載起到了至關重要的作用。
視景多模型顯示模塊使用Java3D API進行編程開發,為了產生豐富可調的環境背景,需要建立光照模型和大氣衰減模型。
在計算機圖形學中,給光反射建立一個非常精確的模型是極其復雜且不切實際的。計算機圖形學中的一般做法是建立一個高效的計算模型,同時又能很好地模擬視覺的真實感。經典的Phong光照模型是一個在計算效率和繪制質量兩者之間取得平衡的模型,它在計算機圖形學中得到了廣泛的應用,因此本文選用Phong模型作為視景顯示的光照模型。
在Phong模型中,表面上一點的光線強度由光照式(1)給出
I=Iaka+Ipkdcosθ+Ipkscosnα
(1)
式中:Ia和Ip分別表示環境光源和點狀光源發出的光線強度,在Ip中光線的衰減已經得到考慮。系數ka、kd與ks分別對應于環境反射、漫反射與鏡面反射的反射系數,這些系數由反射對象表面的材質屬性來決定。n是鏡面反射指數,也是由材質決定,指數越大,高光的區域就越集中。
對波長連續的光譜,本文選用RGB顏色模型,針對該顏色模型中的每一個顏色分量(紅、綠、藍)應用上述光照公式,來計算各個顏色分量的光照強度。
Java3D API支持Phong光照模型,當一個可視對象受到光照時,就可以依據該模型來進行繪制。通過設置光照模型,可以為顯示場景生成包含具有色彩和方向特性的燈光環境背景。
大氣衰減模型的定義請參見文獻[10]。本文通過對景深效果的處理建立大氣衰減模型,模擬大氣衰減所產生的效果。景深原理和相關計算公式的詳細分析請參見文獻[11]。
某個繪制點的最終顏色可以由式(2)得出
C=f·C0+(1-f)·Cf
(2)
式中:C0是對象本身的顏色,Cf是霧的顏色,霧因子f是一個關于觀察者距離的遞減函數。因此,當對象距離觀察者越遠,霧的顏色權重越大,而對象自身顏色的權重越小。此時,對象看起來將會消失在霧里。霧因子f可以由式(3)中的函數表示
(3)
式中:z是到觀察點的距離,front和back是表示霧范圍的常數,f的值在范圍[0.0,1.0]之間變化。
Java3D提供Fog類葉節點來支持景深效果處理。在Fog節點下,通過構造線性函數來創建一個線性霧:Li-nearFog對象,其霧因子是式(3)中定義的線性函數。通過設置大氣衰減模型,可以為顯示場景生成顏色可調且能見度與距離相關的霧效果。
系統測試的硬件環境為聯想臺式計算機,配置信息為:雙核四線程i7-3770CPU、8GRAM、200 G硬盤;系統測試的軟件平臺為Eclipse Java Oxygen。
以上海虹橋機場、長沙黃花機場和北京南苑機場為例,機場三維場景的顯示效果如圖4所示。

圖4 機場視景仿真效果測試
構建機場場景時,場景內圖形的多邊形數反映了整個場景的復雜度,3個機場場景需要繪制的圖形多邊形數和場景漫游時的每秒幀數FPS見表1。
如表1所示,3個機場需要加載的圖形多邊形數量不同,場景的復雜度不同。其中,上海虹橋機場的多邊形數最多,場景內模型的復雜多最高,在場景繪制時消耗的時間和資源也最多。在進行場景漫游時,3個機場的FPS都在25幀/秒以上,動畫顯示連貫,成像距離可動態調整,能

表1 機場復雜度與FPS對比
夠為用戶提供視角可調且連貫清晰的場景顯示效果,也為系統的二次開發提供了可靠的機場地景顯示平臺,符合系統設計的性能要求。
圖5是對上海虹橋機場進行背景環境效果的測試。由圖5(a)可見,通過對光照模型的設置,系統可以生成顏色、亮度可調的背景環境光,模擬生成白天和黑夜的顯示效果;由圖5(b)可見,通過對大氣衰減模型的設置,系統可以模擬大氣衰減所產生的效果,生成顏色可調的霧背景。系統生成的機場觀察場景具有豐富可調的環境背景以及大氣衰減效果,場景的能見度、視景圖像的亮度、背景燈光和霧的顏色均可調。黑夜、霧等背景的添加可以更有效幫助管制員進行有針對性的分析、驗證和演練,符合系統設計的性能要求,進一步提高了系統的實用性。

圖5 環境背景效果測試
本文基于X-Plane模擬飛行軟件搭建機場地景數據庫,基于Java3D API開發多模型的交互式的機場視景顯示平臺,實現了機場地景的快速加載和可視化。系統測試結果表明該系統可以快速建立地貌與實際相符的機場地景,具有豐富可調的環境背景,可以在此基礎上進行基于機場場面運行仿真系統、機場起降指揮系統等服務于機場場面監視的二次開發,具有較高的實用性和靈活性,為機場的視景仿真提供了一個可行的方案。