摘要:本文給出了一個(gè)基于HLA的三維視景仿真系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)的方法,具體描述了系統(tǒng)設(shè)計(jì)要求、體系結(jié)構(gòu)、以及與其它仿真系統(tǒng)的HLA接口。
關(guān)鍵詞:HLA;三維視景仿真系統(tǒng):SOM;分布交互式仿真
1系統(tǒng)應(yīng)用需求
三維視景仿真可以很好地應(yīng)用于軍事、公安、水利、農(nóng)業(yè)、林業(yè),城市規(guī)劃和設(shè)計(jì)領(lǐng)域等領(lǐng)域。在軍事領(lǐng)域可以用于三維地形仿真、電子沙盤、支持精確制導(dǎo)武器的地形匹配:可以用于戰(zhàn)場分析,進(jìn)行戰(zhàn)場地形各類作戰(zhàn)計(jì)算,如通行、通視、制高點(diǎn)分析;用于模擬訓(xùn)練,可以實(shí)現(xiàn)實(shí)時(shí)立體的戰(zhàn)場態(tài)勢顯示,并可形象展示火力打擊效果等。在公安領(lǐng)域可以用于建立3D城市交通網(wǎng)和3D城市消防系統(tǒng),支持對交通和消防的有效管理。在水利、農(nóng)業(yè)、林業(yè)方面,可以利用三維可視化技術(shù)對水情、作物生長等進(jìn)行分析或進(jìn)行洪水淹沒分析。在城市規(guī)劃和設(shè)計(jì)方面,可以利用構(gòu)建的虛擬城市進(jìn)行分析與研究,避免因考慮不足而帶來難以挽回的損失。
基于HLA的三維視景仿真能夠很好地應(yīng)用于網(wǎng)絡(luò)環(huán)境。隨著計(jì)算機(jī)網(wǎng)絡(luò)的廣泛應(yīng)用,三維視景仿真需要對網(wǎng)絡(luò)環(huán)境有很好的支持。在作戰(zhàn)仿真領(lǐng)域,美國軍方領(lǐng)導(dǎo)下的高層體系結(jié)構(gòu)HLA應(yīng)運(yùn)而生?;贖LA的三維視景仿真系統(tǒng)通過對地形、城市、海域等空間對象進(jìn)行三維建模,在網(wǎng)絡(luò)環(huán)境下按照標(biāo)準(zhǔn)接口規(guī)范可以實(shí)現(xiàn)可視化的仿真推演,為用戶提供直觀、生動的信息服務(wù)。
2系統(tǒng)功能設(shè)計(jì)
2 .1支持三維視景仿真
開發(fā)的三維視景仿真系統(tǒng),從設(shè)計(jì)上能夠滿足對眾多地理空間數(shù)據(jù)格式和類型的支持,對大地形能夠進(jìn)行三維渲染和顯示,具有靈活友好的人機(jī)用戶接口,并采用面向?qū)ο蟮腸++程序設(shè)計(jì)方法,其開發(fā)過程是一個(gè)復(fù)雜的軟件系統(tǒng)工程。
2采用HLA仿真體系結(jié)構(gòu)
高層體系結(jié)構(gòu)川.A是新一代仿真系統(tǒng)的標(biāo)準(zhǔn),本系統(tǒng)也將采用HI.A接口來實(shí)現(xiàn)和仿真系統(tǒng)的互連?;贖LA的三維視景仿真系統(tǒng)將設(shè)計(jì)成整個(gè)系統(tǒng)仿真聯(lián)邦中的一個(gè)三維可視化顯示的聯(lián)邦成員,以實(shí)現(xiàn)互操作與可重用。
2 .3支持對動態(tài)目標(biāo)的三維顯示和管理
本系統(tǒng)應(yīng)基于實(shí)時(shí)交互的仿真系統(tǒng)。典型情況是在所顯示的大地形上展示整個(gè)仿真過程中仿真實(shí)體的位置、狀態(tài),以及仿真實(shí)體之間的相互關(guān)系。因此,在系統(tǒng)設(shè)計(jì)上,系統(tǒng)必須能夠快速、有效地顯示和管理動態(tài)目標(biāo),能夠?qū)ΡM可能多的動態(tài)目標(biāo)提供支持,能夠更加生動表達(dá)動態(tài)目標(biāo)之間的互連關(guān)系等。
3基于HLA的三維視景仿真系統(tǒng)結(jié)構(gòu)設(shè)計(jì)
為提高各種仿真資源的可重用性及互操作性,美國國防部制定了一個(gè)建模和仿真用的公共技術(shù)框架。其中包括一個(gè)高層體系結(jié)構(gòu)(HLA),一個(gè)任務(wù)空間概念模型和一個(gè)通用數(shù)據(jù)標(biāo)準(zhǔn),并要求到2002年新建仿真系統(tǒng)均需符合該框架要求,否則不能得到財(cái)政支持,也不準(zhǔn)使用。因此,我們設(shè)計(jì)的三維視景仿真系統(tǒng)可作為大型仿真系統(tǒng)的一個(gè)聯(lián)邦成員,充當(dāng)三維觀察器的作用。圖I是一個(gè)基于HLA的通用仿真系統(tǒng)的設(shè)計(jì)思想。
通用仿真系統(tǒng)作為一個(gè)聯(lián)邦,包含劇情發(fā)生器成員、觀察器成員(包括二維、三維)和其它各仿真成員。劇情發(fā)生器成員用于描述仿真系統(tǒng)的具體實(shí)驗(yàn)活動,它通過基礎(chǔ)數(shù)據(jù)庫為其它各仿真成員(包括觀察器成員提供仿真腳本、仿真環(huán)境等數(shù)據(jù)作為仿真背景,用戶可以自行設(shè)置劇情,通過不同的劇情設(shè)置,來完成具體的仿真任務(wù)。三維觀察器用于監(jiān)控仿真進(jìn)程,并將各仿真成員的仿真結(jié)果進(jìn)行形象直觀地顯示,彌補(bǔ)了以往二維觀察器顯示效果的不足。HLA接口規(guī)范以服務(wù)的方式定義了聯(lián)邦中聯(lián)邦成員進(jìn)行信息交互的方式,包括可調(diào)用的服務(wù)和應(yīng)提供的回調(diào)服務(wù),分為聯(lián)邦管理、聲明管理、對象管理、所有權(quán)管理、時(shí)間管理和數(shù)據(jù)分布管理六類服務(wù)。RTI是HLA接口規(guī)范的具體實(shí)現(xiàn),它是聯(lián)邦中各個(gè)聯(lián)邦成員進(jìn)行交互的基礎(chǔ)。
4三維視景仿真系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)
4.1系統(tǒng)體系結(jié)構(gòu)設(shè)計(jì)
系統(tǒng)體系結(jié)構(gòu)如圖2所示。基于分布交互式仿真的三維可視化平臺對上支持各種具體應(yīng)用的仿真系統(tǒng),對下主要由五部分支撐。第一部分是三維可視化支持庫,分別由OpenGL和Microsoft Window窗口系統(tǒng)組成,建立在PC機(jī)圖形硬件的基礎(chǔ)之上,是系統(tǒng)的主要部分;第二部分是建立在網(wǎng)絡(luò)硬件的基礎(chǔ)之上的對分布交互式仿真HI.A的支持; 第三部分是數(shù)據(jù)源,包括地形數(shù)據(jù)和紋理照片等;第四部分是建立的典型三維實(shí)體幾何模型庫;第五部分是建立在聲音硬件基礎(chǔ)下的對方體聲效的支特。
本系統(tǒng)所需的三維幾何模型主要采用微機(jī)版的Creator2.5.1和3DNIAX5.0進(jìn)行開發(fā),視景仿真系統(tǒng)開發(fā)采用的操作系統(tǒng)平臺為 Windows 2000 Professional,視景仿真軟件平臺采用微機(jī)版Vega和OpenGL. HLA接口采用pRTI v1.3,主要實(shí)現(xiàn)以下的功能:
l 通過HLA接口接收實(shí)體信息,并能根據(jù)反射的屬性值在三維場景中動態(tài)顯示;
l 提供用戶靈活的選項(xiàng)接口,采用Vega的特效模塊和。penGL各種特效來表征實(shí)體的狀態(tài)。系統(tǒng)目前提供了數(shù)十種特效來表征各種狀態(tài),用戶可以自定義各種狀態(tài)對應(yīng)的特效,這樣用戶在發(fā)送端只需發(fā)送相應(yīng)的狀態(tài)碼即可。
l 系統(tǒng)采用了我們自行研制開發(fā)的基于微機(jī)的大地形管理和調(diào)度方案,解決了在微機(jī)大面積地形的處理與圖像逼真度、實(shí)時(shí)性之間的矛盾。這樣的功能Vega在單處理器的微機(jī)上沒有提供。
4.2 HLA接口的設(shè)計(jì)與實(shí)現(xiàn)
4.2.1 HLA接口功能描述
采用HLA體制的視景仿真系統(tǒng)與通常用于完成漫游、演示等功能的視景仿真系統(tǒng)有很大的區(qū)別。后者對于視景仿真系統(tǒng)出現(xiàn)的實(shí)體一般能夠預(yù)先確定,只需要將每個(gè)實(shí)體按預(yù)定的行為進(jìn)行動作。這樣顯然不利于代碼的可重用性,而且難于與其他的仿真系統(tǒng)接口,完成其他仿真系統(tǒng)的三維顯示。而前者則完全作為一個(gè)通用的仿真接口,仿真系統(tǒng)只需要按規(guī)定的格式將信息通過 HLA體制傳送給視景仿真系統(tǒng),視景仿真系統(tǒng)只按接收到的信息加載模型,并根據(jù)用戶的需求進(jìn)行動作,使之成為一個(gè)真正通用三維觀察器。
4.2.2 SOM設(shè)計(jì)
SOM設(shè)計(jì)是聯(lián)邦開發(fā)過程中的重要內(nèi)容之一,具體包括對象類和交互類的設(shè)計(jì),實(shí)際是確定各個(gè)聯(lián)邦成員之間的數(shù)據(jù)流和控制流。這里重點(diǎn)介紹本系統(tǒng)對象類的設(shè)計(jì)的方法。
從上面可以看出,用戶只需要從該類派生所需要的對象類,在需要顯示時(shí)向視景仿真系統(tǒng)注冊實(shí)例,并更新其位置信息即可。
于是我們可以設(shè)計(jì)一個(gè)派生自CObject的顯示對象基類: CBaseObject。該類用于封裝顯示一個(gè)模型需要的基本信息,在發(fā)送端只需要將需要進(jìn)行三維顯示的實(shí)體從該類派生即可,這樣在接收端就可以收到所有實(shí)體發(fā)送的信息。
在開發(fā)過程中,通過OMDT工具可以很方便地從S.NI表得到其源代碼,我們只需要添加用戶所需要的方法,如添加模型、查找模型、刪除模型、更新位置等操作。如表2所示。
系統(tǒng)實(shí)驗(yàn)結(jié)果
圖3一圖5所示為系統(tǒng)三維顯示采集的部分圖象。