一種基于工作站的殲擊機(jī)著陸訓(xùn)練模擬器的設(shè)計(jì)與實(shí)現(xiàn)
摘 要: 著陸訓(xùn)練是現(xiàn)代殲擊機(jī)飛行員訓(xùn)練的重要環(huán)節(jié),為了訓(xùn)練飛行員依靠平顯和儀表的數(shù)據(jù)顯示完成著陸過(guò)程,提供成本更低、周期更短、更易普及的訓(xùn)練方法,本文介紹了一種基于PC 的殲擊機(jī)著陸訓(xùn)練模擬器的總體結(jié)構(gòu)的設(shè)計(jì)以及各個(gè)模塊的實(shí)現(xiàn)過(guò)程,著重就該模擬器系統(tǒng)中建立平顯(HUD)和儀表著陸系統(tǒng)(ILS)以及外部三維場(chǎng)景的步驟以及所采用的關(guān)鍵技術(shù)進(jìn)行了闡述,此外還介紹了音響模塊的設(shè)計(jì)及操縱桿的接口程序的實(shí)現(xiàn)。
關(guān)鍵詞: 著陸 模擬器 虛擬現(xiàn)實(shí)(VR) 計(jì)算機(jī)仿真
1 引言
著陸訓(xùn)練一直是飛行訓(xùn)練的重要環(huán)節(jié)。飛行模擬器(Flight Simulator)是虛擬現(xiàn)實(shí)(VR)技術(shù)在工程上的重要應(yīng)用之一,而目前,裝備部隊(duì)的模擬器多為全任務(wù)飛行模擬器,雖功能齊全,但結(jié)構(gòu)復(fù)雜,造價(jià)高昂,不易進(jìn)行大規(guī)模普及性訓(xùn)練,而象起飛著陸這樣的基本科目,也沒(méi)有必要使用大型模擬器實(shí)現(xiàn)普及性模擬訓(xùn)練。在現(xiàn)代高科技戰(zhàn)爭(zhēng)條件下,為使部隊(duì)訓(xùn)練手段現(xiàn)代化,提高部隊(duì)的整體訓(xùn)練質(zhì)量和訓(xùn)練效益,盡快增強(qiáng)部隊(duì)的戰(zhàn)斗力,保障飛行安全,給飛行人員提供既具有真實(shí)的場(chǎng)景,逼真的實(shí)時(shí)數(shù)據(jù)顯示,又兼顧結(jié)構(gòu)簡(jiǎn)單,成本低廉,易于普及特點(diǎn)的訓(xùn)練仿真設(shè)備是十分必要的,也是非常迫切的。本文提出的這種基于PC 的著陸訓(xùn)練模擬器系統(tǒng)正是針對(duì)這一需要而建立的。
2 系統(tǒng)結(jié)構(gòu)
該著陸訓(xùn)練模擬器系統(tǒng)是一個(gè)人-機(jī)閉環(huán)系統(tǒng),主要用來(lái)模擬飛機(jī)著陸過(guò)程中起落架放下后,飛行員依靠平顯數(shù)據(jù)顯示和儀表著陸系統(tǒng)的指示,手動(dòng)操縱飛機(jī)完成著陸的過(guò)程。
系統(tǒng)采用計(jì)算機(jī)實(shí)時(shí)成象和實(shí)時(shí)數(shù)據(jù)顯示技術(shù)為受訓(xùn)者提供逼真的三維場(chǎng)景,受訓(xùn)者面對(duì)顯示畫(huà)面,通過(guò)飛行搖桿控制畫(huà)面中的飛機(jī),完成著陸過(guò)程。
該模擬器系統(tǒng)主要組成部分如下:
(1)硬件部分:
配有 Xeon5405 、2GB、250GB SATA、512MB專(zhuān)業(yè)卡,支持DirectSound 的聲卡一塊;
具有油門(mén)輸入的飛行搖桿一只;
支持1024*768 分辨率的彩色顯示器兩臺(tái);
立體聲耳機(jī)一只(或有源音響一套)。
(2)軟件部分:
Windows2003操作系統(tǒng),Visual C++ 6.0 開(kāi)發(fā)平臺(tái)和 VTree SDK 三維軟件開(kāi)發(fā)環(huán)境。如圖1 所示,該系統(tǒng)分為交互模塊(搖桿、鍵盤(pán)、鼠標(biāo))、飛行仿真模塊、視景模塊和音響模塊四大部分,其中視景模塊是該著陸訓(xùn)練模擬器的核心部分,它又分為外部視角和座艙視角兩部分,分別使用兩個(gè)顯示器同時(shí)實(shí)時(shí)顯示,簡(jiǎn)潔且直觀。
訓(xùn)練過(guò)程開(kāi)始后,受訓(xùn)者通過(guò)飛行搖桿向系統(tǒng)發(fā)出操縱指令,操縱指令實(shí)時(shí)傳入飛行仿真模塊,飛行仿真模塊中的數(shù)學(xué)模型根據(jù)輸入的操縱桿指令實(shí)時(shí)做出響應(yīng),以此來(lái)模擬真實(shí)環(huán)境中飛機(jī)響應(yīng)舵面輸入的過(guò)程。根據(jù)受訓(xùn)者輸入的舵偏指令,飛行仿真模塊實(shí)時(shí)解算運(yùn)動(dòng)學(xué)和動(dòng)力學(xué)方程得出飛機(jī)位置、姿態(tài)等數(shù)據(jù)并實(shí)時(shí)傳給視景和音響模塊。視景模塊顯示飛機(jī)平顯及儀表著陸系統(tǒng)的數(shù)據(jù),并根據(jù)數(shù)據(jù)控制外部場(chǎng)景視角的實(shí)時(shí)三維顯示。音響模塊則根據(jù)輸入實(shí)時(shí)產(chǎn)生相應(yīng)的音響效果。操縱人員根據(jù)視景畫(huà)面實(shí)時(shí)調(diào)整操縱桿的輸入,如此便構(gòu)成一個(gè)人機(jī)閉環(huán)的仿真系統(tǒng)。其他觀察者(教官)可以通過(guò)外部視角顯示實(shí)時(shí)觀察到受訓(xùn)者的降落情況,以便給予即使的指正。
本系統(tǒng)各模塊之間信號(hào)流程和邏輯關(guān)系如圖1 所示
3 視景模塊的實(shí)現(xiàn)
3.1 外部三維視景的生成
3.1.1 三維模型的建立
建立三維實(shí)時(shí)模型的工具軟件有很多,本系統(tǒng)采用了DISCREET 公司的3D Studio MAX與Multigen 公司的Creator 相互配合使用的方法來(lái)生成系統(tǒng)所需的各種三維實(shí)體模型充分發(fā)揮了兩種出色的建模軟件各自的優(yōu)點(diǎn),減少建模難度,提高模型精度。
(1)首先是飛機(jī)模型的建立,在外部視角中,飛機(jī)距離觀察者較近,需要較高的精細(xì)程度才能給人以逼真的感覺(jué),因此使用了3D Studio MAX 中的Editable Mesh(網(wǎng)格編輯)修改器和NURBS 曲面建模工具進(jìn)行構(gòu)造,并使用 #p#page_title#e#UVW Map 貼圖技術(shù)進(jìn)行貼圖(圖2)。
一方面,在模型精細(xì)程度上盡可能趨于逼真,但由于是三維實(shí)時(shí)渲染軟件,模型所用的面(Polygons)過(guò)多將會(huì)使實(shí)時(shí)顯示幀速率降低,甚至出現(xiàn)畫(huà)面定格,因此,在建模過(guò)程中,使用了3D Studio MAX 中的Optimize(最優(yōu)化)修改器,在不失真的前提下盡可能減少模型的面數(shù),在最終優(yōu)化過(guò)后,使整架飛機(jī)所用面數(shù)維持在1200 個(gè)左右。
(2)地形和地面景觀則使用了Multigen Creator 生成,本系統(tǒng)使用了一個(gè)大面積地形模型,由于面積很大,對(duì)地面細(xì)節(jié)精細(xì)程度的要求相對(duì)較低,所以特別適合使用Creator的“地形分塊”功能實(shí)現(xiàn)。
(3)模型格式轉(zhuǎn)換,由于最終使用的是統(tǒng)一格式模型,需使用VTree SDK 附帶的格式轉(zhuǎn)換工具將實(shí)體模型轉(zhuǎn)換為統(tǒng)一的圖形格式。
3.1.2 三維場(chǎng)景的建立
構(gòu)件外部場(chǎng)景,本系統(tǒng)采用了CG2 公司的VTree SDK 作為三維開(kāi)發(fā)環(huán)境。VTree 是全方位面向?qū)ο蟮拈_(kāi)發(fā)工具,它的開(kāi)發(fā)效率較高而且與硬件結(jié)合得較好,是目前視景仿真市場(chǎng)上的一種跨平臺(tái)的三維圖形軟件開(kāi)發(fā)工具,它為本系統(tǒng)提供了快速、方便的方案。
在建立場(chǎng)景過(guò)程中,本系統(tǒng)主要注意了以下幾方面功能的實(shí)現(xiàn):
(1) 著陸機(jī)場(chǎng)位置可選,便于定制著陸航線;
(2) 可以實(shí)現(xiàn)白天,黑夜兩種環(huán)境的著陸訓(xùn)練;
(3) 可以切換全平顯著陸和ILS 引導(dǎo)著陸兩種訓(xùn)練模式;
(4) 外部視角可實(shí)時(shí)顯示飛機(jī)的位置、高度、姿態(tài)等數(shù)據(jù),便于進(jìn)行觀察和分析;
(5) 可以預(yù)先設(shè)定著陸初始位置和高度、速度、姿態(tài)等數(shù)據(jù),提高仿真的靈活性;
(6) 外部視角可以顯示飛機(jī)降落航跡,便于分析、總結(jié)和改進(jìn)。
3.1.3 著陸航跡和參數(shù)的顯示
為了便于受訓(xùn)者和其他觀察者(如教官)分析并評(píng)價(jià)整個(gè)著陸過(guò)程,本系統(tǒng)在外部視角里加入了飛機(jī)航跡和飛行參數(shù)的實(shí)時(shí)顯示功能,用以顯示最佳著陸航跡和飛機(jī)實(shí)際著陸航跡,以及飛機(jī)實(shí)時(shí)的位置、高度、速度、姿態(tài)等參數(shù)。
航跡顯示的原理是在渲染的每個(gè)幀周期內(nèi),計(jì)算飛機(jī)的沿機(jī)場(chǎng)縱向和高度的相對(duì)位置點(diǎn),并與上一幀時(shí)刻位置點(diǎn)連線,從而形成航跡,本系統(tǒng)使用Vtree SDK 開(kāi)發(fā)環(huán)境中的“幾何結(jié)點(diǎn)”vtGNode 函數(shù)來(lái)實(shí)現(xiàn)航跡的繪制。
最終完成的外部視角效果(白天、夜間)如圖所示(圖3)。
3.2 艙內(nèi)視景的生成
3.2.1 飛機(jī)控制面板的制作
為增強(qiáng)受訓(xùn)者在訓(xùn)練時(shí)的沉浸感,本系統(tǒng)在艙內(nèi)視角顯示部分加入了根據(jù)國(guó)外某型飛機(jī)座艙控制面板繪制的面板實(shí)體,增添了系統(tǒng)的逼真效果。制作過(guò)程中采用了Adobe 公司的Photoshop 和Multigen 公司的Creator 兩種軟件相結(jié)
圖4 座艙面板圖
合的方式,采用坐標(biāo)貼圖和透明化處理的方法,使得面板模型既有立體感又不會(huì)增加系統(tǒng)的負(fù)擔(dān),達(dá)到了很好的效果(圖4)。
在實(shí)際應(yīng)用中,本系統(tǒng)中的座艙模型,可以根據(jù)實(shí)際軍機(jī)型號(hào)進(jìn)行更換,以滿足不同用戶的需要。
3. 2. 2 平視顯示器的繪制
平視顯示器是該系統(tǒng)視景模塊的核心組成部分,是受訓(xùn)者操縱飛機(jī)著陸的主要信息來(lái)源,在現(xiàn)代殲擊機(jī)的真實(shí)飛行中,平顯無(wú)論是在起飛著陸、巡航還是在執(zhí)行戰(zhàn)斗任務(wù)的過(guò)程中都起著至關(guān)重要的作用,特別地,現(xiàn)代殲擊機(jī)絕大多數(shù)是全天候殲擊機(jī),在夜航和惡劣天氣條件下,平顯的作用更是無(wú)法替代。因此,對(duì)平視顯示器飛行的仿真訓(xùn)練是非常必要的。
在本系統(tǒng)主要模擬平顯在進(jìn)場(chǎng)/著陸模式下的功能,系統(tǒng)采用了基于VC++的OpenGL 實(shí)現(xiàn)對(duì)平顯的繪制。 本系統(tǒng)采用的平顯主要結(jié)構(gòu)如圖5 所示。
圖5 系統(tǒng)中的平顯結(jié)構(gòu)圖
OpenGL 是一種硬件圖形開(kāi)發(fā)器的軟件接口,同時(shí)它又是與設(shè)備無(wú)關(guān)的圖形開(kāi)發(fā)平臺(tái),更重要的是,象VTree SDK, Open GVS 這樣的三維軟件開(kāi)發(fā)環(huán)境都是基于OpenGL 之上的,因此,OpenGL 與這些開(kāi)發(fā)環(huán)境結(jié)合過(guò)程相當(dāng)完美,非常適合進(jìn)行平視顯示器的仿真。 #p#page_title#e#
在本系統(tǒng)中,使用OpenGL 繪制平顯的主要過(guò)程和步驟如下:
(1)建立平顯模塊程序的總體框架;
(2)建立平面坐標(biāo)系,繪制平顯中心點(diǎn),在本系統(tǒng)中,使用了機(jī)炮準(zhǔn)星作為整個(gè)平顯的中心點(diǎn),其余的各個(gè)部分都是以中心點(diǎn)為基準(zhǔn)作平移來(lái)確定其位置。
(3)繪制各種滾動(dòng)帶部分,在本系統(tǒng)中,主要用到了四個(gè)滾動(dòng)式顯示帶,分別是:航向帶,速帶,高度帶和俯仰/滾轉(zhuǎn)梯度帶。模擬各種滾動(dòng)帶的原理都是使用OpenGL 中的lTranslatef 函數(shù)實(shí)現(xiàn)滾動(dòng),然后再通過(guò)限制其滾動(dòng)帶的顯示范圍來(lái)實(shí)現(xiàn)的。
圖6 平顯結(jié)構(gòu)圖
(4)實(shí)現(xiàn)平顯各種數(shù)據(jù)的顯示。
(5)繪制各種狀態(tài)參數(shù)(如起落架的收放狀況,著陸模式的選擇,燃料狀態(tài)等)。
經(jīng)過(guò)以上過(guò)程,繪制完成后的平顯效果圖如圖6 所示。
3. 2. 3 儀表著陸系統(tǒng)(ILS)的繪制
儀表著陸系統(tǒng)(Instrument Landing System,ILS)是目前最廣泛使用的飛機(jī)精密著陸指引系統(tǒng)。它的作用是以無(wú)線電信號(hào)建立一條由跑道指向空中的狹窄“隧道”,飛機(jī)通過(guò)機(jī)載ILS 接收設(shè)備,確定自身與“隧道”的相對(duì)位置,著陸過(guò)程中,飛行員只要讓飛機(jī)保持在“隧道”央飛行,就可沿正確方向飛近跑道、平穩(wěn)地下降高度,最終飛進(jìn)跑道并著陸。儀表著陸系統(tǒng)夜航、惡劣天氣條件等低能見(jiàn)度的著陸過(guò)程中尤其適用,它的出現(xiàn)大大降低了著陸過(guò)程中的事故發(fā)生率,保障了飛行人員的安全。
在現(xiàn)代殲擊機(jī)的座艙中,儀表著陸系統(tǒng)是作為平顯的一部分功能來(lái)實(shí)現(xiàn)的,這也是現(xiàn)代全天候殲擊機(jī)的重要特征之一。
在本模擬器系統(tǒng)中,同樣使用OpenGL 實(shí)現(xiàn)儀表著陸系統(tǒng)的仿真。主要步驟如下:
(1)首先建立ILS 的數(shù)學(xué)模型,ILS 通過(guò)水平和垂直的兩條線段的位置來(lái)指示飛機(jī)的正確著陸航跡,飛機(jī)通過(guò)接收機(jī)場(chǎng)指引信號(hào),將機(jī)場(chǎng)位置數(shù)據(jù)和飛機(jī)當(dāng)前位置、高度、速度傳給ILS,經(jīng)過(guò)計(jì)算,ILS 以水平和垂直兩條線段的交點(diǎn)距離平顯中心點(diǎn)的相對(duì)位置來(lái)指示飛機(jī)與最佳著陸航跡的差距。
(2)通過(guò)OpenGL 實(shí)現(xiàn)仿真,在本系統(tǒng)中,主要是通過(guò)實(shí)時(shí)解算飛機(jī)當(dāng)前位置和姿態(tài),計(jì)算與最佳航跡(著陸“隧道”的中心線)的相對(duì)距離,使用glVertex 函數(shù)來(lái)實(shí)時(shí)確定兩條ILS 線段各端點(diǎn)的位置,進(jìn)而實(shí)現(xiàn)ILS 的仿真。
3. 2. 4 艙內(nèi)儀表的繪制
本系統(tǒng)中,繪制了航向表和高度表來(lái)輔助飛行員實(shí)現(xiàn)著陸過(guò)程。主要借助了VTree SDK
仿真開(kāi)發(fā)環(huán)境中的儀表類(lèi)庫(kù) VtGauges,使用其中的多種函數(shù)來(lái)完成儀表的繪制。
綜上所述,最終完成的艙內(nèi)視角效果圖(白天、夜間)如圖7 所示:
4 音響模塊的實(shí)現(xiàn)
為了提高整個(gè)模擬器系統(tǒng)的沉浸感和逼真度,系統(tǒng)中設(shè)立了音響模塊。該模擬器系統(tǒng)的音響模塊采用了VTree SDK 開(kāi)發(fā)環(huán)境提供的音響類(lèi)庫(kù)vtSoundFX 來(lái)實(shí)現(xiàn),該音響庫(kù)是基于Microsoft 公司開(kāi)發(fā)的DirectSound 組件之上的。程序運(yùn)行時(shí)需要dsound.lib 庫(kù)文件支持,該文件可以由WindowsNT4.0 sp3 以上版本或者Windows2000 來(lái)提供。
在模擬著陸過(guò)程中,音響模塊的主要功能是為受訓(xùn)者提供以下種類(lèi)的音響效果:
1, 飛機(jī)發(fā)動(dòng)機(jī)引擎聲;
2, 起落架放下/鎖定聲;
3, 起落架著陸接地聲;
4, 地面滑跑的顛簸聲;
5, 剎車(chē)制動(dòng)聲;
6, 著陸過(guò)程中地面塔臺(tái)的語(yǔ)音著陸提示。
音響模塊的主要設(shè)計(jì)和實(shí)現(xiàn)過(guò)程是:首先通過(guò)數(shù)字錄音設(shè)備對(duì)飛機(jī)著陸過(guò)程中的各種聲音數(shù)據(jù)進(jìn)行采集,并經(jīng)過(guò)加工成為相應(yīng)格式的音頻數(shù)據(jù)文件。然后,在飛行仿真模塊中建立判別在各種不同條件下播放相應(yīng)聲音的函數(shù)。并結(jié)合Vtree SDK 的vtSoundFX 類(lèi)庫(kù)中的一系列函數(shù)對(duì)聲音的播放過(guò)程進(jìn)行調(diào)節(jié)和控制,如聲音播放的頻率控制、增益控制、延時(shí)、循環(huán)(如發(fā)動(dòng)機(jī)引擎聲的循環(huán)播放)等。
在Vtree SDK #p#page_title#e#環(huán)境下實(shí)現(xiàn)音響的控制和播放的主要步驟為:
vtUInt32 Action(
SoundEvent event,
vtUInt32 eventid = (vtUInt32)-1,
vtFloat pan = Both,
vtInt32 sound = -1,
vtInt32 loopcount = -1,
double gain = 1.0, //增益
vtUInt32 freq = 0, //頻率
vtUInt32 priority = 7 );
vtSoundFX.Action(vtSoundFX::Play,(vtUInt32)-1,-0.5,sound2,1,0.5,6); //實(shí)際調(diào)用過(guò)程
5 飛行仿真模塊的實(shí)現(xiàn)
5.1 操縱桿接口的設(shè)計(jì)
在該模擬器系統(tǒng)中,除鍵盤(pán)和鼠標(biāo)外,控制飛機(jī)的大部分控制指令由飛行搖桿(JoyStick)發(fā)出,而搖桿控制方式的實(shí)現(xiàn)主要依賴于搖桿與計(jì)算機(jī)的接口程序的實(shí)現(xiàn)。本系統(tǒng)是通過(guò)Microsoft Visual C++ 下的操縱桿接口來(lái)實(shí)現(xiàn)這一過(guò)程。
在Visual C++下運(yùn)用搖桿的方法可按照以下步驟來(lái)完成:
(1)在應(yīng)用程序框架上,聲明兩個(gè)結(jié)構(gòu)體對(duì)象JOYINFOEX info,JOYCAPS caps。
(2)在初始化函數(shù)中對(duì)操縱桿進(jìn)行初始化:
if (joyGetNumDevs())
{ joyGetDevCaps(JOYSTICKID1,&caps,sizeof(caps)); // 操縱桿初始設(shè)置
info.dwSize=sizeof(info);
info.dwFlags=JOY_RETURNALL;
int joy=joyGetPosEx(JOYSTICKID1,&info);
351
}
(3)在控制實(shí)時(shí)成象的回調(diào)函數(shù)中,加入實(shí)時(shí)讀取搖桿指令的語(yǔ)句:
if(joyGetPosEx(JOYSTICKID1,&info)==JOYERR_NOERROR)
{ Ctr.Deltp=255*(65535-info.dwZpos)/65535.0; //油門(mén)桿(推力)
Ctr.Deltx=255*info.dwXpos/65535.0; //副翼 (滾轉(zhuǎn))
Ctr.Delty=255*info.dwRpos/65535.0; //方向舵(偏航)
Ctr.Deltz=255*(65535-info.dwYpos)/65535.0;//升降舵(俯仰)
}
通過(guò)以上步驟,模擬器系統(tǒng)可以實(shí)時(shí)獲取搖桿指令,驅(qū)動(dòng)飛行仿真模塊實(shí)時(shí)地做出響應(yīng),為視景模塊周期性地提供對(duì)飛機(jī)飛行位置、姿態(tài)等的控制數(shù)據(jù)。
5.2 飛機(jī)動(dòng)力學(xué)和運(yùn)動(dòng)學(xué)仿真
本系統(tǒng)采用六自由度全量飛機(jī)模型。該模型精確、全面地反映了飛機(jī)的實(shí)際運(yùn)動(dòng)特征。飛行動(dòng)力學(xué)方程組可參見(jiàn)參考文獻(xiàn)[1][3]。
6 系統(tǒng)中使用的關(guān)鍵技術(shù)
6.1 nView 多顯示屏幕技術(shù)
與大型模擬器相比,本系統(tǒng)要實(shí)現(xiàn)的模擬過(guò)程相對(duì)比較簡(jiǎn)單,為了保證信息既能充分得到顯示,同時(shí)遵循成本低廉、易于普及的設(shè)計(jì)原則,本系統(tǒng)沒(méi)有采用大型模擬器系統(tǒng)普遍采用的多通道顯示技術(shù),而是采用了Nvidia 公司的nView 多設(shè)備顯示技術(shù)來(lái)實(shí)現(xiàn)單顯卡-雙顯示器的顯示輸出(圖8)。
圖8 采用了 nView 技術(shù)的本模擬器系統(tǒng)外觀
nView 顯示技術(shù)可以支持Span 模式,這種模式可以讓桌面擴(kuò)大一倍。對(duì)于想要在多個(gè)顯示器上顯示同樣信息的的用戶,nView 也可支持 Clone 模式。本系統(tǒng)采用了Span 模式。
6.2 NURBS 曲面建模技術(shù)
在3DS MAX 中,有兩種建模方式,多邊形網(wǎng)格建模和NURBS(Non-Uniform Rational B-Splines非均勻有理B 樣條)建模。網(wǎng)格建模常用來(lái)創(chuàng)建有棱角的物體,而且很方便。但用它來(lái)表現(xiàn)光滑復(fù)雜的曲面造型,效果就很不理想,然而這正是NURBS 曲面建模的優(yōu)勢(shì)。在三維造型中,曲面物體要多于有棱角的物體,能否表現(xiàn)完美的曲面造型也就成了三維建模的關(guān)健。
在本系統(tǒng)的三維造型建模過(guò)程中,使用了這一技術(shù)來(lái)構(gòu)建某些模型的組成部分(如飛機(jī)流線型的機(jī)頭、座艙蓋等),取得了很好的效果。
6.3 光點(diǎn)閃爍技術(shù)
在VTree SDK 軟件開(kāi)發(fā)環(huán)境中,還包含了專(zhuān)門(mén)用來(lái)顯示光點(diǎn)閃爍效果的結(jié)點(diǎn)類(lèi)型vtLightPointNode。它可以通過(guò)一系列函數(shù)來(lái)設(shè)置燈光的顏色、亮度、位置以及閃爍特效的各種參數(shù),此類(lèi)型中提供了顯示光暈(Halo)效果的函數(shù)SetHaloed(),在實(shí)現(xiàn)燈光閃爍的同時(shí),可以實(shí)現(xiàn)逼真的光暈效果,提高了燈光模型的逼真程度。在本系統(tǒng)中,使用了此項(xiàng)技術(shù)來(lái)實(shí)現(xiàn)黑夜場(chǎng)景中機(jī)場(chǎng)跑道的燈光閃爍效果。
6.4 細(xì)節(jié)度級(jí)別(LOD)技術(shù)
在不影響仿真逼真度的前提下,降低場(chǎng)景復(fù)雜程度很有必要。細(xì)節(jié)度級(jí)別( #p#page_title#e#Level ofDetail, LOD)技術(shù)在這方面有很好的效果。其原理是根據(jù)對(duì)象與觀察者的遠(yuǎn)近關(guān)系,使用不同線框密度的幾何模型。在本系統(tǒng)中,采用了兩級(jí)LOD 對(duì)景物進(jìn)行簡(jiǎn)化,提高了計(jì)算效率,滿足了在PC 機(jī)上的運(yùn)行要求。
7 結(jié)束語(yǔ)
本系統(tǒng)在整體結(jié)構(gòu)的構(gòu)建和各個(gè)模塊的設(shè)計(jì)和具體實(shí)現(xiàn)過(guò)程中,一直遵循了“保證效果,易于普及”的設(shè)計(jì)思想,在視景模塊中,綜合采用了目前虛擬現(xiàn)實(shí)(Virtual Reality)技術(shù)和視景仿真(Scene Simulation)技術(shù)中多種常用的實(shí)體建模、場(chǎng)景管理、圖象特效的軟件和技術(shù),使系統(tǒng)的整體視景效果達(dá)到了期望的真實(shí)程度。并加入音響模塊,通過(guò)模擬飛機(jī)著陸過(guò)程中的各種聲音以及來(lái)自地面的語(yǔ)音指示來(lái)增強(qiáng)整個(gè)系統(tǒng)的沉浸感和逼真度。同時(shí),通過(guò)按照一定的層次結(jié)構(gòu),利用LOD 技術(shù)和最優(yōu)化技術(shù),在不影響畫(huà)面視覺(jué)效果的前提條件下對(duì)各種景物模型進(jìn)行了簡(jiǎn)化,使計(jì)算的效率大大提高,而且,在操縱和飛行仿真模塊中,使用了普及型的操縱設(shè)備和接口,使整個(gè)系統(tǒng)完全可以在PC 平臺(tái)上正常運(yùn)行。該系統(tǒng)結(jié)構(gòu)相對(duì)簡(jiǎn)單,而且適合于在飛機(jī)實(shí)體模型、地形環(huán)境、天氣條件、平顯和ILS 的樣式以及飛機(jī)的飛行動(dòng)力學(xué)和運(yùn)動(dòng)學(xué)參數(shù)上根據(jù)用戶實(shí)際需要進(jìn)行各種更改。因此,比較適合于供部隊(duì)進(jìn)行普及性初級(jí)訓(xùn)練使用。
參考文獻(xiàn)
[1] 飛行實(shí)時(shí)仿真系統(tǒng)及技術(shù) 王行仁等著. 北京航空航天大學(xué)出版社;
[2] 3DS MAX 動(dòng)畫(huà)設(shè)計(jì)寶典 V.N.CLUB著 清華大學(xué)出版社;
[3] 飛行控制系統(tǒng) 張明廉著. 國(guó)防工業(yè)出版社;
[4] 虛擬現(xiàn)實(shí)技術(shù)及編程技巧 張秀山 等編著 國(guó)防科技大學(xué)出版社;
[5] OPENGL 高級(jí)編程與可視系統(tǒng)開(kāi)發(fā) 和平鴿工作室著 中國(guó)水利水電出版社;
[6] MultiGen Creator’s Desktop Tutor, MultiGen-Paradigm;
[7] Vtree SDK User’S Manual CG-2;