專利名稱::一種基于hla的通用分布式視景仿真系統(tǒng)及實(shí)現(xiàn)方法
技術(shù)領(lǐng)域:
:本發(fā)明涉及計(jì)算機(jī)仿真
技術(shù)領(lǐng)域:
,特別是涉及基于HLA的通用分布式視景仿真系統(tǒng)計(jì)其實(shí)現(xiàn)方法。
背景技術(shù):
:視景仿真技術(shù)是在數(shù)值仿真的基礎(chǔ)上,以圖形和動(dòng)畫來表示仿真的過程或結(jié)果,將三維模型的動(dòng)態(tài)顯示技術(shù)應(yīng)用于模擬訓(xùn)練、虛擬現(xiàn)實(shí)以及其他實(shí)時(shí)動(dòng)態(tài)仿真系統(tǒng)的圖形顯示。將視景仿真技術(shù)與分布交互式仿真技術(shù)結(jié)合對復(fù)雜巨系統(tǒng)進(jìn)行網(wǎng)絡(luò)建模與仿真,把分布在不同地域的實(shí)體和人員聯(lián)接到一個(gè)公共虛擬環(huán)境中進(jìn)行仿真,為仿真過程和仿真結(jié)果提供了一種直觀的表現(xiàn)形式,能夠給用戶以很強(qiáng)的沉浸感,在多個(gè)領(lǐng)域具有廣泛的應(yīng)用前景。分布交互仿真中,高層體系結(jié)構(gòu)(HighLevelArchitecture,簡稱HLA)標(biāo)準(zhǔn)已經(jīng)被接受為國際仿真標(biāo)準(zhǔn)。國內(nèi)外對基于HLA標(biāo)準(zhǔn)建立的視景仿真系統(tǒng)研究較多,但這類系統(tǒng)大多直接基于HLA提供的接口函數(shù)開發(fā),需要開發(fā)人員掌握HLA規(guī)范中的各種服務(wù)接口函數(shù),開發(fā)時(shí)間較長。此外,由于分布交互仿真系統(tǒng)中包含的對象類眾多、實(shí)體數(shù)目變化,使用這種方式實(shí)現(xiàn)的視景仿真系統(tǒng)也存在著通用性不強(qiáng)的問題,同時(shí)現(xiàn)有技術(shù)中還存在三維場景刷新頻率與網(wǎng)絡(luò)數(shù)據(jù)接收頻率不匹配的問題,容易導(dǎo)致數(shù)據(jù)丟失出現(xiàn)場景表現(xiàn)內(nèi)容失真、畫面跳躍等現(xiàn)象。目前,還沒有一種基于HLA的通用分布式^L景仿真系統(tǒng)實(shí)現(xiàn)方法。
發(fā)明內(nèi)容本發(fā)明的目的在于克服現(xiàn)有技術(shù)的缺陷,提供一種基于HLA的通用分布式視景仿真系統(tǒng),該系統(tǒng)通過采用定義好的對象類及對象類屬性、交互類及交互類參數(shù),及通過實(shí)體對場景進(jìn)行管理,無需重新編寫網(wǎng)絡(luò)接口,具有較強(qiáng)的通用性,并且不會(huì)因?yàn)閿?shù)據(jù)丟失出現(xiàn)場景表現(xiàn)內(nèi)容失真、畫面跳躍等現(xiàn)象。本發(fā)明的另外一個(gè)目的在于提供一種基于HLA的通用分布式視景仿真系統(tǒng)的實(shí)現(xiàn)方法。本發(fā)明的上述目的通過如下技術(shù)方案予以實(shí)現(xiàn)一種基于HLA的通用分布式視景仿真系統(tǒng),其特征在于包括網(wǎng)絡(luò)接口模塊,表現(xiàn)命令緩沖模塊,實(shí)體管理模塊,回調(diào)函數(shù)模塊,控制模塊和可視化表現(xiàn)模塊,網(wǎng)絡(luò)接口模塊根據(jù)控制模塊的指令執(zhí)行聯(lián)邦的加入與撤銷;對象類及對象類屬性、交互類及交互類參數(shù)的定義、發(fā)布和訂購;對象類及對象類屬性、交互類及交互類參數(shù)的差錯(cuò)糾正,并將差錯(cuò)糾正后的對象類及對象類屬性、交互類及交互類參數(shù)傳輸給表現(xiàn)命令緩沖^t塊;表現(xiàn)命令緩沖模塊接收網(wǎng)絡(luò)接口模塊輸送的對象類及對象類屬性、交互類及交互類參數(shù),將其解析成表現(xiàn)命令,并進(jìn)行緩沖存儲,等待可^L化表現(xiàn)模塊調(diào)度處理;實(shí)體管理模塊定義虛擬實(shí)體的屬性信息,并對虛擬實(shí)體進(jìn)行管理和維護(hù),供可視化表現(xiàn)模塊調(diào)用;回調(diào)函數(shù)模塊對實(shí)體管理模塊中實(shí)體的特殊表現(xiàn)效果進(jìn)行定義,供可視化表現(xiàn)模塊執(zhí)行,目的是增強(qiáng)場景的逼真性;控制模塊與用戶進(jìn)行交互,響應(yīng)用戶操作,根據(jù)用戶要求啟動(dòng)網(wǎng)絡(luò)數(shù)據(jù)接口模塊,并向網(wǎng)絡(luò)數(shù)據(jù)接口模塊發(fā)出加入聯(lián)邦或撤銷聯(lián)邦的指令;根據(jù)用戶要求調(diào)用可視化表現(xiàn)模塊控制場景;;可視化表現(xiàn)模塊調(diào)用表現(xiàn)命令緩沖模塊,獲得待處理的表現(xiàn)命令,再根據(jù)所述表現(xiàn)命令,調(diào)用實(shí)體管理模塊,執(zhí)行表現(xiàn)命令;執(zhí)行回調(diào)函數(shù)模塊中定義的實(shí)體的特殊表現(xiàn)效果,表現(xiàn)虛擬場景;根據(jù)控制模塊中用戶要求控制場景。在上述基于HLA的通用分布式視景仿真系統(tǒng)中,網(wǎng)絡(luò)接口模塊包括接口定義和網(wǎng)絡(luò)數(shù)據(jù)交互,其中接口定義對從HLA/RTI訂購的對象類及對象類屬性、交互類及交互類參數(shù)進(jìn)行定義;網(wǎng)絡(luò)數(shù)據(jù)交互為向HLA/RTI網(wǎng)絡(luò)進(jìn)行訂購、接收對象類及對象類屬性、交互類及交互類參數(shù),并對其進(jìn)行差錯(cuò)糾正。在上述基于HLA的通用分布式視景仿真系統(tǒng)中,表現(xiàn)命令緩沖模塊包括數(shù)據(jù)解析和表現(xiàn)命令緩沖隊(duì)列,數(shù)據(jù)解析為將網(wǎng)絡(luò)數(shù)據(jù)解析為可^/f匕表現(xiàn)模塊可以識別的表現(xiàn)命令;表現(xiàn)命令緩沖隊(duì)列將所述表現(xiàn)命令進(jìn)行緩沖。在上述基于HLA的通用分布式視景仿真系統(tǒng)中,實(shí)體管理模塊包括實(shí)體類和實(shí)體管理器,其中實(shí)體類定義虛擬實(shí)體的屬性信息;實(shí)體管理器對所述虛擬實(shí)體進(jìn)行管理和維護(hù),包括新建、刪除和查詢。在上述基于HLA的通用分布式視景仿真系統(tǒng)中,控制模塊包括窗口消息、控制腳本和控制引擎,其中窗口消息負(fù)責(zé)與用戶進(jìn)行交互,相應(yīng)用戶操作;控制腳本根據(jù)具體仿真內(nèi)容的特點(diǎn)設(shè)計(jì)場景切換程序;控制引擎根據(jù)用戶要求啟動(dòng)網(wǎng)絡(luò)接口模塊,向網(wǎng)絡(luò)數(shù)據(jù)接口模塊發(fā)出加入聯(lián)邦或撤銷聯(lián)邦的指令,并根據(jù)窗口消息的用戶要求和控制腳本的發(fā)生條件調(diào)用可視化表現(xiàn)模塊進(jìn)行場景控制。在上述基于HLA的通用分布式視景仿真系統(tǒng),其特征在于所述可視化表現(xiàn)模塊包括環(huán)境數(shù)據(jù)庫、造型數(shù)據(jù)庫和可視化引擎,其中環(huán)境數(shù)據(jù)庫存儲構(gòu)建虛擬場景所需的自然環(huán)境信息;造型數(shù)據(jù)庫保存虛擬實(shí)體的幾何造型和紋理信息;可視化引擎調(diào)用表現(xiàn)命令緩沖模塊,獲得待處理的表現(xiàn)命令,再根據(jù)所述表現(xiàn)命令,調(diào)用實(shí)體管理模塊,執(zhí)行表現(xiàn)命令,同時(shí)在待處理的表現(xiàn)命令為空時(shí)執(zhí)行回調(diào)函數(shù)模塊中定義的實(shí)體的特殊表現(xiàn)效杲,表現(xiàn)虛擬場景;根據(jù)控制模塊中用戶要求控制場景。一種基于HLA的通用分布式視景仿真系統(tǒng)的實(shí)現(xiàn)方法,其特征在于為多線程管理,包含三個(gè)線程控制主線程、網(wǎng)絡(luò)偵聽線程和可視化表現(xiàn)線程,具體的實(shí)現(xiàn)方法如下(1)系統(tǒng)初始化后,啟動(dòng)控制主線程,當(dāng)控制主線程從用戶窗口界面獲得加入聯(lián)邦信息后啟動(dòng)網(wǎng)絡(luò)偵聽線程;(2)網(wǎng)絡(luò)偵聽線程對所加入的聯(lián)邦信息進(jìn)行偵聽,當(dāng)接收到對象類及對象類屬性、交互類及交互類參數(shù)后,對對象類及對象類屬性、交互類及交互類參數(shù)進(jìn)行差錯(cuò)檢測,并將所述檢測后的數(shù)據(jù)解析為表現(xiàn)命令,并存入表現(xiàn)命令緩沖隊(duì)列;(3)啟動(dòng)可視化表現(xiàn)線程,可視化表現(xiàn)線程搜尋表現(xiàn)命令緩沖隊(duì)列,當(dāng)存在待處理的表現(xiàn)命令時(shí),取出待處理的表現(xiàn)命令,調(diào)用相應(yīng)的實(shí)體動(dòng)作,執(zhí)行表現(xiàn)命令;(4)當(dāng)表現(xiàn)命令緩沖隊(duì)列為空時(shí),可視化表現(xiàn)線程執(zhí)行步驟(3)中所述實(shí)體的特殊表現(xiàn)效果,進(jìn)行場景更新。本發(fā)明與現(xiàn)有技術(shù)相比具有如下有益效果(1)采用定義好的對象類及對象類屬性、交互類及交互類參數(shù),在分布式仿真系統(tǒng)的對象類、實(shí)體數(shù)目發(fā)生變化的情況下,無需重新編寫網(wǎng)絡(luò)接口;同時(shí)系統(tǒng)釆用實(shí)體管理模塊,通過實(shí)體對場景進(jìn)行管理,使得本系統(tǒng)具有通用性。(2)采用表現(xiàn)命令緩沖隊(duì)列,解決了三維場景刷新頻率與網(wǎng)絡(luò)數(shù)據(jù)接收頻率不匹配的問題,不會(huì)因數(shù)據(jù)丟失出現(xiàn)場景表現(xiàn)內(nèi)容失真、畫面跳躍等現(xiàn)象。(3)采用了多線程管理技術(shù),有效平衡了網(wǎng)絡(luò)接口模塊、控制模塊、可視化表現(xiàn)模塊的工作量,系統(tǒng)運(yùn)行效率高。(4)支持對顯示的定制,回調(diào)函數(shù)庫支持新實(shí)體特效的開發(fā),表現(xiàn)模塊也支持新三維造型開發(fā),系統(tǒng)具有良好的可重用性和擴(kuò)展性。圖1為本發(fā)明仿真系統(tǒng)結(jié)構(gòu)8圖2為本發(fā)明仿真系統(tǒng)中的網(wǎng)絡(luò)接口模塊工作流程圖;圖3為本發(fā)明仿真系統(tǒng)中的表現(xiàn)命令緩沖模塊工作過程圖;圖4為本發(fā)明仿真系統(tǒng)中的實(shí)體管理模塊工作過程圖;圖5為本發(fā)明仿真系統(tǒng)中的控制模塊工作過程圖;圖6為本發(fā)明仿真系統(tǒng)中的可視化表現(xiàn)模塊工作過程圖;圖7為本發(fā)明仿真系統(tǒng)的線程工作流程圖;圖8為本發(fā)明仿真系統(tǒng)執(zhí)行過程圖。具體實(shí)施例方式如圖1所示為本發(fā)明仿真系統(tǒng)結(jié)構(gòu)圖,包括網(wǎng)絡(luò)接口模塊、表現(xiàn)命令緩沖模塊、實(shí)體管理模塊、回調(diào)函數(shù)模塊、控制模塊和可視化表現(xiàn)模塊。網(wǎng)絡(luò)接口模塊由接口定義和網(wǎng)絡(luò)數(shù)據(jù)交互組成,其功能為根據(jù)控制模塊的指令執(zhí)行仿真聯(lián)邦的加入與撤銷;對象類及對象類屬性、交互類及交互類參數(shù)的定義、發(fā)布和訂購;對象類及對象類屬性、交互類及交互類參數(shù)的差錯(cuò)糾正,并將差錯(cuò)糾正后的數(shù)據(jù)傳輸給表現(xiàn)命令緩沖模塊。其中接口定義為對視景仿真系統(tǒng)從HLA/RTI訂購的對象類及對象類屬性、交互類及交互類參數(shù)進(jìn)行定義,根據(jù)分布式視景仿真系統(tǒng)必需的數(shù)據(jù)進(jìn)行設(shè)計(jì),將這些數(shù)據(jù)信息固定為需要從HLA/RTI(RunTimeInfrastructure,運(yùn)行時(shí)體系結(jié)構(gòu))上訂購的對象類、交互類。在HLA中,對象類是對具有公共特性或?qū)傩缘囊唤M對象的抽象,HLA對象模型的對象類結(jié)構(gòu)則明確了聯(lián)邦或成員范圍內(nèi)各個(gè)對象類之間的關(guān)系集合。分布式視景仿真中對所有的虛擬實(shí)體均訂購相同的屬性,因此只需要設(shè)計(jì)一類對象類,對象類結(jié)構(gòu)表如下表1所示表i對象類結(jié)構(gòu)表ObjectRootSimEntity對象類屬性的說明如下表2所示,這些屬性信息可以滿足對虛擬實(shí)體進(jìn)行動(dòng)態(tài)繪制的需求。表2對象類名屬性屬性說明XX坐標(biāo)yY坐標(biāo)zZ坐標(biāo)h俯仰角SimEntityP偏轉(zhuǎn)角r滾轉(zhuǎn)角extl附加參數(shù)1ext2附加參數(shù)2ext3附加參數(shù)3在HLA中,交互是指一個(gè)成員中的某個(gè)或某些對象產(chǎn)生的,能夠?qū)ζ渌蓡T中的對象產(chǎn)生影響的動(dòng)作。通過交互類結(jié)構(gòu)表及其交互參數(shù)可以清晰地描述交互類之間的層次關(guān)系,詳細(xì)地記錄交互實(shí)例之間通訊的各種信息。表3和表4是設(shè)計(jì)的與分布式視景仿真系統(tǒng)密切相關(guān)的交互類及其各自的參數(shù)。表3交互類結(jié)構(gòu)圖Init3DFxInteractionRootAckTNow表4交互類名參數(shù)參數(shù)說明備注entitynum實(shí)體數(shù)目初始化交互類p_entity_data實(shí)體信息.p—entity—data是該實(shí)體所Init3Dnorth一dir指北角包含的其他信息,如實(shí)體名need—ack是否需要確認(rèn)Ti1-it^tAA>EF1匕hstFxType事件類型*特效交互類szOwnerld事件實(shí)體名稱*事件實(shí)體名稱指發(fā)生事件FxszTargetld事件對象名稱的實(shí)體,事件對象名稱指該fDelayTime表現(xiàn)時(shí)間錢-taes10<table>tableseeoriginaldocumentpage11</column></row><table>網(wǎng)絡(luò)數(shù)據(jù)交互為向HLA/RTI網(wǎng)絡(luò)進(jìn)行訂購、接收對象類及對象類屬性、交互類及交互類參數(shù),并對其進(jìn)行差錯(cuò)糾正,并將網(wǎng)絡(luò)數(shù)據(jù)傳輸給表現(xiàn)命令緩沖模塊。網(wǎng)絡(luò)接口模塊的工作流程如圖2所示,用戶通過指定不同的fed文件來加入不同的仿真聯(lián)邦,在網(wǎng)絡(luò)接口初始化聯(lián)邦成員數(shù)據(jù)時(shí)創(chuàng)建RTIAmbassador只于象rtiAmb,F(xiàn)ederateAmbassadort象fedAmb,通過創(chuàng)建連接對象加入聯(lián)邦中,同時(shí)進(jìn)行對象類及對象類屬性、交互類及交互類參數(shù)的發(fā)布和訂購,然后啟動(dòng)偵聽線程,開始偵聽HLA/RTI網(wǎng)絡(luò)中的表現(xiàn)數(shù)據(jù),收到數(shù)據(jù)后,對數(shù)據(jù)進(jìn)行差錯(cuò)檢測后交由表現(xiàn)命令緩沖模塊進(jìn)行處理,否則仿真終止,終止網(wǎng)絡(luò)偵聽線程。圖3為本發(fā)明仿真系統(tǒng)中表現(xiàn)命令緩沖模塊工作過程圖,表現(xiàn)命令緩沖模塊由數(shù)據(jù)解析和表現(xiàn)命令緩沖隊(duì)列組成,負(fù)責(zé)將數(shù)據(jù)解析為可視化表現(xiàn)模塊能夠識別的表現(xiàn)命令,并將每幀三維場景刷新完成前接收到的表現(xiàn)命令進(jìn)行緩沖存儲,保證不會(huì)因數(shù)據(jù)丟失出現(xiàn)場景表現(xiàn)內(nèi)容失真、畫面跳躍等現(xiàn)象。數(shù)據(jù)解析則是根據(jù)接收到的網(wǎng)絡(luò)數(shù)據(jù),將這些數(shù)據(jù)解析為可視化表現(xiàn)模塊能夠識別的表現(xiàn)命令,表現(xiàn)命令類型設(shè)計(jì)如下表5所示,這些命令滿足了可視化表現(xiàn)模塊的操作要求。表5<table>tableseeoriginaldocumentpage11</column></row><table><table>tableseeoriginaldocumentpage12</column></row><table>表現(xiàn)命令緩沖隊(duì)列是一個(gè)動(dòng)態(tài)的內(nèi)存塊,只與系統(tǒng)的可用內(nèi)存相關(guān),不會(huì)受其他因素的影響,該緩沖隊(duì)列滿足先進(jìn)先出的原則,能很好的保證表現(xiàn)時(shí)序。由于視景表現(xiàn)過程涉及到了大量的實(shí)體(40-50個(gè)),經(jīng)過網(wǎng)絡(luò)傳輸?shù)膶?shí)體狀態(tài)信息和事件信息數(shù)據(jù)非常多。而三維表現(xiàn)都有一個(gè)固定的刷新頻率來更新場景的顯示內(nèi)容,刷新頻率與硬件有密切關(guān)系。在數(shù)據(jù)的接收頻率遠(yuǎn)遠(yuǎn)高于三維場景的刷新頻率時(shí),不可能保證接收的數(shù)據(jù)馬上反映到三維表現(xiàn)上。表現(xiàn)命令緩沖隊(duì)列可以解決這一過程中出現(xiàn)數(shù)據(jù)丟失的問題,場景某一幀到下一幀之間,通過網(wǎng)絡(luò)數(shù)據(jù)接口接收到的數(shù)據(jù),均以表現(xiàn)命令的形式保存在這個(gè)緩沖隊(duì)列中。緩沖隊(duì)列的引入,能很好的保證接收數(shù)據(jù)的完整性,從而保證仿真時(shí)序的正確性。表現(xiàn)命令緩沖模塊的工作過程如圖3所示,當(dāng)從網(wǎng)絡(luò)接口模塊接收到數(shù)據(jù)信息后,經(jīng)過數(shù)據(jù)解析轉(zhuǎn)變成可視化表現(xiàn)模塊能夠識別的表現(xiàn)命令,并添加到表現(xiàn)命令緩沖隊(duì)列;場景刷新時(shí),可視化表現(xiàn)模塊從緩沖隊(duì)列中依次取出表現(xiàn)命令進(jìn)行處理,同時(shí)釋方丈內(nèi)存空間。本發(fā)明中的實(shí)體管理模塊,包括實(shí)體類以及實(shí)體管理器,主要提供虛擬實(shí)體的管理維護(hù)功能,供可視化表現(xiàn)模塊調(diào)用。實(shí)體代表在場景中存在的動(dòng)態(tài)物體,有一定的三維表現(xiàn)形式和動(dòng)作。實(shí)體類負(fù)責(zé)定義虛擬實(shí)體的屬性信息,與HLA對象類有一致的屬性并支持對象類的相應(yīng)動(dòng)作。系統(tǒng)為所有的實(shí)體類定義了一個(gè)實(shí)體基類,定義了這些虛擬實(shí)體所公有的一些屬性信息和函數(shù),視景表現(xiàn)所涉及的所有實(shí)體類都由這個(gè)基類派生。實(shí)體類實(shí)現(xiàn)時(shí)要求按實(shí)體基類接口編制,以便實(shí)體管理器進(jìn)行統(tǒng)一的調(diào)用。實(shí)體管理器主要對虛擬實(shí)體進(jìn)行管理和維護(hù),包括新建、更新、刪除和查詢等。實(shí)體管理器通過實(shí)體列表類來實(shí)現(xiàn),實(shí)體列表類由一個(gè)實(shí)體列表和相關(guān)的列表操作函數(shù)組成。實(shí)體管理模塊與網(wǎng)絡(luò)數(shù)據(jù)接口模塊獨(dú)立,也使得整個(gè)可視化系統(tǒng)通用性強(qiáng),在應(yīng)用背景變化時(shí),實(shí)現(xiàn)新的實(shí)體類即可提供對不同應(yīng)用背景的支持。實(shí)體管理模塊的工作過程如圖4所示,可視化表現(xiàn)模塊根據(jù)表現(xiàn)命令中的實(shí)體名稱參數(shù),調(diào)用實(shí)體管理器的接口,獲取具體的虛擬實(shí)體,然后對實(shí)體進(jìn)行相應(yīng)的操作和處理,其中實(shí)體1至實(shí)體N為實(shí)體類的實(shí)例。本發(fā)明中的回調(diào)函數(shù)模塊,包括三維表現(xiàn)過程中一些特殊的實(shí)體特殊表現(xiàn)效果的回調(diào)函數(shù),負(fù)責(zé)所有與實(shí)體類對應(yīng)的特效定義。用于對這些特殊的表現(xiàn)效果進(jìn)行實(shí)現(xiàn),通過Vega回調(diào)添加到三維場景中,增強(qiáng)場景的逼真性。13在三維表現(xiàn)過程中,特別是實(shí)體特效的表現(xiàn)效果,可視化軟件Vega本身所包含的特殊效果(specialeffects)并不能滿足表現(xiàn)的需求,這就需要單獨(dú)開發(fā)這些特殊的表現(xiàn)效果,然后再添加到三維場景中。特殊效果的定制主要基于Vega的SpecialEffects模塊來構(gòu)造。對于每種為系統(tǒng)直接調(diào)用的效果,其實(shí)際上是由一個(gè)或多個(gè)基本特效構(gòu)成的,例如,火箭點(diǎn)火效果,可能就是由火焰效果以及飛行煙霧效果等組成,對于某些特殊效果,還需要用OpenGL進(jìn)行實(shí)時(shí)繪制。而且這些效果之間是存在一定的時(shí)序關(guān)系的,誰先隨后、持續(xù)時(shí)間等都是必須預(yù)定的,系統(tǒng)不可能一~""調(diào)用這些效杲進(jìn)行組合表現(xiàn),因此必須為系統(tǒng)提供一個(gè)封裝良好且完備的效果庫,能直接為系統(tǒng)調(diào)用表現(xiàn),保證本模塊的獨(dú)立性和完整性。實(shí)體動(dòng)作特效可能是由多個(gè)基本特效組合而成,因此實(shí)體的特效創(chuàng)建過程一般依循以下步驟1.基本特效的定制定義各種基本的爆炸,火焰,煙霧,碎片等效果;2.基本特效命名和屬性定制為這些基本特效定義唯一名,以便系統(tǒng)的調(diào)用和刪除的正確性;根據(jù)需求定義基本特效的顏色、生存周期、放大倍數(shù)以及可能的延遲時(shí)間等屬性;3.組合基本特效和定義時(shí)序關(guān)系組合所需的基本特效,并給出它們的時(shí)序關(guān)系;4.定義合成特效屬性為其創(chuàng)建唯一標(biāo)示名,使用特效對象的表現(xiàn)方式定義特效,并把特效加入到場景中,同時(shí)使其附著在相應(yīng)的實(shí)體上;5.自定義特效根據(jù)需要使用OpenGL實(shí)時(shí)繪制特效?;咎匦Ф级x在adf文件中,根據(jù)派生的實(shí)體類分別創(chuàng)建一個(gè)相應(yīng)的回調(diào)函數(shù)管理類,對與該實(shí)體相關(guān)所有特效進(jìn)行統(tǒng)一管理。本發(fā)明中的控制模塊,包括控制引擎、窗口消息和控制腳本三個(gè)部分,負(fù)責(zé)與用戶進(jìn)行交互,響應(yīng)用戶操作,根據(jù)用戶要求調(diào)用可視化表現(xiàn)模塊控制場景;啟動(dòng)網(wǎng)絡(luò)數(shù)據(jù)接口模塊。其中窗口消息對用戶的窗口操作信息提供響應(yīng)函數(shù),負(fù)責(zé)與用戶進(jìn)行交互,響應(yīng)用戶操作;控制腳本根據(jù)具體仿真內(nèi)容的特點(diǎn)設(shè)計(jì)場景切換程序,以便有效的對場景內(nèi)容進(jìn)行觀察;控制引擎是一個(gè)控制邏輯,根據(jù)用戶要求啟動(dòng)網(wǎng)絡(luò)接口模塊,向網(wǎng)絡(luò)數(shù)據(jù)接口模塊發(fā)出加入聯(lián)邦或撤銷聯(lián)邦的指令,并根據(jù)窗口消息的類型和控制腳本的發(fā)生條件調(diào)用可視化表現(xiàn)模塊進(jìn)行場景控制??刂颇K的工作流程如圖5所示,根據(jù)用戶的窗口消息和控制腳本經(jīng)過控制引擎的消息解析,判斷是否滿足觸發(fā)條件,如果滿足調(diào)用可視化表現(xiàn)模塊來控制場景。本發(fā)明中的可視化表現(xiàn)模塊,由基于Vega的可視化引擎、環(huán)境數(shù)據(jù)庫和造型數(shù)據(jù)庫三部分組成,主要負(fù)責(zé)虛擬場景的表現(xiàn)。環(huán)境數(shù)據(jù)庫存儲了構(gòu)建虛擬場景所需要的自然環(huán)境信息;造型數(shù)據(jù)庫保存了所有虛擬實(shí)體的幾何造型和紋理信息;可視化引擎則是仿真數(shù)據(jù)和控制信息在虛擬場景中得以體現(xiàn)的關(guān)鍵橋梁,在Vega可視化圖形庫基礎(chǔ)上實(shí)現(xiàn)的,通過調(diào)用Vega庫函數(shù)來組織場景的顯示和調(diào)度,可以直接在輸出設(shè)備上進(jìn)行顯示,在實(shí)際操作中可視化引擎通過調(diào)用表現(xiàn)命令緩沖模塊,獲得待處理的表現(xiàn)命令,再根據(jù)所述表現(xiàn)命令,調(diào)用實(shí)體管理模塊,執(zhí)行表現(xiàn)命令,同時(shí)在待處理的表現(xiàn)命令為空時(shí)執(zhí)行回調(diào)函數(shù)模塊中定義的實(shí)體的特殊表現(xiàn)效果,表現(xiàn)虛擬場景;同時(shí)可視化引擎還負(fù)責(zé)根據(jù)控制模塊中用戶要求控制場景,例如根據(jù)用戶要求在全局場景或?qū)?shí)體的跟蹤顯示之間進(jìn)行切換??梢暬憩F(xiàn)模塊的工作過程如圖6所示,當(dāng)場景幀更新開始時(shí),調(diào)用表現(xiàn)命令緩沖模塊,掃描表現(xiàn)命令緩沖隊(duì)列,搜尋是否存在需要處理的命令。當(dāng)表現(xiàn)命令緩沖隊(duì)列不為空時(shí),獲得待處理的表現(xiàn)命令,調(diào)用實(shí)體管理模塊,執(zhí)行表現(xiàn)命令;當(dāng)表現(xiàn)命令緩沖隊(duì)列清空后,執(zhí)行回調(diào)函數(shù)模塊中已定義的回調(diào),通過Vega可視化引擎,更新場景,同時(shí)對場景進(jìn)行圖形裁剪。本發(fā)明所述的仿真系統(tǒng)在實(shí)現(xiàn)時(shí)采用多線程管理,運(yùn)行時(shí)包含三個(gè)線程:基于MFC的控制主線程、HLA/RTI網(wǎng)絡(luò)偵聽線程和基于Vega的可視化表現(xiàn)線程。如圖7所示為本發(fā)明多線程工作流程圖,具體的實(shí)現(xiàn)方法如下(1)系統(tǒng)初始化后,啟動(dòng)控制主線程,當(dāng)控制主線程從用戶窗口界面獲得加入聯(lián)邦信息后啟動(dòng)網(wǎng)絡(luò)偵聽線程;(2)網(wǎng)絡(luò)偵聽線程對所加入的聯(lián)邦信息進(jìn)行偵聽,當(dāng)接收到對象類及對象類屬性、交互類及交互類參數(shù)后,對對象類及對象類屬性、交互類及交互類參數(shù)進(jìn)行差錯(cuò)檢測,并將所述檢測后的數(shù)據(jù)解析為表現(xiàn)命令,并存入表現(xiàn)命令緩沖隊(duì)列;(3)啟動(dòng)可視化表現(xiàn)線程,可視化表現(xiàn)線程搜尋表現(xiàn)命令緩沖隊(duì)列,當(dāng)存在待處理的表現(xiàn)命令時(shí),取出待處理的表現(xiàn)命令,調(diào)用相應(yīng)的實(shí)體動(dòng)作,執(zhí)行表現(xiàn)命令;(4)當(dāng)表現(xiàn)命令緩沖隊(duì)列為空時(shí),可視化表現(xiàn)線程執(zhí)行步驟(3)中所述實(shí)體的特殊表現(xiàn)效果,進(jìn)行場景更新。本發(fā)明的整個(gè)系統(tǒng)具體執(zhí)行過程如圖8所示,系統(tǒng)初始化后,控制主線程即啟動(dòng),當(dāng)控制模塊從窗口界面獲得加入聯(lián)邦信息后,調(diào)用網(wǎng)絡(luò)接口模塊加入聯(lián)邦執(zhí)行,同時(shí)啟動(dòng)網(wǎng)絡(luò)偵聽線程。網(wǎng)絡(luò)偵聽線程開始工作后,會(huì)一直對所加入的聯(lián)邦進(jìn)行偵聽,當(dāng)網(wǎng)絡(luò)接口模塊接收到對象類及對象類屬性、交互類及交互類參數(shù)后,進(jìn)行差錯(cuò)檢測并將對象類及對象類屬性、交互類及交互類參數(shù)數(shù)據(jù)發(fā)送給表現(xiàn)命令緩沖模塊。表現(xiàn)命令緩沖模塊將上述數(shù)據(jù)解析為表現(xiàn)命令,存入表現(xiàn)命令緩沖隊(duì)列??梢暬憩F(xiàn)線程開始場景幀更新時(shí),搜尋表現(xiàn)命令緩沖隊(duì)列,存在表現(xiàn)命令時(shí),可視化表現(xiàn)模塊取出需要處理的表現(xiàn)命令,調(diào)用實(shí)體管理模塊,執(zhí)行表現(xiàn)命令,對實(shí)體進(jìn)行操作和處理,其中實(shí)體管理模塊根據(jù)實(shí)體名稱及其他信息對其包含的實(shí)體列表進(jìn)行管理和維護(hù)。當(dāng)清空表現(xiàn)命令緩沖隊(duì)列后,可視化表現(xiàn)模塊執(zhí)行回調(diào)函數(shù)模塊中已定義的回調(diào),即實(shí)體特殊表現(xiàn)效果,調(diào)用Vega可視化引擎,更新場景。這一過程中,控制模塊負(fù)責(zé)與用戶進(jìn)行交互,響應(yīng)用戶操作,并根據(jù)用戶要求調(diào)用可視化表現(xiàn)模塊控制場景。16以上所述,僅為本發(fā)明最佳的具體實(shí)施方式,但本發(fā)明的保護(hù)范圍并不局限于此,任何熟悉本
技術(shù)領(lǐng)域:
的技術(shù)人員在本發(fā)明揭露的技術(shù)范圍內(nèi),可輕易想到的變化或替換,都應(yīng)涵蓋在本發(fā)明的保護(hù)范圍之內(nèi)。本發(fā)明說明書中未作詳細(xì)描述的內(nèi)容屬于本領(lǐng)域?qū)I(yè)技術(shù)人員的公知技術(shù)。權(quán)利要求1、一種基于HLA的通用分布式視景仿真系統(tǒng),其特征在于包括網(wǎng)絡(luò)接口模塊,表現(xiàn)命令緩沖模塊,實(shí)體管理模塊,回調(diào)函數(shù)模塊,控制模塊和可視化表現(xiàn)模塊,網(wǎng)絡(luò)接口模塊根據(jù)控制模塊的指令執(zhí)行聯(lián)邦的加入與撤銷;對象類及對象類屬性、交互類及交互類參數(shù)的定義、發(fā)布和訂購;對象類及對象類屬性、交互類及交互類參數(shù)的差錯(cuò)糾正,并將差錯(cuò)糾正后的對象類及對象類屬性、交互類及交互類參數(shù)傳輸給表現(xiàn)命令緩沖模塊;表現(xiàn)命令緩沖模塊接收網(wǎng)絡(luò)接口模塊輸送的對象類及對象類屬性、交互類及交互類參數(shù),將其解析成表現(xiàn)命令,并進(jìn)行緩沖存儲,等待可視化表現(xiàn)模塊調(diào)度處理;實(shí)體管理模塊定義虛擬實(shí)體的屬性信息,并對虛擬實(shí)體進(jìn)行管理和維護(hù),供可視化表現(xiàn)模塊調(diào)用;回調(diào)函數(shù)模塊對實(shí)體管理模塊中虛擬實(shí)體的特殊表現(xiàn)效果進(jìn)行定義,供可視化表現(xiàn)模塊執(zhí)行;控制模塊與用戶進(jìn)行交互,響應(yīng)用戶操作,根據(jù)用戶要求啟動(dòng)網(wǎng)絡(luò)數(shù)據(jù)接口模塊,并向網(wǎng)絡(luò)數(shù)據(jù)接口模塊發(fā)出加入聯(lián)邦或撤銷聯(lián)邦的指令;根據(jù)用戶要求調(diào)用可視化表現(xiàn)模塊控制場景;可視化表現(xiàn)模塊調(diào)用表現(xiàn)命令緩沖模塊,獲得待處理的表現(xiàn)命令,再根據(jù)所述表現(xiàn)命令,調(diào)用實(shí)體管理模塊,執(zhí)行表現(xiàn)命令;執(zhí)行回調(diào)函數(shù)模塊中定義的實(shí)體的特殊表現(xiàn)效果,表現(xiàn)虛擬場景;根據(jù)控制模塊中用戶要求控制場景。2、根據(jù)權(quán)利要求1所述的一種基于HLA的通用分布式視景仿真系統(tǒng),其特征在于所述網(wǎng)絡(luò)接口模塊包括接口定義和網(wǎng)絡(luò)數(shù)據(jù)交互,其中接口定義對從HLA/RTI訂購的對象類及對象類屬性、交互類及交互類參數(shù)進(jìn)行定義;網(wǎng)絡(luò)數(shù)據(jù)交互為向HLA/RTI進(jìn)行訂購、發(fā)布對象類及對象類屬性、交互類及交互類參數(shù),對其進(jìn)行差錯(cuò)糾正,并將差錯(cuò)糾正后的對象類及對象類屬性、交互類及交互類參數(shù)傳輸給表現(xiàn)命令緩沖模塊;根據(jù)控制模塊的指令執(zhí)行聯(lián)邦的加入與撤銷。3、根據(jù)權(quán)利要求1所述的一種基于HLA的通用分布式視景仿真系統(tǒng),其特征在于所述表現(xiàn)命令緩沖模塊包括數(shù)據(jù)解析和表現(xiàn)命令緩沖隊(duì)列,數(shù)據(jù)解析將對象類及對象類屬性、交互類及交互類參數(shù)解析為可視化表現(xiàn)模塊可以識別的表現(xiàn)命令;表現(xiàn)命令緩沖隊(duì)列將所述表現(xiàn)命令進(jìn)行緩沖存儲。4、根據(jù)權(quán)利要求1所述的一種基于HLA的通用分布式視景仿真系統(tǒng),其特征在于所述實(shí)體管理模塊包括實(shí)體類和實(shí)體管理器,其中實(shí)體類定義虛擬實(shí)體的屬性信息;實(shí)體管理器對所述虛擬實(shí)體進(jìn)行管理和維護(hù),包括新建、更新、刪除和查詢。5、根據(jù)權(quán)利要求1所述的一種基于HLA的通用分布式視景仿真系統(tǒng),其特征在于所述控制模塊包括窗口消息、控制腳本和控制引擎,其中窗口消息負(fù)責(zé)與用戶進(jìn)行交互,相應(yīng)用戶操作;控制腳本根據(jù)具體仿真內(nèi)容的特點(diǎn)設(shè)計(jì)場景切換程序;控制引擎根據(jù)用戶要求啟動(dòng)網(wǎng)絡(luò)接口模塊,向網(wǎng)絡(luò)數(shù)據(jù)接口模塊發(fā)出加入聯(lián)邦或撤銷聯(lián)邦的指令,并根據(jù)窗口消息的用戶要求和控制腳本的發(fā)生條件調(diào)用可視化表現(xiàn)模塊進(jìn)行場景控制。6、根據(jù)權(quán)利要求1所述的一種基于HLA的通用分布式視景仿真系統(tǒng),其特征在于所述可視化表現(xiàn)模塊包括環(huán)境數(shù)據(jù)庫、造型數(shù)據(jù)庫和可視化引擎,其中環(huán)境數(shù)據(jù)庫存儲構(gòu)建虛擬場景所需的自然環(huán)境信息;造型數(shù)據(jù)庫保存虛擬實(shí)體的幾何造型和紋理信息;可視化引擎調(diào)用表現(xiàn)命令緩沖模塊,獲得待處理的表現(xiàn)命令,再根據(jù)所述表現(xiàn)命令,調(diào)用實(shí)體管理模塊,執(zhí)行表現(xiàn)命令,同時(shí)在待處理的表現(xiàn)命令為空時(shí)執(zhí)行回調(diào)函數(shù)模塊中定義的實(shí)體的特殊表現(xiàn)效果,表現(xiàn)虛擬場景;根據(jù)控制模塊中用戶要求控制場景。7、一種基于HLA的通用分布式視景仿真系統(tǒng)的實(shí)現(xiàn)方法,其特征在于為多線程管理,包含三個(gè)線程控制主線程、網(wǎng)絡(luò)偵聽線程和可視化表現(xiàn)線程,具體的實(shí)現(xiàn)方法如下(1)系統(tǒng)初始化后,啟動(dòng)控制主線程,當(dāng)控制主線程從用戶窗口界面獲得加入聯(lián)邦信息后啟動(dòng)網(wǎng)絡(luò)偵聽線程;(2)網(wǎng)絡(luò)偵聽線程對所加入的聯(lián)邦信息進(jìn)行偵聽,當(dāng)接收到對象類及對象類屬性、交互類及交互類參數(shù)后,對對象類及對象類屬性、交互類及交互類參數(shù)進(jìn)行差錯(cuò)檢測,并將所述差錯(cuò)檢測后的數(shù)據(jù)解析為表現(xiàn)命令,存入表現(xiàn)命令緩沖隊(duì)列;(3)啟動(dòng)可視化表現(xiàn)線程,可視化表現(xiàn)線程搜尋表現(xiàn)命令緩沖隊(duì)列,當(dāng)存在待處理的表現(xiàn)命令時(shí),取出待處理的表現(xiàn)命令,調(diào)用相應(yīng)的實(shí)體執(zhí)行表現(xiàn)命令;(4)當(dāng)表現(xiàn)命令緩沖隊(duì)列為空時(shí),可視化表現(xiàn)線程執(zhí)行步驟(3)中所述實(shí)體的特殊表現(xiàn)效果,進(jìn)行場景更新。全文摘要本發(fā)明涉及一種基于HLA的通用分布式視景仿真系統(tǒng)及實(shí)現(xiàn)方法,該方法為多線程管理,包含三個(gè)線程控制主線程、網(wǎng)絡(luò)偵聽線程和可視化表現(xiàn)線程,具體為啟動(dòng)控制主線程,獲得加入聯(lián)邦信息后啟動(dòng)網(wǎng)絡(luò)偵聽線程;網(wǎng)絡(luò)偵聽線程對加入的聯(lián)邦信息進(jìn)行偵聽,當(dāng)接收到對象類及對象類屬性、交互類及交互類參數(shù)后,進(jìn)行差錯(cuò)檢測,并解析為表現(xiàn)命令存入表現(xiàn)命令緩沖隊(duì)列;啟動(dòng)可視化表現(xiàn)線程,搜尋表現(xiàn)命令緩沖隊(duì)列,取出待處理的表現(xiàn)命令,調(diào)用相應(yīng)的實(shí)體,執(zhí)行表現(xiàn)命令;當(dāng)表現(xiàn)命令緩沖隊(duì)列為空時(shí),執(zhí)行實(shí)體的特殊表現(xiàn)效果,進(jìn)行場景更新。該系統(tǒng)具有通用性,無需重新編寫網(wǎng)絡(luò)接口,并且不會(huì)因?yàn)閿?shù)據(jù)丟失出現(xiàn)場景表現(xiàn)內(nèi)容失真、畫面跳躍等現(xiàn)象。文檔編號G06F9/455GK101482828SQ20091007826公開日2009年7月15日申請日期2009年2月24日優(yōu)先權(quán)日2009年2月24日發(fā)明者孔文秦,馨廖,健彭,施國強(qiáng),悅王,雯趙申請人:中國運(yùn)載火箭技術(shù)研究院