專利名稱:基于Virtools/HLA的多通道虛擬試驗(yàn)過(guò)程可視化系統(tǒng)及方法
技術(shù)領(lǐng)域:
本發(fā)明涉及虛擬試驗(yàn)過(guò)程可視化和虛擬現(xiàn)實(shí)領(lǐng)域,特別是涉及基于Virtools/HLA 的多通道虛擬試驗(yàn)過(guò)程可視化系統(tǒng)。
背景技術(shù):
多通道虛擬試驗(yàn)過(guò)程可視化技術(shù)是以可視化模型和數(shù)據(jù)的網(wǎng)絡(luò)傳輸、虛擬現(xiàn)實(shí)環(huán) 境的合成和三維(二維)可視化系統(tǒng)的控制和管理等技術(shù)為基礎(chǔ),將虛擬試驗(yàn)過(guò)程可視化 技術(shù)與高層體系結(jié)構(gòu)(High Level Architecture,簡(jiǎn)稱HLA)相結(jié)合,實(shí)現(xiàn)分布式的虛擬試 驗(yàn)過(guò)程多通道可視化表現(xiàn),為分布式虛擬試驗(yàn)過(guò)程提供了一種直觀的表現(xiàn)形式,能夠給用 戶以很強(qiáng)的沉浸感,在多個(gè)領(lǐng)域具有廣泛的應(yīng)用前景。達(dá)索公司虛擬現(xiàn)實(shí)開(kāi)發(fā)平臺(tái)Virtools的三維引擎在分布式仿真和虛擬試驗(yàn)過(guò)程 可視化領(lǐng)域逐步得到了應(yīng)用,國(guó)內(nèi)外對(duì)于Virtools應(yīng)用研究都是直接基于Virtools三維 引擎和Server模塊進(jìn)行分布式虛擬現(xiàn)實(shí)系統(tǒng)的開(kāi)發(fā),并利用Virtools Server的網(wǎng)絡(luò)消 息處理機(jī)制和網(wǎng)絡(luò)傳輸系統(tǒng)實(shí)現(xiàn)了與HLA仿真聯(lián)邦的數(shù)據(jù)交換,構(gòu)建了基于服務(wù)器數(shù)據(jù)轉(zhuǎn) 換的Virtools/HLA多聯(lián)邦仿真系統(tǒng),但這種Virtools/HLA之間的消息和數(shù)據(jù)交換機(jī)制受 Virtools Server的C/S網(wǎng)絡(luò)結(jié)構(gòu)的制約,每一個(gè)聯(lián)邦節(jié)點(diǎn)必須要安裝Virtools的客戶端, 而且,所有的數(shù)據(jù)交換都需要通過(guò)Virtools的網(wǎng)絡(luò)服務(wù)器實(shí)現(xiàn),限制了聯(lián)邦之間基于HLA 的數(shù)據(jù)交換方式,虛擬試驗(yàn)可視化顯示節(jié)點(diǎn)不能脫離仿真聯(lián)邦成員單獨(dú)在分布式仿真系統(tǒng) 中運(yùn)行。目前,還沒(méi)有一種基于Virtools/HLA的多通道虛擬試驗(yàn)過(guò)程可視化方法。
發(fā)明內(nèi)容
本發(fā)明的技術(shù)解決問(wèn)題是克服現(xiàn)有技術(shù)的不足,提供一種基于Virtools/HLA的 多通道虛擬試驗(yàn)過(guò)程可視化方法,該方法突破HLA多通道顯示系統(tǒng)與HLA體系架構(gòu)之間的 數(shù)據(jù)通信和消息交互機(jī)制,基于Virtools SDK開(kāi)發(fā)接口實(shí)現(xiàn)了 HLA環(huán)境與Virtools引擎 之間的交互控制,構(gòu)建了支持HLA接口的多通道虛擬試驗(yàn)過(guò)程可視化系統(tǒng)。本發(fā)明可視化系統(tǒng)的技術(shù)解決方案是一種基于Virtools/HLA的多通道虛擬試 驗(yàn)過(guò)程可視化系統(tǒng),包括多通道顯示模塊,HLA接口模塊,表現(xiàn)命令緩沖模塊,可視化表現(xiàn)控 制管理模塊和消息數(shù)據(jù)轉(zhuǎn)換管理模塊;所述的可視化系統(tǒng)運(yùn)行在計(jì)算機(jī)集群上,所述的計(jì) 算機(jī)集群包括可視化表現(xiàn)控制服務(wù)器和可視化顯示節(jié)點(diǎn),可視化表現(xiàn)控制服務(wù)器與可視化 顯示節(jié)點(diǎn)計(jì)算機(jī)通過(guò)以太網(wǎng)相連,可視化顯示節(jié)點(diǎn)包括一個(gè)主節(jié)點(diǎn)和多個(gè)從屬節(jié)點(diǎn),可視 化顯示節(jié)點(diǎn)上配置可視化引擎Virtools ;HLA接口模塊,與HLA/RTI網(wǎng)絡(luò)連接,從HLA/RTI網(wǎng)絡(luò)接收可視化模型表現(xiàn)數(shù)據(jù),并 進(jìn)行差錯(cuò)檢測(cè)、糾錯(cuò)處理后傳輸給表現(xiàn)命令緩沖模塊;表現(xiàn)命令緩沖模塊,接收HLA接口模塊輸送的可視化模型表現(xiàn)數(shù)據(jù),按照Virtools的刷新頻率對(duì)所述的表現(xiàn)數(shù)據(jù)進(jìn)行緩沖處理,并將緩沖處理后的表現(xiàn)數(shù)據(jù)解析成 表現(xiàn)命令,將表現(xiàn)命令存儲(chǔ)在緩沖隊(duì)列中,等待消息數(shù)據(jù)轉(zhuǎn)換管理模塊處理;消息數(shù)據(jù)轉(zhuǎn)換管理模塊,從緩沖隊(duì)列中獲取表現(xiàn)命令,并將獲取的表現(xiàn)命令進(jìn)行 格式轉(zhuǎn)換,轉(zhuǎn)換成虛擬試驗(yàn)可視化場(chǎng)景中實(shí)體對(duì)象和實(shí)體表現(xiàn)信息,并將轉(zhuǎn)換后的實(shí)體對(duì) 象和實(shí)體表現(xiàn)信息,即需要可視化表現(xiàn)的數(shù)據(jù)和信息發(fā)送給可視化表現(xiàn)控制管理模塊進(jìn)行 可視化表現(xiàn);可視化表現(xiàn)控制管理模塊,初始化可視化表現(xiàn)配置參數(shù)和交互控制界面,從消息 數(shù)據(jù)轉(zhuǎn)換管理模塊接收并存儲(chǔ)需要可視化表現(xiàn)的數(shù)據(jù)和消息,根據(jù)可視化表現(xiàn)數(shù)據(jù)在可視 化引擎Virtools中進(jìn)行實(shí)體表現(xiàn)、特效生成、模型數(shù)據(jù)驅(qū)動(dòng)和相機(jī)切換管理,以及虛擬試 驗(yàn)過(guò)程可視化系統(tǒng)運(yùn)行過(guò)程中交互控制,并將存貯的可視化表現(xiàn)消息發(fā)送給多通道顯示模 塊;多通道顯示模塊,通過(guò)接收可視化表現(xiàn)消息,觸發(fā)安裝在可視化顯示節(jié)點(diǎn)計(jì)算機(jī) 上的遠(yuǎn)程可視化控制程序,實(shí)現(xiàn)在集群式計(jì)算機(jī)控制多個(gè)虛擬試驗(yàn)過(guò)程可視化顯示節(jié)點(diǎn)的 多通道同步運(yùn)行。HLA接口模塊包括網(wǎng)絡(luò)接口部件和差錯(cuò)檢測(cè)/糾錯(cuò)部件兩部分,具體工作流程如 下首先,用戶通過(guò)創(chuàng)建連接對(duì)象加入聯(lián)邦中,同時(shí)進(jìn)行對(duì)象類及對(duì)象類屬性參數(shù)的 發(fā)布和訂購(gòu);其次,網(wǎng)絡(luò)接口部件對(duì)需要從HLA/RTI網(wǎng)絡(luò)訂購(gòu)的可視化模型的表現(xiàn)數(shù)據(jù)按照對(duì) 象類的方式進(jìn)行定義,并啟動(dòng)偵聽(tīng)線程,開(kāi)始偵聽(tīng)HLA/RTI網(wǎng)絡(luò)中的可視化模型表現(xiàn)數(shù)據(jù);最后,差錯(cuò)檢測(cè)/糾錯(cuò)部件對(duì)獲取的可視化模型表現(xiàn)數(shù)據(jù)進(jìn)行差錯(cuò)檢測(cè)、糾錯(cuò)處理。所述的消息數(shù)據(jù)轉(zhuǎn)換管理模塊包括緩沖隊(duì)列數(shù)據(jù)讀取子模塊、消息數(shù)據(jù)轉(zhuǎn)換管理 器、表現(xiàn)數(shù)據(jù)和消息發(fā)送管理子模塊;緩沖隊(duì)列數(shù)據(jù)讀取子模塊根據(jù)可視化表現(xiàn)的時(shí)間步長(zhǎng)從緩沖隊(duì)列中獲取表現(xiàn)命 令,消息數(shù)據(jù)轉(zhuǎn)換管理器根據(jù)接收時(shí)間將可視化表現(xiàn)命令轉(zhuǎn)換成帶有時(shí)間參數(shù)的模型ID、 模型位置和模型姿態(tài)信息數(shù)據(jù),即實(shí)體對(duì)象和實(shí)體表現(xiàn)信息數(shù)據(jù),可視化表現(xiàn)數(shù)據(jù)和消息 發(fā)送管理子模塊負(fù)責(zé)將轉(zhuǎn)換后的實(shí)體對(duì)象和實(shí)體表現(xiàn)信息數(shù)據(jù)發(fā)送到基于Virtools三維 顯示引擎開(kāi)發(fā)的可視化表現(xiàn)控制管理模塊中進(jìn)行處理。所述的可視化表現(xiàn)控制管理模塊包括可視化運(yùn)行參數(shù)配置子模塊、系統(tǒng)運(yùn)行控 制管理子模塊、實(shí)體管理子模塊、表現(xiàn)數(shù)據(jù)管理子模塊、相機(jī)管理子模塊和交互控制子模 塊;可視化運(yùn)行參數(shù)配置子模塊,根據(jù)系統(tǒng)運(yùn)行環(huán)境配置全局控制參數(shù)可視化場(chǎng)景 縮放比例和初始相機(jī)位置參數(shù);根據(jù)實(shí)體列表配置管理參數(shù)進(jìn)行場(chǎng)景實(shí)體和天體對(duì)象可視 化實(shí)體對(duì)象的模型加載配置;根據(jù)本地驅(qū)動(dòng)數(shù)據(jù)配置參數(shù)進(jìn)行數(shù)據(jù)文件加載和存貯的配 置;根據(jù)特效事件配置參數(shù)完成特效的觸發(fā)、運(yùn)行時(shí)間和特效模型的加載配置,從而完成實(shí) 體管理子模塊、表現(xiàn)數(shù)據(jù)管理子模塊、相機(jī)管理子模塊和交互控制子模塊的初始化配置;系統(tǒng)運(yùn)行控制管理子模塊,首先,對(duì)可視化表現(xiàn)控制管理模塊進(jìn)行初始化,加載可 視化運(yùn)行參數(shù)配置子模塊指定的實(shí)體對(duì)象模型和數(shù)據(jù);其次,從消息數(shù)據(jù)轉(zhuǎn)換管理模塊接收需要可視化表現(xiàn)的數(shù)據(jù)和消息,并控制表現(xiàn)數(shù)據(jù)管理子模塊對(duì)接收的可視化表現(xiàn)數(shù)據(jù)、 消息和本地存貯數(shù)據(jù)進(jìn)行存貯;然后,根據(jù)所述的可視化表現(xiàn)數(shù)據(jù)進(jìn)行時(shí)間管理和過(guò)程控 制,具體為根據(jù)可視化表現(xiàn)數(shù)據(jù)中的時(shí)間參數(shù),以渲染周期為時(shí)間步長(zhǎng)進(jìn)行系統(tǒng)時(shí)間推 進(jìn),根據(jù)可視化表現(xiàn)數(shù)據(jù)中的實(shí)體對(duì)象信息驅(qū)動(dòng)實(shí)體管理子模塊完成可視化表現(xiàn)實(shí)體的添 加刪除、狀態(tài)查詢和屬性管理;根據(jù)可視化表現(xiàn)數(shù)據(jù)對(duì)相機(jī)的要求,驅(qū)動(dòng)相機(jī)管理子模塊進(jìn) 行相機(jī)動(dòng)態(tài)創(chuàng)建、相機(jī)觀察點(diǎn)的捕捉、相機(jī)的切換和控制管理;最后,將存貯的可視化表現(xiàn) 消息發(fā)送給多通道顯示模塊;交互控制子模塊,根據(jù)可視化表現(xiàn)控制管理模塊提供的鼠標(biāo) 和鍵盤(pán)交互接口進(jìn)行交互控制。所述的多通道顯示模塊利用幀同步方法實(shí)現(xiàn)多個(gè)虛擬試驗(yàn)過(guò)程可視化顯示節(jié)點(diǎn) 的多通道同步運(yùn)行。所述的幀同步方法具體步驟如下1)在主節(jié)點(diǎn)上創(chuàng)建接收數(shù)據(jù)線程、渲染顯示線程和創(chuàng)建同步控制線程;2)主節(jié)點(diǎn)接收可視化表現(xiàn)數(shù)據(jù),推進(jìn)渲染顯示線程,從節(jié)點(diǎn)接收所有待渲染幀的 序號(hào),并將接收的待渲染幀序號(hào)返回給主節(jié)點(diǎn);3)主節(jié)點(diǎn)接收從節(jié)點(diǎn)返回的渲染幀序號(hào),判斷渲染幀序號(hào)與主節(jié)點(diǎn)渲染顯示線程 是否一致,如果一致則主節(jié)點(diǎn)和從節(jié)點(diǎn)進(jìn)行渲染,否則一直等待;4)所有節(jié)點(diǎn)渲染完成后,清空上一幀的數(shù)據(jù),讀入下一幀渲染數(shù)據(jù),從步驟2)開(kāi) 始循環(huán)執(zhí)行。本發(fā)明可視化方法的技術(shù)解決方案是一種基于Virtools/HLA的多通道虛擬試 驗(yàn)過(guò)程可視化方法,所述方法依托的系統(tǒng)包括一個(gè)可視化表現(xiàn)控制服務(wù)器和可視化顯示節(jié) 點(diǎn)計(jì)算機(jī),可視化表現(xiàn)控制服務(wù)器與可視化顯示節(jié)點(diǎn)計(jì)算機(jī)通過(guò)以太網(wǎng)相連,可視化顯示 節(jié)點(diǎn)包括一個(gè)主節(jié)點(diǎn)和多個(gè)從屬節(jié)點(diǎn),可視化顯示節(jié)點(diǎn)上配置可視化引擎Virtools,方法 步驟如下(1)可視化表現(xiàn)控制服務(wù)器從HLA/RTI網(wǎng)絡(luò)上偵聽(tīng)可視化表現(xiàn)數(shù)據(jù),并對(duì)獲取的 可視化表現(xiàn)數(shù)據(jù)進(jìn)行差錯(cuò)檢測(cè)和糾錯(cuò)處理;所述的可視化模型的表現(xiàn)數(shù)據(jù)按照對(duì)象類的方 式進(jìn)行定義;(2)在可視化表現(xiàn)控制服務(wù)器上按照Virtools的刷新頻率對(duì)差錯(cuò)檢測(cè)和糾錯(cuò)處 理后的數(shù)據(jù)進(jìn)行緩沖處理,并將緩沖處理后的表現(xiàn)數(shù)據(jù)解析成表現(xiàn)命令,將表現(xiàn)命令存儲(chǔ) 在緩沖隊(duì)列中;(3)根據(jù)可視化表現(xiàn)的時(shí)間步長(zhǎng)從緩沖隊(duì)列中獲取表現(xiàn)命令,根據(jù)接收時(shí)間將可 視化表現(xiàn)命令轉(zhuǎn)換成帶有時(shí)間參數(shù)的模型ID、模型位置和模型姿態(tài)信息數(shù)據(jù),即實(shí)體對(duì)象 和實(shí)體表現(xiàn)信息數(shù)據(jù);(4)初始化可視化表現(xiàn)配置參數(shù)和交互控制界面,并將上述實(shí)體對(duì)象和實(shí)體表現(xiàn) 信息數(shù)據(jù),即需要可視化表現(xiàn)的數(shù)據(jù)和消息在可視化表現(xiàn)控制管理模塊內(nèi)進(jìn)行存儲(chǔ);(5)根據(jù)可視化表現(xiàn)數(shù)據(jù)在可視化引擎Virtools中進(jìn)行實(shí)體表現(xiàn)、特效生成、模 型數(shù)據(jù)驅(qū)動(dòng)和相機(jī)切換管理,以及可視化過(guò)程中的交互控制;(6)將步驟(5)的過(guò)程分布到所有顯示節(jié)點(diǎn)上,通過(guò)顯示節(jié)點(diǎn)中主節(jié)點(diǎn)與從節(jié)點(diǎn) 之間的信息交互,使所有的顯示節(jié)點(diǎn)同步執(zhí)行顯示場(chǎng)景的操作,實(shí)現(xiàn)多通道虛擬試驗(yàn)過(guò)程 可視化。所述步驟(6)中所有顯示節(jié)點(diǎn)同步執(zhí)行顯示場(chǎng)景的操作具體實(shí)現(xiàn)步驟如下
(6. 1)在主節(jié)點(diǎn)上創(chuàng)建接收數(shù)據(jù)線程、渲染顯示線程和創(chuàng)建同步控制線程;(6. 2)主節(jié)點(diǎn)接收可視化表現(xiàn)數(shù)據(jù),推進(jìn)渲染顯示線程,從節(jié)點(diǎn)接收所有待渲染幀 的序號(hào),并將接收的待渲染幀序號(hào)返回給主節(jié)點(diǎn);(6. 3)主節(jié)點(diǎn)接收從節(jié)點(diǎn)返回的渲染幀序號(hào),判斷渲染幀序號(hào)與主節(jié)點(diǎn)渲染顯示 線程是否一致,如果一致則主節(jié)點(diǎn)和從節(jié)點(diǎn)進(jìn)行渲染,否則一直等待;(6. 4)所有節(jié)點(diǎn)渲染完成后,清空上一幀的數(shù)據(jù),讀入下一幀渲染數(shù)據(jù),從步驟 (6. 2)開(kāi)始循環(huán)執(zhí)行。本發(fā)明與現(xiàn)有技術(shù)相比有益效果為(1)本發(fā)明多通道虛擬試驗(yàn)過(guò)程可視化系統(tǒng)的HLA接口采用對(duì)象類及對(duì)象類屬 性、交互類及交互類參數(shù),在分布式仿真系統(tǒng)的對(duì)象類、實(shí)體數(shù)目發(fā)生變化的情況下,無(wú)需 重新編寫(xiě)網(wǎng)絡(luò)接口 ;同時(shí)系統(tǒng)采用實(shí)體管理子模塊,通過(guò)實(shí)體對(duì)場(chǎng)景進(jìn)行管理,使得本系統(tǒng) 具有通用性。(2)本發(fā)明將HLA接口與多通道虛擬試驗(yàn)過(guò)程可視化系統(tǒng)之間的信息交互通過(guò)消 息數(shù)據(jù)轉(zhuǎn)換管理模塊橋接實(shí)現(xiàn),打通了異構(gòu)系統(tǒng)之間的消息交互壁壘,以模塊化的方式降 低了 HLA接口和可視化表現(xiàn)系統(tǒng)之間的耦合。(3)本發(fā)明采用表現(xiàn)命令緩沖隊(duì)列,解決了三維場(chǎng)景刷新頻率與網(wǎng)絡(luò)數(shù)據(jù)接收頻 率不匹配的問(wèn)題,不會(huì)因數(shù)據(jù)丟失出現(xiàn)場(chǎng)景表現(xiàn)內(nèi)容失真、畫(huà)面跳躍等現(xiàn)象。(4)本發(fā)明采用幀同步的控制方式,實(shí)現(xiàn)了多通道顯示過(guò)程中的同步問(wèn)題。(5)本發(fā)明多通道虛擬試驗(yàn)過(guò)程可視化系統(tǒng)采用系統(tǒng)運(yùn)行配置管理機(jī)制,實(shí)現(xiàn)了 系統(tǒng)運(yùn)行過(guò)程中參數(shù)、實(shí)體對(duì)象、相機(jī)、特效事件和驅(qū)動(dòng)數(shù)據(jù)靈活配置,增加了系統(tǒng)的通用 性和可重用性。
圖1為本發(fā)明多通道虛擬試驗(yàn)過(guò)程可視化系統(tǒng)結(jié)構(gòu)圖;圖2為本發(fā)明多通道虛擬試驗(yàn)過(guò)程可視化系統(tǒng)的HLA接口模塊結(jié)構(gòu)圖;圖3為本發(fā)明多通道虛擬試驗(yàn)過(guò)程可視化系統(tǒng)中的表現(xiàn)命令緩沖模塊工作過(guò)程圖;圖4為本發(fā)明多通道虛擬試驗(yàn)過(guò)程可視化系統(tǒng)中的表現(xiàn)命令緩沖模塊工作過(guò)程 圖;圖5為本發(fā)明多通道虛擬試驗(yàn)過(guò)程可視化系統(tǒng)中的消息數(shù)據(jù)轉(zhuǎn)換管理模塊工作 過(guò)程圖;圖6為本發(fā)明多通道虛擬試驗(yàn)過(guò)程可視化系統(tǒng)中的多通道顯示表現(xiàn)模塊工作過(guò) 程圖;圖7為本發(fā)明多通道虛擬試驗(yàn)過(guò)程可視化系統(tǒng)中的多通道顯示同步控制機(jī)制示 意圖;圖8為本發(fā)明多通道虛擬試驗(yàn)過(guò)程可視化系統(tǒng)運(yùn)行環(huán)境構(gòu)成示意圖;圖9為本發(fā)明可視化表現(xiàn)控制管理模塊的系統(tǒng)運(yùn)行時(shí)序圖。
具體實(shí)施例方式如圖1所示為本發(fā)明支持HLA接口的多通道虛擬試驗(yàn)過(guò)程可視化系統(tǒng)結(jié)構(gòu)圖,包括多通道顯示模塊、可視化表現(xiàn)控制管理模塊、消息數(shù)據(jù)轉(zhuǎn)換管理模塊、表現(xiàn)命令緩沖模塊 和HLA接口模塊。下面詳細(xì)介紹每個(gè)模塊的具體實(shí)現(xiàn)過(guò)程。一、HLA 接 口模塊HLA接口模塊負(fù)責(zé)實(shí)現(xiàn)從HLA/RTI (Run Time Infrastructure,運(yùn)行時(shí)體系結(jié)構(gòu)) 上獲取需要可視化模型的表現(xiàn)數(shù)據(jù),包括可視化模型的名稱信息和表現(xiàn)屬性數(shù)據(jù)??梢暬P偷谋憩F(xiàn)數(shù)據(jù)按照對(duì)象類方式進(jìn)行定義,具體定義格式參見(jiàn)表1、2。表1對(duì)象類結(jié)構(gòu)表
對(duì)象類結(jié)構(gòu)表
Object VREntity表2對(duì)象類屬性表 HLA接口模塊的工作流程如圖2所示,用戶通過(guò)創(chuàng)建連接對(duì)象加入聯(lián)邦中,同時(shí)進(jìn) 行對(duì)象類及對(duì)象類屬性進(jìn)行發(fā)布和訂購(gòu);網(wǎng)絡(luò)接口部件對(duì)需要從HLA/RTI網(wǎng)絡(luò)訂購(gòu)的可視 化模型的表現(xiàn)數(shù)據(jù)按照對(duì)象類的方式進(jìn)行定義,并啟動(dòng)偵聽(tīng)線程,開(kāi)始偵聽(tīng)HLA/RTI網(wǎng)絡(luò) 中的可視化模型表現(xiàn)數(shù)據(jù);收到數(shù)據(jù)后,差錯(cuò)檢測(cè)/糾錯(cuò)部件對(duì)獲取的可視化模型表現(xiàn)數(shù) 據(jù)進(jìn)行差錯(cuò)檢測(cè)、糾錯(cuò)處理,并將處理后的數(shù)據(jù)交由表現(xiàn)命令緩沖模塊進(jìn)行處理;如果沒(méi)有 偵聽(tīng)到數(shù)據(jù)則虛擬試驗(yàn)可視化系統(tǒng)運(yùn)行終止,同時(shí)終止網(wǎng)絡(luò)偵聽(tīng)線程。上述差錯(cuò)檢測(cè)、糾錯(cuò)處理采用常用網(wǎng)絡(luò)數(shù)據(jù)傳輸過(guò)程中的方法,可視化表現(xiàn)數(shù)據(jù) 的極值和差值檢驗(yàn)算法,上述算法為本領(lǐng)域技術(shù)人員公知常識(shí),這里不再進(jìn)行詳細(xì)說(shuō)明。二、表現(xiàn)命令緩沖模塊圖3為本發(fā)明支持HLA接口的多通道虛擬試驗(yàn)過(guò)程可視化系統(tǒng)中表現(xiàn)命令緩沖模 塊工作過(guò)程圖,表現(xiàn)命令緩沖模塊由數(shù)據(jù)解析和表現(xiàn)命令緩沖隊(duì)列組成,負(fù)責(zé)接收HLA接 口模塊輸送的可視化模型表現(xiàn)數(shù)據(jù),按照Virtools的刷新頻率對(duì)所述的表現(xiàn)數(shù)據(jù)進(jìn)行緩 沖處理,并將緩沖處理后的表現(xiàn)數(shù)據(jù)解析成表現(xiàn)命令,將表現(xiàn)命令存儲(chǔ)在緩沖隊(duì)列中,等待消息數(shù)據(jù)轉(zhuǎn)換管理模塊處理。數(shù)據(jù)解析則是根據(jù)HLA接口模塊發(fā)送的可視化表現(xiàn)數(shù)據(jù),將這些數(shù)據(jù)解析為可視 化表現(xiàn)控制管理模塊能夠識(shí)別的表現(xiàn)命令,這些命令滿足了可視化表現(xiàn)控制管理模塊的操 作要求。表現(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)都有一個(gè) 固定的刷新頻率來(lái)更新場(chǎng)景的顯示內(nèi)容,刷新頻率與硬件有密切關(guān)系,在數(shù)據(jù)的接收頻率 遠(yuǎn)遠(yuǎn)高于三維場(chǎng)景的刷新頻率時(shí),不可能保證接收的數(shù)據(jù)馬上反映到三維表現(xiàn)上。表現(xiàn)命 令緩沖隊(duì)列可以解決這一過(guò)程中出現(xiàn)數(shù)據(jù)丟失的問(wèn)題,場(chǎng)景某一幀到下一幀之間,通過(guò)HLA 接口接收到的數(shù)據(jù),均以表現(xiàn)命令的形式保存在這個(gè)緩沖隊(duì)列中。緩沖隊(duì)列的引入,能很好 的保證接收數(shù)據(jù)的完整性,從而保證系統(tǒng)運(yùn)行時(shí)序的正確性。由于利用HLA接口從RTI網(wǎng)絡(luò)獲取表現(xiàn)數(shù)據(jù)的時(shí)間間隔小周期短,數(shù)據(jù)動(dòng)態(tài)存儲(chǔ) 要求高,同時(shí),可視化渲染引擎Virtools支持的刷新頻率和周期基本確定,所以,表現(xiàn)命令 緩沖模塊按照Virtools最高刷新頻率對(duì)可視化模型的表現(xiàn)數(shù)據(jù)進(jìn)行緩沖處理,實(shí)現(xiàn)可視 化表現(xiàn)數(shù)據(jù)規(guī)模的縮小,并將緩沖處理后的數(shù)據(jù)解析轉(zhuǎn)變成可視化表現(xiàn)模塊能夠識(shí)別的表 現(xiàn)命令,即將對(duì)象類可視化表現(xiàn)數(shù)據(jù)轉(zhuǎn)換成為按照固定時(shí)間周期間隔存貯的數(shù)據(jù)信息,包 括可視化對(duì)象和對(duì)象屬性,并添加到表現(xiàn)命令緩沖隊(duì)列;場(chǎng)景刷新時(shí),可視化表現(xiàn)控制管理 模塊從緩沖隊(duì)列中依次取出表現(xiàn)命令進(jìn)行處理,同時(shí)釋放內(nèi)存空間。三、消息數(shù)據(jù)轉(zhuǎn)換管理模塊圖4為本發(fā)明支持HLA接口的多通道虛擬試驗(yàn)過(guò)程可視化系統(tǒng)中消息數(shù)據(jù)轉(zhuǎn)換管 理模塊工作過(guò)程圖,消息數(shù)據(jù)轉(zhuǎn)換管理模塊包括緩沖隊(duì)列數(shù)據(jù)讀取子模塊、消息數(shù)據(jù)轉(zhuǎn)換 管理器、表現(xiàn)數(shù)據(jù)和消息發(fā)送管理子模塊??梢暬憩F(xiàn)時(shí)間步長(zhǎng)的選取與運(yùn)行環(huán)境的硬件配置相關(guān),刷新頻率30 60次每 秒。緩沖隊(duì)列數(shù)據(jù)讀取子模塊根據(jù)可視化表現(xiàn)的時(shí)間步長(zhǎng),從緩沖隊(duì)列中獲取表現(xiàn)命令,基 于Virtools SDK提供的API接口構(gòu)建的消息數(shù)據(jù)轉(zhuǎn)換管理器根據(jù)接收時(shí)間將可視化表現(xiàn) 命令轉(zhuǎn)換成帶有時(shí)間參數(shù)的模型ID、模型位置和模型姿態(tài)信息數(shù)據(jù),即實(shí)體對(duì)象和實(shí)體表 現(xiàn)信息,可視化表現(xiàn)數(shù)據(jù)和消息發(fā)送管理子模塊負(fù)責(zé)將轉(zhuǎn)換后的實(shí)體對(duì)象和實(shí)體表現(xiàn)信息 數(shù)據(jù)發(fā)送到基于Virtools三維顯示引擎開(kāi)發(fā)的可視化表現(xiàn)控制管理模塊中進(jìn)行處理。通過(guò)HLA接口接收的可視化表現(xiàn)數(shù)據(jù),經(jīng)過(guò)表現(xiàn)命令緩沖模塊和消息數(shù)據(jù)轉(zhuǎn)換管 理模塊的處理(也就是上述實(shí)體對(duì)象和實(shí)體表現(xiàn)信息),按照時(shí)間序列以數(shù)組的方式存貯 在多通道顯示節(jié)點(diǎn)的本地?cái)?shù)據(jù)庫(kù)中,根據(jù)可視化表現(xiàn)的需求進(jìn)行數(shù)據(jù)調(diào)用??梢暬P偷膶?shí)體對(duì)象和實(shí)體表現(xiàn)信息格式如下表3所示表3實(shí)體對(duì)象和實(shí)體表現(xiàn)信息結(jié)構(gòu)表 四、可視化表現(xiàn)控制管理模塊
可視化表現(xiàn)控制管理模塊初始化可視化表現(xiàn)配置參數(shù)和交互控制界面,從消息數(shù) 據(jù)轉(zhuǎn)換管理模塊接收并存儲(chǔ)需要可視化表現(xiàn)的數(shù)據(jù)和消息,根據(jù)可視化表現(xiàn)數(shù)據(jù)在可視化 引擎Virtools中進(jìn)行實(shí)體表現(xiàn)、特效生成、模型數(shù)據(jù)驅(qū)動(dòng)和相機(jī)切換管理,以及虛擬試驗(yàn) 過(guò)程可視化系統(tǒng)運(yùn)行過(guò)程中交互控制,并將存貯的可視化表現(xiàn)消息發(fā)送給多通道顯示模 塊;圖5為本發(fā)明支持HLA接口的多通道虛擬試驗(yàn)過(guò)程可視化系統(tǒng)中可視化表現(xiàn)控制 管理模塊的構(gòu)成圖,可視化表現(xiàn)控制管理模塊包括可視化運(yùn)行參數(shù)配置子模塊、系統(tǒng)運(yùn)行 控制管理子模塊、實(shí)體管理子模塊、表現(xiàn)數(shù)據(jù)管理子模塊、相機(jī)管理子模塊和交互控制子模 塊??梢暬\(yùn)行參數(shù)配置子模塊實(shí)現(xiàn)系統(tǒng)運(yùn)行全局控制參數(shù)的配置管理、實(shí)體列表配 置管理、本地驅(qū)動(dòng)數(shù)據(jù)配置管理、特效事件的配置;具體實(shí)現(xiàn)過(guò)程如下可視化運(yùn)行參數(shù)配置子模塊,根據(jù)系統(tǒng)運(yùn)行環(huán)境配置全局控制參數(shù),全局控制參 數(shù)包括可視化場(chǎng)景縮放比例和初始相機(jī)位置參數(shù);從而完成相機(jī)管理子模塊和交互控制子 模塊的初始化配置;根據(jù)實(shí)體列表配置管理參數(shù)進(jìn)行場(chǎng)景實(shí)體和天體對(duì)象可視化實(shí)體對(duì)象 的模型加載配置,完成實(shí)體管理子模塊的初始化配置;此處要求提前根據(jù)可視化對(duì)象將可 視化對(duì)象場(chǎng)景、天體對(duì)象進(jìn)行建模并在當(dāng)?shù)卮鎯?chǔ),可視化場(chǎng)景實(shí)體模型、天體對(duì)象可視化實(shí) 體對(duì)象模型可以采用美國(guó)MAK公司的CREATER軟件等進(jìn)行建模,該方法為公知方法,這里不 再詳細(xì)進(jìn)行說(shuō)明。以可視化火箭發(fā)射過(guò)程為例,需建立的場(chǎng)景實(shí)體模型為火箭發(fā)射場(chǎng)及發(fā) 射場(chǎng)周邊的環(huán)境,天體對(duì)象可視化實(shí)體對(duì)象模型為自然界存在的天體對(duì)象,例如地球、月亮 和太陽(yáng)等。根據(jù)本地驅(qū)動(dòng)數(shù)據(jù)配置參數(shù)進(jìn)行數(shù)據(jù)文件加載和存貯的配置,從而完成表現(xiàn)數(shù) 據(jù)管理子模塊的初始化配置;根據(jù)特效事件配置參數(shù)完成特效的觸發(fā)、運(yùn)行時(shí)間和特效模 型的加載配置。例如可視化火箭發(fā)射過(guò)程,則特效事件主要為火箭發(fā)射尾焰和火箭級(jí)間分 離,該尾焰模型及級(jí)間分離模型同樣采用美國(guó)MAK公司的CREATER軟件進(jìn)行建模并存儲(chǔ)在 當(dāng)?shù)?,將尾焰和?jí)間分離模型根據(jù)火箭發(fā)射時(shí)序進(jìn)行觸發(fā)。系統(tǒng)運(yùn)行控制管理子模塊,首先,對(duì)可視化表現(xiàn)控制管理模塊進(jìn)行初始化,加載可 視化運(yùn)行參數(shù)配置子模塊指定的實(shí)體對(duì)象模型和數(shù)據(jù);其次,從消息數(shù)據(jù)轉(zhuǎn)換管理模塊接 收需要可視化表現(xiàn)的數(shù)據(jù)和消息,并控制表現(xiàn)數(shù)據(jù)管理子模塊對(duì)接收的可視化表現(xiàn)數(shù)據(jù)、 消息和本地存貯數(shù)據(jù)進(jìn)行存貯;然后,根據(jù)所述的可視化表現(xiàn)數(shù)據(jù)進(jìn)行時(shí)間管理和過(guò)程控 制,具體為根據(jù)可視化表現(xiàn)數(shù)據(jù)中的時(shí)間參數(shù),以渲染周期為時(shí)間步長(zhǎng)進(jìn)行系統(tǒng)時(shí)間推 進(jìn),根據(jù)可視化表現(xiàn)數(shù)據(jù)中的實(shí)體對(duì)象信息驅(qū)動(dòng)實(shí)體管理子模塊完成可視化表現(xiàn)實(shí)體的添 加刪除、狀態(tài)查詢和屬性管理;例如根據(jù)火箭發(fā)射時(shí)序,此時(shí)火箭發(fā)射已經(jīng)進(jìn)行了一、二級(jí) 分離,則刪除火箭一級(jí)實(shí)體模型,并對(duì)火箭的分離狀態(tài)進(jìn)行屬性管理。根據(jù)可視化表現(xiàn)數(shù)據(jù) 對(duì)相機(jī)的要求,驅(qū)動(dòng)相機(jī)管理子模塊進(jìn)行相機(jī)動(dòng)態(tài)創(chuàng)建、相機(jī)觀察點(diǎn)的捕捉、相機(jī)的切換和 控制管理,該部分內(nèi)容為可視化領(lǐng)域的公知做法,這里不進(jìn)行詳細(xì)說(shuō)明。最后,將存貯的可 視化表現(xiàn)消息發(fā)送給多通道顯示模塊;交互控制子模塊,根據(jù)可視化表現(xiàn)控制管理模塊提 供的鼠標(biāo)和鍵盤(pán)交互接口進(jìn)行交互控制。五、多通道顯示模塊圖6為本發(fā)明支持HLA接口的多通道虛擬試驗(yàn)過(guò)程可視化系統(tǒng)中多通道顯示模塊 運(yùn)行圖,多通道顯示模塊,通過(guò)接收可視化表現(xiàn)消息,觸發(fā)安裝在可視化顯示節(jié)點(diǎn)計(jì)算機(jī)上的遠(yuǎn)程可視化控制程序(Virtools提供的遠(yuǎn)程控制伺服程序),通過(guò)與可視化顯示節(jié)點(diǎn)連 接的投影終端進(jìn)行可視化表現(xiàn),實(shí)現(xiàn)在集群式計(jì)算機(jī)控制多個(gè)虛擬試驗(yàn)過(guò)程可視化顯示節(jié) 點(diǎn)的多通道同步運(yùn)行。圖7為本發(fā)明支持HLA接口的多通道虛擬試驗(yàn)過(guò)程可視化系統(tǒng)中多通道顯示的同 步運(yùn)行機(jī)制示意圖。多通道虛擬試驗(yàn)可視化系統(tǒng)顯示過(guò)程包括三個(gè)階段讀取數(shù)據(jù)、渲染 場(chǎng)景、顯示場(chǎng)景。要保證不同顯示節(jié)點(diǎn)顯示同一時(shí)刻的畫(huà)面,一方面要滿足所有顯示進(jìn)程的 待渲染數(shù)據(jù)相同,另一方面要滿足顯示階段節(jié)點(diǎn)間時(shí)差足夠小。因此,需要進(jìn)行兩次同步控 制幀同步和顯示同步。幀同步是指不同的顯示節(jié)點(diǎn)顯示同一時(shí)刻的場(chǎng)景,這就要求不同節(jié) 點(diǎn)的渲染數(shù)據(jù)相同。顯示同步是指當(dāng)所有顯示節(jié)點(diǎn)渲染完畢時(shí),同時(shí)執(zhí)行顯示場(chǎng)景的操作。當(dāng)所有顯示節(jié)點(diǎn)待渲染的數(shù)據(jù)幀不是同一幀時(shí),主節(jié)點(diǎn)獲得最新數(shù)據(jù)幀,并將其 傳輸給各從節(jié)點(diǎn),然后所有顯示節(jié)點(diǎn)根據(jù)最新數(shù)據(jù)幀執(zhí)行渲染。每個(gè)顯示節(jié)點(diǎn)渲染完畢時(shí), 向主節(jié)點(diǎn)報(bào)告,當(dāng)所有節(jié)點(diǎn)都渲染完畢,主節(jié)點(diǎn)通知所有顯示節(jié)點(diǎn)顯示場(chǎng)景。從屬節(jié)點(diǎn)根據(jù) 主節(jié)點(diǎn)提供的信息執(zhí)行相應(yīng)的操作。主節(jié)點(diǎn)與從屬節(jié)點(diǎn)均為多線程設(shè)計(jì),接受數(shù)據(jù)線程接 受任務(wù)完成傳來(lái)的數(shù)據(jù),同步控制線程用于傳輸主節(jié)點(diǎn)與從節(jié)點(diǎn)之間的交互信息。實(shí)施例以多通道多視角的船舶行駛虛擬試驗(yàn)為例,基于Virtools/HLA的多通道虛擬試 驗(yàn)過(guò)程可視化系統(tǒng)需要運(yùn)行在計(jì)算機(jī)集群上,計(jì)算機(jī)集群構(gòu)成如圖8所示??梢暬憩F(xiàn)控 制服務(wù)器與表現(xiàn)數(shù)據(jù)產(chǎn)生服務(wù)器通過(guò)HLA/RTI網(wǎng)絡(luò)連接,可視化表現(xiàn)控制服務(wù)器與虛擬試 驗(yàn)多通道可視化顯示節(jié)點(diǎn)通過(guò)以太網(wǎng)相連,顯示節(jié)點(diǎn)包括一個(gè)主節(jié)點(diǎn)和兩個(gè)從屬節(jié)點(diǎn),顯 示節(jié)點(diǎn)與投影終端連接。在可視化表現(xiàn)控制服務(wù)器上配置多通道虛擬試驗(yàn)過(guò)程可視化軟件系統(tǒng),在虛擬試 驗(yàn)多通道可視化顯示節(jié)點(diǎn)計(jì)算機(jī)上配置可視化引擎Virtools。可視化系統(tǒng)具體實(shí)施步驟如下1)表現(xiàn)數(shù)據(jù)產(chǎn)生服務(wù)器通過(guò)HLA/RTI向可視化表現(xiàn)控制服務(wù)器發(fā)送可視化表現(xiàn) 數(shù)據(jù);2)可視化表現(xiàn)控制服務(wù)器上的多通道虛擬試驗(yàn)過(guò)程可視化系統(tǒng)利用HLA接口模 塊,從HLA/RTI (Run Time Infrastructure,運(yùn)行時(shí)體系結(jié)構(gòu))上獲取需要可視化模型的表 現(xiàn)數(shù)據(jù),包括模型的名稱信息和表現(xiàn)屬性數(shù)據(jù);可視化模型的表現(xiàn)數(shù)據(jù)格式采用對(duì)象類的方式定義表4對(duì)象類結(jié)構(gòu)表 表5對(duì)象類屬性表 3)HLA接口模塊從RTI網(wǎng)絡(luò)獲取可視化模型的表現(xiàn)數(shù)據(jù)后,按照差錯(cuò)檢測(cè)和糾錯(cuò) 部件的算法進(jìn)行數(shù)據(jù)處理,差錯(cuò)檢測(cè)和糾錯(cuò)的方法采用常用網(wǎng)絡(luò)數(shù)據(jù)傳輸過(guò)程中的方法、 可視化表現(xiàn)數(shù)據(jù)的極值和插值檢驗(yàn)算法,經(jīng)過(guò)差錯(cuò)檢測(cè)和糾錯(cuò)處理后的數(shù)據(jù)提交表現(xiàn)命令 緩沖模塊進(jìn)行處理;4)表現(xiàn)命令緩沖模塊把接收到的數(shù)據(jù)進(jìn)行解析,按照可視化模型對(duì)象、模型屬性、 時(shí)序、位置信息、速度信息、姿態(tài)信息、事件序列和當(dāng)前事件狀態(tài)等分類進(jìn)行存儲(chǔ)。由于利 用HLA接口從RTI網(wǎng)絡(luò)獲取數(shù)據(jù)的時(shí)間間隔小周期短,數(shù)據(jù)動(dòng)態(tài)存儲(chǔ)要求高,同時(shí),可視化 渲染引擎Virtools支持的刷新頻率和周期基本確定,所以,可視化表現(xiàn)命令緩沖模塊按照 Virtools最高刷新頻率對(duì)可視化模型的信息和數(shù)據(jù)進(jìn)行緩沖處理,實(shí)現(xiàn)可視化表現(xiàn)數(shù)據(jù)規(guī) 模的縮小,并把處理后的數(shù)據(jù)轉(zhuǎn)化為可視化表現(xiàn)的命令,存儲(chǔ)在可視化表現(xiàn)命令緩沖對(duì)列 中;5)消息數(shù)據(jù)轉(zhuǎn)換管理模塊利用緩沖隊(duì)列數(shù)據(jù)讀取子模塊根據(jù)可視化表現(xiàn)的時(shí)間 步長(zhǎng)從緩沖隊(duì)列中獲取數(shù)據(jù),消息數(shù)據(jù)轉(zhuǎn)換管理器根據(jù)接收時(shí)間將獲取的數(shù)據(jù)進(jìn)行格式轉(zhuǎn) 換,把可視化表現(xiàn)命令轉(zhuǎn)換成帶有時(shí)間參數(shù)的模型ID、模型位置和模型姿態(tài)信息數(shù)據(jù),即實(shí) 體對(duì)象和實(shí)體表現(xiàn)信息,具體參見(jiàn)表6,然后利用數(shù)據(jù)和消息發(fā)送管理子模塊負(fù)責(zé)將轉(zhuǎn)換后 的消息發(fā)送到基于Virtools三維顯示引擎開(kāi)發(fā)的可視化表現(xiàn)控制管理模塊中進(jìn)行處理;表6實(shí)體對(duì)象和實(shí)體表現(xiàn)信息結(jié)構(gòu)表 6)基于可視化渲染引擎Virtools開(kāi)發(fā)的可視化表現(xiàn)控制管理模塊包括可視化 運(yùn)行參數(shù)配置子模塊、系統(tǒng)運(yùn)行控制管理子模塊、實(shí)體管理子模塊、表現(xiàn)數(shù)據(jù)管理子模塊、 相機(jī)管理子模塊和交互控制子模塊; 可視化運(yùn)行參數(shù)配置子模塊,根據(jù)系統(tǒng)運(yùn)行環(huán)境配置全局控制參數(shù)可視化場(chǎng)景 縮放比例和初始相機(jī)位置參數(shù);根據(jù)實(shí)體列表配置管理參數(shù)進(jìn)行場(chǎng)景實(shí)體和天體對(duì)象可視 化實(shí)體對(duì)象的模型加載配置;根據(jù)本地驅(qū)動(dòng)數(shù)據(jù)配置參數(shù)進(jìn)行數(shù)據(jù)文件加載和存貯的配置;根據(jù)特效事件配置參數(shù)完成特效的觸發(fā)、運(yùn)行時(shí)間和特效模型的加載配置,從而完成實(shí) 體管理子模塊、表現(xiàn)數(shù)據(jù)管理子模塊、相機(jī)管理子模塊和交互控制子模塊的初始化配置;系統(tǒng)運(yùn)行控制管理子模塊,首先,對(duì)可視化表現(xiàn)管理模塊進(jìn)行初始化,加載可視化 運(yùn)行參數(shù)配置子模塊指定的實(shí)體對(duì)象模型和數(shù)據(jù);其次,從消息數(shù)據(jù)轉(zhuǎn)換管理模塊接收需 要可視化表現(xiàn)的數(shù)據(jù)和消息,并控制表現(xiàn)數(shù)據(jù)管理子模塊對(duì)接收的可視化表現(xiàn)數(shù)據(jù)、消息 和本地存貯數(shù)據(jù)進(jìn)行存貯;然后,根據(jù)所述的可視化表現(xiàn)數(shù)據(jù)進(jìn)行時(shí)間管理和過(guò)程控制,具 體為根據(jù)可視化表現(xiàn)數(shù)據(jù)中的時(shí)間參數(shù),以渲染周期為時(shí)間步長(zhǎng)進(jìn)行系統(tǒng)時(shí)間推進(jìn),根據(jù) 可視化表現(xiàn)數(shù)據(jù)中的實(shí)體對(duì)象信息驅(qū)動(dòng)實(shí)體管理子模塊完成可視化表現(xiàn)實(shí)體的添加刪除、 狀態(tài)查詢和屬性管理;根據(jù)可視化表現(xiàn)數(shù)據(jù)對(duì)相機(jī)的要求,驅(qū)動(dòng)相機(jī)管理子模塊進(jìn)行相機(jī) 動(dòng)態(tài)創(chuàng)建、相機(jī)觀察點(diǎn)的捕捉、相機(jī)的切換和控制管理;最后,將存貯的可視化表現(xiàn)消息發(fā) 送給多通道顯示模塊;交互控制子模塊,根據(jù)可視化表現(xiàn)控制管理模塊提供的鼠標(biāo)和鍵盤(pán) 交互接口進(jìn)行交互控制??梢暬憩F(xiàn)控制管理模塊運(yùn)行時(shí)序如圖9所示,系統(tǒng)啟動(dòng)后,首先系統(tǒng)運(yùn)行控制 子模塊觸發(fā)根據(jù)參數(shù)配置管理子模塊完成可視化實(shí)體對(duì)象、表現(xiàn)數(shù)據(jù)和相機(jī)管理的參數(shù)設(shè) 置,同時(shí)生成可視化系統(tǒng)交互界面;其次,清除可視化表現(xiàn)數(shù)組和相機(jī)管理數(shù)組的歷史數(shù) 據(jù),根據(jù)實(shí)體對(duì)象的模型配置參數(shù)進(jìn)行模型和實(shí)體加載,針對(duì)實(shí)體模型對(duì)象的相機(jī)觀察屬 性動(dòng)態(tài)生成相機(jī)管理界面,從配置參數(shù)指定路徑讀取數(shù)據(jù),完成任務(wù)模型、可視化事件驅(qū)動(dòng) 程序和可視化數(shù)據(jù)的初始化;然后,完成可視化事件序列加載,激活相機(jī)控制功能,觸發(fā)系 統(tǒng)運(yùn)行控制模塊,等待鼠標(biāo)和鍵盤(pán)的交互控制消息;最后,把從消息數(shù)據(jù)轉(zhuǎn)換管理模塊接收 的可視化實(shí)體對(duì)象和實(shí)體表現(xiàn)信息存貯到可視化表現(xiàn)數(shù)組中,按照時(shí)間推進(jìn)的步長(zhǎng)進(jìn)行讀 取和可視化渲染;交互控制過(guò)程中,根據(jù)可視化表現(xiàn)需求動(dòng)態(tài)生成交互界面菜單,完成可視 化事件的觸發(fā)管理;系統(tǒng)運(yùn)行完成后,系統(tǒng)推出。7)可視化表現(xiàn)控制管理模塊通過(guò)傳遞消息對(duì)安裝在可視化顯示節(jié)點(diǎn)計(jì)算機(jī)上的 遠(yuǎn)程可視化控制程序(Virtools提供的遠(yuǎn)程控制伺服程序)進(jìn)行激活,觸發(fā)可視化顯示節(jié) 點(diǎn)上的表現(xiàn)模塊進(jìn)行表現(xiàn),多通道的同步過(guò)程如圖7所示,具體步驟概括如下1)在主節(jié)點(diǎn)上創(chuàng)建接收數(shù)據(jù)線程、渲染顯示線程和創(chuàng)建同步控制線程;2)主節(jié)點(diǎn)接收可視化表現(xiàn)數(shù)據(jù),推進(jìn)渲染顯示線程,從節(jié)點(diǎn)接收所有待渲染幀的 序號(hào),并將接收的待渲染幀序號(hào)返回給主節(jié)點(diǎn);上述主節(jié)點(diǎn)接收的可視化表現(xiàn)數(shù)據(jù)與從節(jié) 點(diǎn)接收的待渲染幀序號(hào)構(gòu)成多通道顯示模塊接收的可視化表現(xiàn)消息。3)主節(jié)點(diǎn)接收從節(jié)點(diǎn)返回的渲染幀序號(hào),判斷渲染幀序號(hào)與主節(jié)點(diǎn)渲染顯示線程 是否一致,如果一致則主節(jié)點(diǎn)和從節(jié)點(diǎn)進(jìn)行渲染,否則一直等待;4)所有節(jié)點(diǎn)渲染完成后,清空上一幀的數(shù)據(jù),讀入下一幀渲染數(shù)據(jù),從步驟2)開(kāi) 始循環(huán)執(zhí)行。本發(fā)明未詳細(xì)說(shuō)明部分屬于本領(lǐng)域技術(shù)人員公知常識(shí)。
權(quán)利要求
一種基于Virtools/HLA的多通道虛擬試驗(yàn)過(guò)程可視化系統(tǒng),其特征在于包括多通道顯示模塊,HLA接口模塊,表現(xiàn)命令緩沖模塊,可視化表現(xiàn)控制管理模塊和消息數(shù)據(jù)轉(zhuǎn)換管理模塊;所述的可視化系統(tǒng)運(yùn)行在計(jì)算機(jī)集群上,所述的計(jì)算機(jī)集群包括可視化表現(xiàn)控制服務(wù)器和可視化顯示節(jié)點(diǎn),可視化表現(xiàn)控制服務(wù)器與可視化顯示節(jié)點(diǎn)計(jì)算機(jī)通過(guò)以太網(wǎng)相連,可視化顯示節(jié)點(diǎn)包括一個(gè)主節(jié)點(diǎn)和多個(gè)從屬節(jié)點(diǎn),可視化顯示節(jié)點(diǎn)上配置可視化引擎Virtools;HLA接口模塊,與HLA/RTI網(wǎng)絡(luò)連接,從HLA/RTI網(wǎng)絡(luò)接收可視化模型表現(xiàn)數(shù)據(jù),并進(jìn)行差錯(cuò)檢測(cè)、糾錯(cuò)處理后傳輸給表現(xiàn)命令緩沖模塊;表現(xiàn)命令緩沖模塊,接收HLA接口模塊輸送的可視化模型表現(xiàn)數(shù)據(jù),按照Virtools的刷新頻率對(duì)所述的表現(xiàn)數(shù)據(jù)進(jìn)行緩沖處理,并將緩沖處理后的表現(xiàn)數(shù)據(jù)解析成表現(xiàn)命令,將表現(xiàn)命令存儲(chǔ)在緩沖隊(duì)列中,等待消息數(shù)據(jù)轉(zhuǎn)換管理模塊處理;消息數(shù)據(jù)轉(zhuǎn)換管理模塊,從緩沖隊(duì)列中獲取表現(xiàn)命令,并將獲取的表現(xiàn)命令進(jìn)行格式轉(zhuǎn)換,轉(zhuǎn)換成虛擬試驗(yàn)可視化場(chǎng)景中實(shí)體對(duì)象和實(shí)體表現(xiàn)信息,并將轉(zhuǎn)換后的實(shí)體對(duì)象和實(shí)體表現(xiàn)信息,即需要可視化表現(xiàn)的數(shù)據(jù)和信息發(fā)送給可視化表現(xiàn)控制管理模塊進(jìn)行可視化表現(xiàn);可視化表現(xiàn)控制管理模塊,初始化可視化表現(xiàn)配置參數(shù)和交互控制界面,從消息數(shù)據(jù)轉(zhuǎn)換管理模塊接收并存儲(chǔ)需要可視化表現(xiàn)的數(shù)據(jù)和消息,根據(jù)可視化表現(xiàn)數(shù)據(jù)在可視化引擎Virtools中進(jìn)行實(shí)體表現(xiàn)、特效生成、模型數(shù)據(jù)驅(qū)動(dòng)和相機(jī)切換管理,以及虛擬試驗(yàn)過(guò)程可視化系統(tǒng)運(yùn)行過(guò)程中交互控制,并將存貯的可視化表現(xiàn)消息發(fā)送給多通道顯示模塊;多通道顯示模塊,通過(guò)接收可視化表現(xiàn)消息,觸發(fā)安裝在可視化顯示節(jié)點(diǎn)計(jì)算機(jī)上的遠(yuǎn)程可視化控制程序,實(shí)現(xiàn)在集群式計(jì)算機(jī)控制多個(gè)虛擬試驗(yàn)過(guò)程可視化顯示節(jié)點(diǎn)的多通道同步運(yùn)行。
2.根據(jù)權(quán)利要求1所述的基于Virtools/HLA的多通道虛擬試驗(yàn)過(guò)程可視化系統(tǒng),其 特征在于HLA接口模塊包括網(wǎng)絡(luò)接口部件和差錯(cuò)檢測(cè)/糾錯(cuò)部件兩部分,具體工作流程如 下首先,用戶通過(guò)創(chuàng)建連接對(duì)象加入聯(lián)邦中,同時(shí)進(jìn)行對(duì)象類及對(duì)象類屬性參數(shù)的發(fā)布 和訂購(gòu);其次,網(wǎng)絡(luò)接口部件對(duì)需要從HLA/RTI網(wǎng)絡(luò)訂購(gòu)的可視化模型的表現(xiàn)數(shù)據(jù)按照對(duì)象類 的方式進(jìn)行定義,并啟動(dòng)偵聽(tīng)線程,開(kāi)始偵聽(tīng)HLA/RTI網(wǎng)絡(luò)中的可視化模型表現(xiàn)數(shù)據(jù);最后,差錯(cuò)檢測(cè)/糾錯(cuò)部件對(duì)獲取的可視化模型表現(xiàn)數(shù)據(jù)進(jìn)行差錯(cuò)檢測(cè)、糾錯(cuò)處理。
3.根據(jù)權(quán)利要求1所述的基于Virtools/HLA的多通道虛擬試驗(yàn)過(guò)程可視化系統(tǒng),其特 征在于所述的消息數(shù)據(jù)轉(zhuǎn)換管理模塊包括緩沖隊(duì)列數(shù)據(jù)讀取子模塊、消息數(shù)據(jù)轉(zhuǎn)換管理 器、表現(xiàn)數(shù)據(jù)和消息發(fā)送管理子模塊;緩沖隊(duì)列數(shù)據(jù)讀取子模塊根據(jù)可視化表現(xiàn)的時(shí)間步長(zhǎng)從緩沖隊(duì)列中獲取表現(xiàn)命令,消 息數(shù)據(jù)轉(zhuǎn)換管理器根據(jù)接收時(shí)間將可視化表現(xiàn)命令轉(zhuǎn)換成帶有時(shí)間參數(shù)的模型ID、模型位 置和模型姿態(tài)信息數(shù)據(jù),即實(shí)體對(duì)象和實(shí)體表現(xiàn)信息數(shù)據(jù),可視化表現(xiàn)數(shù)據(jù)和消息發(fā)送管 理子模塊負(fù)責(zé)將轉(zhuǎn)換后的實(shí)體對(duì)象和實(shí)體表現(xiàn)信息數(shù)據(jù)發(fā)送到基于Virtools三維顯示引 擎開(kāi)發(fā)的可視化表現(xiàn)控制管理模塊中進(jìn)行處理。
4.根據(jù)權(quán)利要求1所述的基于Virtools/HLA的多通道虛擬試驗(yàn)過(guò)程可視化系統(tǒng),其特征在于所述的可視化表現(xiàn)控制管理模塊包括可視化運(yùn)行參數(shù)配置子模塊、系統(tǒng)運(yùn)行 控制管理子模塊、實(shí)體管理子模塊、表現(xiàn)數(shù)據(jù)管理子模塊、相機(jī)管理子模塊和交互控制子模 塊;可視化運(yùn)行參數(shù)配置子模塊,根據(jù)系統(tǒng)運(yùn)行環(huán)境配置全局控制參數(shù)可視化場(chǎng)景縮放 比例和初始相機(jī)位置參數(shù);根據(jù)實(shí)體列表配置管理參數(shù)進(jìn)行場(chǎng)景實(shí)體和天體對(duì)象可視化實(shí) 體對(duì)象的模型加載配置;根據(jù)本地驅(qū)動(dòng)數(shù)據(jù)配置參數(shù)進(jìn)行數(shù)據(jù)文件加載和存貯的配置;根 據(jù)特效事件配置參數(shù)完成特效的觸發(fā)、運(yùn)行時(shí)間和特效模型的加載配置,從而完成實(shí)體管 理子模塊、表現(xiàn)數(shù)據(jù)管理子模塊、相機(jī)管理子模塊和交互控制子模塊的初始化配置;系統(tǒng)運(yùn)行控制管理子模塊,首先,對(duì)可視化表現(xiàn)控制管理模塊進(jìn)行初始化,加載可視化 運(yùn)行參數(shù)配置子模塊指定的實(shí)體對(duì)象模型和數(shù)據(jù);其次,從消息數(shù)據(jù)轉(zhuǎn)換管理模塊接收需 要可視化表現(xiàn)的數(shù)據(jù)和消息,并控制表現(xiàn)數(shù)據(jù)管理子模塊對(duì)接收的可視化表現(xiàn)數(shù)據(jù)、消息 和本地存貯數(shù)據(jù)進(jìn)行存貯;然后,根據(jù)所述的可視化表現(xiàn)數(shù)據(jù)進(jìn)行時(shí)間管理和過(guò)程控制,具 體為根據(jù)可視化表現(xiàn)數(shù)據(jù)中的時(shí)間參數(shù),以渲染周期為時(shí)間步長(zhǎng)進(jìn)行系統(tǒng)時(shí)間推進(jìn),根據(jù) 可視化表現(xiàn)數(shù)據(jù)中的實(shí)體對(duì)象信息驅(qū)動(dòng)實(shí)體管理子模塊完成可視化表現(xiàn)實(shí)體的添加刪除、 狀態(tài)查詢和屬性管理;根據(jù)可視化表現(xiàn)數(shù)據(jù)對(duì)相機(jī)的要求,驅(qū)動(dòng)相機(jī)管理子模塊進(jìn)行相機(jī) 動(dòng)態(tài)創(chuàng)建、相機(jī)觀察點(diǎn)的捕捉、相機(jī)的切換和控制管理;最后,將存貯的可視化表現(xiàn)消息發(fā) 送給多通道顯示模塊;交互控制子模塊,根據(jù)可視化表現(xiàn)控制管理模塊提供的鼠標(biāo)和鍵盤(pán) 交互接口進(jìn)行交互控制。
5.根據(jù)權(quán)利要求1所述的基于Virtools/HLA的多通道虛擬試驗(yàn)過(guò)程可視化系統(tǒng),其特 征在于所述的多通道顯示模塊利用幀同步方法實(shí)現(xiàn)多個(gè)虛擬試驗(yàn)過(guò)程可視化顯示節(jié)點(diǎn)的 多通道同步運(yùn)行。
6.根據(jù)權(quán)利要求5所述的基于Virtools/HLA的多通道虛擬試驗(yàn)過(guò)程可視化系統(tǒng),其特 征在于所述的幀同步方法具體步驟如下1)在主節(jié)點(diǎn)上創(chuàng)建接收數(shù)據(jù)線程、渲染顯示線程和創(chuàng)建同步控制線程;2)主節(jié)點(diǎn)接收可視化表現(xiàn)數(shù)據(jù),推進(jìn)渲染顯示線程,從節(jié)點(diǎn)接收所有待渲染幀的序號(hào), 并將接收的待渲染幀序號(hào)返回給主節(jié)點(diǎn);3)主節(jié)點(diǎn)接收從節(jié)點(diǎn)返回的渲染幀序號(hào),判斷渲染幀序號(hào)與主節(jié)點(diǎn)渲染顯示線程是否 一致,如果一致則主節(jié)點(diǎn)和從節(jié)點(diǎn)進(jìn)行渲染,否則一直等待;4)所有節(jié)點(diǎn)渲染完成后,清空上一幀的數(shù)據(jù),讀入下一幀渲染數(shù)據(jù),從步驟2)開(kāi)始循 環(huán)執(zhí)行。
7.一種基于Virtools/HLA的多通道虛擬試驗(yàn)過(guò)程可視化方法,其特征在于所述方法 依托的系統(tǒng)包括一個(gè)可視化表現(xiàn)控制服務(wù)器和可視化顯示節(jié)點(diǎn)計(jì)算機(jī),可視化表現(xiàn)控制服 務(wù)器與可視化顯示節(jié)點(diǎn)計(jì)算機(jī)通過(guò)以太網(wǎng)相連,可視化顯示節(jié)點(diǎn)包括一個(gè)主節(jié)點(diǎn)和多個(gè)從 屬節(jié)點(diǎn),可視化顯示節(jié)點(diǎn)上配置可視化引擎Virtools,方法步驟如下(1)可視化表現(xiàn)控制服務(wù)器從HLA/RTI網(wǎng)絡(luò)上偵聽(tīng)可視化表現(xiàn)數(shù)據(jù),并對(duì)獲取的可視 化表現(xiàn)數(shù)據(jù)進(jìn)行差錯(cuò)檢測(cè)和糾錯(cuò)處理;所述的可視化模型的表現(xiàn)數(shù)據(jù)按照對(duì)象類的方式進(jìn) 行定義;(2)在可視化表現(xiàn)控制服務(wù)器上按照Virtools的刷新頻率對(duì)差錯(cuò)檢測(cè)和糾錯(cuò)處理后 的數(shù)據(jù)進(jìn)行緩沖處理,并將緩沖處理后的表現(xiàn)數(shù)據(jù)解析成表現(xiàn)命令,將表現(xiàn)命令存儲(chǔ)在緩沖隊(duì)列中;(3)根據(jù)可視化表現(xiàn)的時(shí)間步長(zhǎng)從緩沖隊(duì)列中獲取表現(xiàn)命令,根據(jù)接收時(shí)間將可視化 表現(xiàn)命令轉(zhuǎn)換成帶有時(shí)間參數(shù)的模型ID、模型位置和模型姿態(tài)信息數(shù)據(jù),即實(shí)體對(duì)象和實(shí) 體表現(xiàn)信息數(shù)據(jù);(4)初始化可視化表現(xiàn)配置參數(shù)和交互控制界面,并將上述實(shí)體對(duì)象和實(shí)體表現(xiàn)信息 數(shù)據(jù),即需要可視化表現(xiàn)的數(shù)據(jù)和消息在可視化表現(xiàn)控制管理模塊內(nèi)進(jìn)行存儲(chǔ);(5)根據(jù)可視化表現(xiàn)數(shù)據(jù)在可視化引擎Virtools中進(jìn)行實(shí)體表現(xiàn)、特效生成、模型數(shù) 據(jù)驅(qū)動(dòng)和相機(jī)切換管理,以及可視化過(guò)程中的交互控制;(6)將步驟(5)的過(guò)程分布到所有顯示節(jié)點(diǎn)上,通過(guò)顯示節(jié)點(diǎn)中主節(jié)點(diǎn)與從節(jié)點(diǎn)之間 的信息交互,使所有的顯示節(jié)點(diǎn)同步執(zhí)行顯示場(chǎng)景的操作,實(shí)現(xiàn)多通道虛擬試驗(yàn)過(guò)程可視 化。
8.根據(jù)權(quán)利要求7所述的基于Virtools/HLA的多通道虛擬試驗(yàn)過(guò)程可視化方法,其特 征在于所述步驟(6)中所有顯示節(jié)點(diǎn)同步執(zhí)行顯示場(chǎng)景的操作具體實(shí)現(xiàn)步驟如下(6. 1)在主節(jié)點(diǎn)上創(chuàng)建接收數(shù)據(jù)線程、渲染顯示線程和創(chuàng)建同步控制線程;(6. 2)主節(jié)點(diǎn)接收可視化表現(xiàn)數(shù)據(jù),推進(jìn)渲染顯示線程,從節(jié)點(diǎn)接收所有待渲染幀的序 號(hào),并將接收的待渲染幀序號(hào)返回給主節(jié)點(diǎn);(6. 3)主節(jié)點(diǎn)接收從節(jié)點(diǎn)返回的渲染幀序號(hào),判斷渲染幀序號(hào)與主節(jié)點(diǎn)渲染顯示線程 是否一致,如果一致則主節(jié)點(diǎn)和從節(jié)點(diǎn)進(jìn)行渲染,否則一直等待;(6. 4)所有節(jié)點(diǎn)渲染完成后,清空上一幀的數(shù)據(jù),讀入下一幀渲染數(shù)據(jù),從步驟(6. 2) 開(kāi)始循環(huán)執(zhí)行。
全文摘要
基于Virtools/HLA的多通道虛擬試驗(yàn)過(guò)程可視化系統(tǒng)及方法,所述的系統(tǒng)包括多通道顯示模塊,HLA接口模塊,表現(xiàn)命令緩沖模塊,可視化表現(xiàn)控制管理模塊和消息數(shù)據(jù)轉(zhuǎn)換管理模塊;所述的可視化系統(tǒng)運(yùn)行在計(jì)算機(jī)集群上,所述的計(jì)算機(jī)集群包括可視化表現(xiàn)控制服務(wù)器和可視化顯示節(jié)點(diǎn),可視化表現(xiàn)控制服務(wù)器與可視化顯示節(jié)點(diǎn)計(jì)算機(jī)通過(guò)以太網(wǎng)相連,可視化顯示節(jié)點(diǎn)包括一個(gè)主節(jié)點(diǎn)和多個(gè)從屬節(jié)點(diǎn),可視化顯示節(jié)點(diǎn)上配置可視化引擎Virtools;本發(fā)明可視化方法突破HLA多通道顯示系統(tǒng)與HLA體系架構(gòu)之間的數(shù)據(jù)通信和消息交互機(jī)制,基于Virtools SDK開(kāi)發(fā)接口實(shí)現(xiàn)了HLA環(huán)境與Virtools引擎之間的交互控制,構(gòu)建了支持HLA接口的多通道虛擬試驗(yàn)過(guò)程可視化系統(tǒng)。
文檔編號(hào)G06T15/00GK101908229SQ20101023321
公開(kāi)日2010年12月8日 申請(qǐng)日期2010年7月16日 優(yōu)先權(quán)日2010年7月16日
發(fā)明者孔文秦, 張濤, 彭健, 李爍, 王悅, 趙雯 申請(qǐng)人:中國(guó)運(yùn)載火箭技術(shù)研究院