• <tr id="yyy80"></tr>
  • <sup id="yyy80"></sup>
  • <tfoot id="yyy80"><noscript id="yyy80"></noscript></tfoot>
  • 99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

    基于Vega的潛望鏡視景系統(tǒng)設(shè)計與實現(xiàn)

    2008-04-24 03:43:27肖劍波,胡大斌,高偉
    中國艦船研究 2008年3期
    關(guān)鍵詞:視景模擬器應(yīng)用程序

    1 引 言

    虛擬現(xiàn)實(Virtual Reality,簡稱VR)技術(shù)是以仿真的方式給用戶創(chuàng)造一個實時反映實體變化與相互作用的三維界面,使用戶可直接參與并探索仿真對象在所處環(huán)境中的作用與變化,它具有多媒體信息感知性、沉浸性、交互性和自主性等特點?;谔摂M環(huán)境的模擬訓(xùn)練系統(tǒng)是當(dāng)今計算機(jī)技術(shù)的熱點之一。它通過計算機(jī)生成看起來、聽起來、觸摸起來像真的虛擬世界,給用戶身臨其境的沉浸感,能通過立體眼鏡和數(shù)據(jù)手套等設(shè)備讓用戶與虛擬環(huán)境進(jìn)行直接交互,獲得類似于在現(xiàn)實中操作的體驗[1]。

    由于利用虛擬仿真技術(shù),在計算機(jī)上就可以進(jìn)行反復(fù)多次的模擬實驗,以取代耗資巨大的物理和實物實驗,甚至可以進(jìn)行各種原因和條件限制而無法實現(xiàn)的實驗,具有投資少、效益高、無風(fēng)險、可重復(fù)、周期短等突出的優(yōu)點,被迅速推廣,特別是在各種操作培訓(xùn)方面,起到了尤為突出的作用。

    本文依托的是某型潛艇航海訓(xùn)練模擬器中的潛望鏡視景系統(tǒng)研究,該視景系統(tǒng)運用虛擬現(xiàn)實技術(shù),通過在計算機(jī)上生成具有一定真實感的視景,模擬潛望鏡視景中的海洋環(huán)境,從而可以使受訓(xùn)人員產(chǎn)生強(qiáng)烈的沉浸感,改善訓(xùn)練效果,解決常規(guī)的海上訓(xùn)練經(jīng)費高、周期長、風(fēng)險大等問題。

    2 視景系統(tǒng)的構(gòu)建

    整個潛望鏡視景系統(tǒng)的構(gòu)建采用半實物仿真,操作者可以通過潛望鏡的物理仿真平臺進(jìn)行交互操作,物理仿真平臺接收的輸入信號經(jīng)過信號處理和通訊系統(tǒng)輸入到視景系統(tǒng),視景系統(tǒng)實時更新畫面顯示來展現(xiàn)整個海域的海況。

    潛望鏡視景系統(tǒng)的構(gòu)建框架如圖1所示。

    圖1 潛望鏡視景系統(tǒng)構(gòu)建框架

    系統(tǒng)的開發(fā)采用了美國MultiGen-Paradigm公司開發(fā)的Creator和Vega[2,3],以及C語言開發(fā)環(huán)境VC++6.0。為使模擬器能為艇員提供逼真的訓(xùn)練環(huán)境,首先運用Creator完成海區(qū)地形以及海上目標(biāo)的建模,創(chuàng)建具有逼真效果的潛艇外部三維造型和艇外海洋環(huán)境,包括敵我雙方的艦艇以及海面航行可辨識的目標(biāo)。對于復(fù)雜物體的建模可以結(jié)合其他商業(yè)軟件如3DS和CAD等來實現(xiàn),一些表現(xiàn)度要求不高的模型,如場景中的樹木和航標(biāo)燈等可以結(jié)合Creator的布告板技術(shù)來進(jìn)行簡化,最后結(jié)合實際物體的照片,運用紋理映射來生成逼真的場景和物體。

    然后通過Vega調(diào)用模型并驅(qū)動,用Lynx建立應(yīng)用程序定義文件(.adf)。通過Vega提供的模塊來模擬海浪和音響以及海面的特殊效果,增強(qiáng)仿真的真實度。

    在C、C++或VC++語言平臺上利用Vega的API和軟件庫調(diào)入已建立的ADF文件及三維模型對程序進(jìn)行初始化,編制代碼響應(yīng)用戶輸入并動態(tài)地改變程序的運行,最終完成自己的虛擬現(xiàn)實應(yīng)用程序編程。

    最后,對應(yīng)用程序進(jìn)行編譯鏈接,開發(fā)可以脫離Vega和VC環(huán)境的獨立程序,并對輸入設(shè)備進(jìn)行聯(lián)調(diào),實現(xiàn)系統(tǒng)的集成。

    3 基于Vega的虛擬視景開發(fā)

    3.1 基于Creator的建模

    Creator是專門針對可視化仿真行業(yè)應(yīng)用特點推出的實時可視化三維建模軟件系統(tǒng)。該軟件支持大規(guī)模場景和地形的建模,且支持通過其他商業(yè)軟件如3DS和CAD等建立模型,再導(dǎo)入Creator轉(zhuǎn)換成其支持的OpenFlight(.flt)格式。針對虛擬現(xiàn)實的實時性要求,Creator采用了多種簡化技術(shù),如復(fù)雜物體的紋理技術(shù)(texture mapping),即應(yīng)用紋理來代替實體模型中的細(xì)節(jié),提高逼真度和顯示速度。實例化技術(shù)(Instance),對于在海洋環(huán)境中多次出現(xiàn)的物體模型,如海面航標(biāo)燈、民用船只等,采用相同的實體只在內(nèi)存中放置1份,其余的實體顯示通過旋轉(zhuǎn)、平移和縮放等方式來放置。在較復(fù)雜的物體建模方面,采用LOD(Level of Detail)技術(shù),不同的觀察距離顯示的細(xì)節(jié)層次也不同,圖2和圖3是在不同LOD層級下的驅(qū)逐艦?zāi)P汀?/p>

    圖2 高LOD層級顯示

    圖3 低LOD層級顯示

    3.2 Vega中的特效仿真模塊

    Vega是1套完整的交互式開發(fā)、可視化仿真軟件平臺,它提供了一系列的模塊來實現(xiàn)場景的驅(qū)動、控制和管理,并能方便地實現(xiàn)大量特殊效果和聲音效果。在虛擬海洋環(huán)境中,海浪以及海洋特效是系統(tǒng)的重要組成部分,其逼真度直接影響到整個系統(tǒng)的真實度。

    Vega中的海洋特效模塊提供了3個控制面板:海洋面板(Oceans Panel),場地向量面板(Field Vectors Panel)海洋特效面板(Marine Effects Panel)。海洋面板提供了用來生成動態(tài)和靜態(tài)海洋的參數(shù),包括波浪的紋理、海況參數(shù)、海況定義以及添加的海洋特效。在海洋特效面板中,可以通過簡單的設(shè)置來模擬真實海洋環(huán)境的動態(tài)可視化效果,海洋特效對于航海模擬器的真實度有很大的效果,可以增強(qiáng)人的沉浸感。模塊提供的特效包括船尾流、船首浪花、海面的漩渦和浪端的白沫等[4]。

    Vega海洋模塊可以模擬動態(tài)海浪和海面特效,海洋的仿真是在觀察者的周圍生成一個動態(tài)的海面,可以設(shè)定動態(tài)海面的半徑,而在此范圍之外,則是靜態(tài)的海洋模塊。

    Vega提供了3種海浪的仿真模式,2D模擬、3D正弦曲線模擬和3D次擺線模擬[5,6],對于2D和3D正弦曲線海洋模擬而言,動態(tài)的海洋是1個由10個以上的正弦波疊加的波場中的多邊形的近似疊加,3D次擺線動態(tài)海洋運用次擺線替代正弦線,但是數(shù)據(jù)的定義和前面兩者一樣。對于3D正弦模擬,以下是其定義的方式:

    for(j=0; j<10;j++)//對10個隨機(jī)正弦波的定義

    {

    omglist[j] = 2.5f * (j + 1.0f); /*omglist, 頻率*/

    anglist[j] = 0.6283 * j;/* anglist,相位偏移*/

    hlist[j] = 6.283 -0.6283 * j;/* hlist,航向偏差*/

    amplist[j] = (j + 1) * 0.1f; /* amplist,振幅*/

    }

    vgOceanWave( ocean, 10, omglist, anglist, hlist, amplist);//定義海浪,將參數(shù)應(yīng)用到海浪模塊中

    圖4是運用3D正弦定義的大風(fēng)浪海面仿真效果。

    圖4 3D正弦定義的大風(fēng)浪海面效果

    3.3 基于MFC的程序開發(fā)

    在VC環(huán)境下有3種較為典型的Vega應(yīng)用程序開發(fā)模式:控制臺程序、傳統(tǒng)的Windows應(yīng)用程序和基于MFC的應(yīng)用[7,8]。

    MFC作為比較流行的面向?qū)ο缶幊坦ぞ?,可以開發(fā)出功能強(qiáng)大、運行效率高、重用性好及可擴(kuò)展的開放式系統(tǒng)。利用MFC應(yīng)用程序中的菜單、對話框等資源,可以改變Vega應(yīng)用程序的外觀,使之更加符合Windows操作系統(tǒng)用戶的習(xí)慣,使用Visual C++ 6.0產(chǎn)生標(biāo)準(zhǔn)的基于MFC的程序,并將1個Vega窗口植入到基于MFC的程序中,這是將標(biāo)準(zhǔn)的Windows用戶接口組件與Vega應(yīng)用程序融合的較好方法。

    基于MFC的程序開發(fā)主要有以下3個步驟:第一步,初始化,調(diào)用vgInitSys函數(shù)初始化系統(tǒng)并創(chuàng)建共享的內(nèi)存區(qū)和信號區(qū)。第二步,定義,通過創(chuàng)建需要的事件和需要的類來定義系統(tǒng)。第三步,系統(tǒng)配置,使ADF中的定義與函數(shù)調(diào)用結(jié)合起來,最后,調(diào)用vgConfigSys函數(shù)完成步驟。Vega應(yīng)用程序的主循環(huán)包括vgSyncFrame和vgFrame函數(shù)的調(diào)用,通常由每個仿真循環(huán)或者每次需要一個新的顯示時調(diào)用這些函數(shù)。

    Vega系統(tǒng)需要進(jìn)行實時的循環(huán)渲染,是一個非常耗時的工作,需要為之創(chuàng)建一個線程。通過線程的全局函數(shù)runVegaApp來實現(xiàn)初始化、定義和系統(tǒng)配置。與傳統(tǒng)的編程不同,這里的vgInitSys函數(shù)由vgInitWinSys代替。然后,通過MFC全局函數(shù)AfxBeginThread來創(chuàng)建工作線程,其代碼放置在runVegaApp函數(shù)中,當(dāng)調(diào)用runVegaApp函數(shù)時就創(chuàng)建該線程并通過此函數(shù)獲取ADF文件的類實例。其工作流程如圖5所示。

    圖5 仿真程序工作流程圖

    創(chuàng)建線程的部分代碼[5,6]如下:

    UINT runVegaApp(LPVOID pParam){

    CVegaView* pOwner=(CVegaView*)pParam;

    vgInitWinSys(AfxGetInstanceHandle(),

    pOwner->GetSafeHwnd());

    pOwner->setVegaInitted(TRUE);

    pOwner->postInit();

    vgInitFx();/*初始化特效模塊*/

    vgInitMarine(); /*初始化海洋模塊*/

    vgDefineSys(pOwner->getAdfName());

    pOwner->setVegaDefined(TRUE);

    pOwner->postDefine();

    vgConfigSys();

    pOwner->setVegaConfiged(TRUE);

    pOwner->postConfig();

    while(pOwner->getContinueRunning()){

    vgSyncFrame();

    pOwner->postSync();

    vgFrame();

    pOwner->postFrame();}

    pOwner->setVegaInitted(FALSE);

    vgExit(0);

    return 0;}

    MFC自動生成的派生自CView的CvegaView類可以作為基于MFC的Vega應(yīng)用程序的視圖基類來派生其他的類,也可以直接把一些基本的工作放在這個類當(dāng)中完成,通過添加及修改其中原有的函數(shù),實現(xiàn)自己需要的交互式系統(tǒng)。

    添加運行Vega的成員變量和成員函數(shù),定義的成員變量主要用來控制和修改Vega中的各個類參數(shù)值,如定義指向object物體、scene場景、chan通道的指針等,通過添加的成員函數(shù)獲得和設(shè)置系統(tǒng)的配置和狀態(tài)值。然后利用MFC應(yīng)用程序中的菜單、對話框等資源,改變Vega應(yīng)用程序的外觀,同時利用vegaAPI增強(qiáng)應(yīng)用程序的功能,可以實現(xiàn)通過外部設(shè)備的交互控制。最后,通過編譯可以生成脫離Vega和VC++環(huán)境的程序,并將系統(tǒng)的軟硬件進(jìn)行互聯(lián),實現(xiàn)視景系統(tǒng)的集成。

    4 仿真結(jié)果

    該仿真初步建立了某型潛艇航海訓(xùn)練器中潛望鏡視景仿真系統(tǒng)的視景環(huán)境,生成了近似實戰(zhàn)的虛擬海洋環(huán)境,并實現(xiàn)了視景環(huán)境中的驅(qū)動、控制模型,生成了逼真的航行軌跡和環(huán)境效果,為受訓(xùn)者提供了交互式的仿真環(huán)境,實現(xiàn)了受訓(xùn)者與仿真環(huán)境的自然交互,具有很高的逼真度,達(dá)到了預(yù)期的效果。

    系統(tǒng)具有以下特點:

    ? 三維圖形質(zhì)量高:由于采用實體造型、光照、紋理等特殊圖像處理效果,使得仿真圖形具有較好的三維真實感。能真實地反應(yīng)海洋環(huán)境和海面目標(biāo)。

    ? 高實時性:視景系統(tǒng)中采用了針對虛擬現(xiàn)實實時性要求的簡化建模和調(diào)度算法,可以完成對操作者輸入的實時處理。

    ? 良好的交互性:艇員可以通過潛望鏡物理仿真裝置、大屏幕等與虛擬環(huán)境進(jìn)行交互,具有很好的交互性。

    圖6是筆者實現(xiàn)的MFC程序界面,圖7為潛艇水面航行效果圖。

    圖6 基于MFC的程序界面

    圖7 潛艇水面航行效果

    5 結(jié)束語

    本文介紹了虛擬仿真軟件Creator和Vega,結(jié)合潛艇航海訓(xùn)練的要求,研究并提出了基于VR的潛艇航海訓(xùn)練模擬器的設(shè)計方案,給出了在Vega環(huán)境下開發(fā)潛望鏡視景軟件的設(shè)計方法和開發(fā)流程,完成了基于MFC和Vega的潛望鏡視景仿真程序的開發(fā),并給出了程序的基本框架。在潛艇的航海訓(xùn)練模擬器中,我們采用了虛擬現(xiàn)實的最新技術(shù),并結(jié)合艇員的實際訓(xùn)練要求,建立了艇員訓(xùn)練的虛擬現(xiàn)實系統(tǒng)。本模擬器已完成了初步的設(shè)計和研制工作,隨著計算機(jī)技術(shù)及虛擬現(xiàn)實技術(shù)的進(jìn)一步發(fā)展,將運用更多更好的設(shè)計方法運用到本模擬器的開發(fā)研制中來,使之更加完善。基于虛擬現(xiàn)實的潛艇訓(xùn)練模擬器對解決常規(guī)訓(xùn)練中的高投入、高風(fēng)險、長周期等有重要的實際意義,且能提供虛擬化的視覺效果,增強(qiáng)艇員訓(xùn)練的實效,相信在以后會得到更廣泛的應(yīng)用。

    [1] 汪成為,高文,王行仁.靈鏡虛擬現(xiàn)實技術(shù)的理論實現(xiàn)及應(yīng)用[M].北京:清華大學(xué)出版社,1996.

    [2] 楊麗,李光耀.城市仿真應(yīng)用工具——Vega軟件教程[M].上海:同濟(jì)大學(xué)出版社,2007.

    [3] 王乘,周均清,李利軍.Creator可視化仿真建模技術(shù)[M].武漢:華中科技大學(xué)出版社,2005.

    [4] 任亮,龍建忠,李華.三維航跡的仿真數(shù)學(xué)模型及其在Vega環(huán)境中的實現(xiàn)[J].計算機(jī)仿真,2006,23(3):58-60.

    [5] MultiGen Paradigm Inc. Lynx user′s guide [M].Dallas.MultiGen Paradigm Inc,2001.

    [6] MultiGen Paradigm Inc. Vega programmer′s guide [M].Dallas,MultiGen Paradigm Inc,2001.

    [7] 楊平利.在Vega環(huán)境下開發(fā)虛擬現(xiàn)實應(yīng)用程序[J].計算機(jī)仿真, 2005, 22(5):165-168.

    [8] 胡少軍,何東健,汪有科,等.OpenGL與Creator/Vega 結(jié)合的渠系仿真優(yōu)化設(shè)計[J].系統(tǒng)仿真學(xué)報,2007,19(5):1157-1160.

    猜你喜歡
    視景模擬器應(yīng)用程序
    了不起的安檢模擬器
    盲盒模擬器
    劃船模擬器
    刪除Win10中自帶的應(yīng)用程序
    電腦報(2019年12期)2019-09-10 05:08:20
    vega及其在戰(zhàn)場環(huán)境視景仿真系統(tǒng)中的應(yīng)用
    電子測試(2018年4期)2018-05-09 07:28:19
    動態(tài)飛行模擬器及其發(fā)展概述
    全回轉(zhuǎn)拖輪運動建模與視景仿真
    基于Vortex與Vega Prime的車輛模擬器動力學(xué)與視景仿真
    關(guān)閉應(yīng)用程序更新提醒
    電腦迷(2012年15期)2012-04-29 17:09:47
    基于STK的衛(wèi)星實時視景仿真系統(tǒng)設(shè)計
    抚远县| 汝城县| 镶黄旗| 台南市| 阿尔山市| 丰宁| 安达市| 永丰县| 长葛市| 新晃| 龙井市| 北流市| 东城区| 龙里县| 九龙县| 东阿县| 衡阳县| 疏附县| 遵义市| 安康市| 四子王旗| 丹东市| 南川市| 元谋县| 屏东县| 盐源县| 万安县| 剑河县| 崇义县| 朔州市| 绥宁县| 囊谦县| 称多县| 明光市| 历史| 海安县| 通化县| 敦煌市| 阆中市| 灌南县| 砀山县|