專利名稱:一種近水面飛行器機(jī)動(dòng)飛行視景仿真方法
技術(shù)領(lǐng)域:
本發(fā)明屬于計(jì)算機(jī)仿真領(lǐng)域,具體涉及一種可視化視景仿真技術(shù),特別涉及一種近水面飛行器機(jī)動(dòng)飛行視景仿真方法。
背景技術(shù):
航路規(guī)劃技術(shù)是近水面飛行器機(jī)動(dòng)飛行的關(guān)鍵技術(shù)之一,航路規(guī)劃系統(tǒng)可為近水面飛行器規(guī)劃出精確的飛行路徑。通過對航路規(guī)劃系統(tǒng)的規(guī)劃結(jié)果進(jìn)行仿真,驗(yàn)證航路規(guī)劃結(jié)果的有效性和正確性具有非常重要的意義。而傳統(tǒng)的近水面飛行器機(jī)動(dòng)飛行仿真方法是實(shí)物仿真,實(shí)物仿真可以從宏觀上全局把握近水面飛行器的性能和運(yùn)動(dòng)情況,但是該方 法實(shí)施成本高、工藝復(fù)雜,不能對近水面飛行器機(jī)動(dòng)飛行的性能進(jìn)行細(xì)致的分析,這體現(xiàn)出傳統(tǒng)的實(shí)物仿真具有不可重復(fù)性和高風(fēng)險(xiǎn)性的缺點(diǎn)。隨著計(jì)算機(jī)視景仿真技術(shù)的飛速發(fā)展,應(yīng)用視景仿真技術(shù)實(shí)現(xiàn)近水面飛行器航路規(guī)劃結(jié)果的機(jī)動(dòng)飛行仿真,不僅滿足了對近水面飛行器機(jī)動(dòng)飛行的性能進(jìn)行深入、細(xì)致的分析,又可以降低仿真的成本。視景仿真是一種基于可計(jì)算信息的沉浸式交互環(huán)境,具體地說,就是采用以計(jì)算機(jī)技術(shù)為核心的現(xiàn)代高科技生成逼真的視、聽、觸覺一體化的特定范圍的虛擬環(huán)境,用戶借助必要的設(shè)備以自然的方式與虛擬環(huán)境中的對象進(jìn)行交互作用、相互影響,從而產(chǎn)生“沉浸”于等同真實(shí)環(huán)境的感受和體驗(yàn)??梢暬暰胺抡婕夹g(shù)自誕生以來,就在航空航天、航海、軍事、核工業(yè)中發(fā)揮著不可替代的作用,并通過不同的仿真軟件進(jìn)行了視景仿真應(yīng)用。申請?zhí)枮?00810137411. X的《飛行器視景仿真系統(tǒng)》專利是運(yùn)用Vega視景仿真軟件進(jìn)行仿真,Vega基于進(jìn)程工作,每個(gè)進(jìn)程都要開銷內(nèi)存單元,將內(nèi)存空間作為進(jìn)程的資源,執(zhí)行效率低。
發(fā)明內(nèi)容
針對現(xiàn)有技術(shù)中存在的問題,本發(fā)明提出一種近水面飛行器機(jī)動(dòng)飛行視景仿真方法,針對近水面飛行器機(jī)動(dòng)飛行進(jìn)行視景仿真,使用Visual Studio 2003. NET軟件和VegaPrime視景仿真軟件相結(jié)合的方法進(jìn)行近水面飛行器機(jī)動(dòng)飛行仿真,使其具有高效率、可重復(fù)性和低成本的特點(diǎn),并且本發(fā)明提供了一種通過仿真手段使用戶更直觀的了解近水面飛行器機(jī)動(dòng)飛行情況的方法,從而為驗(yàn)證航路規(guī)劃系統(tǒng)規(guī)劃結(jié)果的正確性提供了保證。一種近水面飛行器機(jī)動(dòng)飛行視景仿真方法,其特征在于包括以下幾個(gè)步驟步驟一三維場景模型的建立建立三維場景模型包括海洋場景建模和三維實(shí)體建模,海洋場景模型包含海浪態(tài)勢模型和島嶼模型,三維場景模型的建立過程具體包含以下幾個(gè)步驟(I)通過設(shè)計(jì)圖紙和真實(shí)物體測量數(shù)據(jù)獲得實(shí)體外觀與幾何形狀等數(shù)據(jù),通過實(shí)地拍攝照片及對材質(zhì)圖片庫中的圖片進(jìn)行處理得到紋理數(shù)據(jù),數(shù)據(jù)采集工作完成后,對采集到的真實(shí)海浪和島嶼圖像數(shù)據(jù)進(jìn)行初步的處理,去掉不正確和冗余的數(shù)據(jù);進(jìn)行數(shù)據(jù)轉(zhuǎn)換和裁剪,把紋理圖片轉(zhuǎn)換為Creator軟件支持的RGBA圖片格式;然后將圖像數(shù)據(jù)進(jìn)行分類、整理和存儲(chǔ);(2)利用Creator軟件建立海浪和島ill與模型.fit文件,首先,在Creator環(huán)境中建立海浪和島嶼多邊形,海浪和島嶼多邊形按樹狀層次結(jié)構(gòu)進(jìn)行定義,同一層次的節(jié)點(diǎn)內(nèi)容,輸出時(shí)按從左至右進(jìn)行圖形繪制渲染,采用單元分割法將場景模型分割成較小的單元,最終顯示出海浪和島嶼的基本結(jié)構(gòu);然后選擇步驟(I)中采集到的真實(shí)海浪和島嶼圖像作為紋理,通過定義紋理、控制過濾、說明坐標(biāo)方式、給出幾何坐標(biāo)和紋理坐標(biāo)構(gòu)建最終海洋場景模型.fit文件;(3)采用步驟(I)和步驟(2)相同的方法,完成建立船只和飛行器的三維實(shí)體模型.fit文件;(4)對三維場景模型進(jìn)行結(jié)構(gòu)調(diào)整,優(yōu)化三維場景模型的視景仿真輸出次序,提高視景畫面的質(zhì)量,采用分割法使當(dāng)前島嶼模型中的實(shí)體被選擇渲染;(5)提取電子海圖中存儲(chǔ)的真實(shí)數(shù)據(jù)信息,將所獲取的海洋地理信息要素?cái)?shù)據(jù)構(gòu) 建成一個(gè)海洋地理信息數(shù)據(jù)庫,視景仿真程序調(diào)用海洋地理信息數(shù)據(jù)庫,將海洋地理信息加載到三維場景模型;(6)通過以上步驟得到的三維場景模型、三維實(shí)體模型和海洋地理信息數(shù)據(jù)庫,最終得到三維視景數(shù)據(jù)庫;步驟二 三維模型配置和三維特效制作(I)使用LynX Prime圖形界面設(shè)計(jì)軟件進(jìn)行三維場景模型配置,通過LynX Prime圖形界面設(shè)計(jì)軟件對三維場景模型進(jìn)行初始化設(shè)置;設(shè)置模型初始化的關(guān)鍵是島嶼模型在海洋場景模型中的定位;通過電子海圖中島嶼真實(shí)的經(jīng)緯度設(shè)置島嶼模型在海洋場景模型中的定位;(2)設(shè)置實(shí)體的運(yùn)動(dòng)效果。為了生成真實(shí)感更強(qiáng)的環(huán)境,在不降低視景仿真系統(tǒng)的實(shí)時(shí)性前提下,構(gòu)建相關(guān)的特殊效果模型,本發(fā)明采用粒子系統(tǒng)和靜態(tài)圖像紋理映射的方法進(jìn)行特殊效果模型的實(shí)現(xiàn)。步驟三仿真過程實(shí)現(xiàn)(I)仿真實(shí)現(xiàn)流程采用Visual Studio 2003. NET和Vega Prime仿真軟件相結(jié)合的方法實(shí)現(xiàn)視景仿真過程,視景仿真實(shí)現(xiàn)過程是結(jié)合Creator與Vega Prime仿真軟件,建立系統(tǒng)實(shí)時(shí)處理過程,將步驟一生成的場景模型.fit文件加載到仿真軟件Vega Prime中,將場景模型.fit文件成為視景仿真實(shí)時(shí)應(yīng)用的一部分,具體流程為a、首先將Creator建立的場景模型加載到Vega Prime仿真軟件中,然后在應(yīng)用界面Lynx中完成ACF中定義窗口、通道、觀察者、運(yùn)動(dòng)模型、場景、場景中的對象、場景運(yùn)動(dòng)體、環(huán)境及環(huán)境特效、光源等初始化的設(shè)定,然后配置實(shí)時(shí)仿真所需的環(huán)境,編譯保存ACF文件,最后預(yù)覽環(huán)境效果;b、編寫仿真程序,在Visual Studio 2003. NET中調(diào)用Vega Prime的API函數(shù)初始化系統(tǒng)和模塊類,調(diào)用幀循環(huán)函數(shù)繪制場景循環(huán),從而實(shí)現(xiàn)可視化實(shí)時(shí)仿真應(yīng)用程序;(2)視景漫游和實(shí)體屬性查詢的實(shí)現(xiàn)實(shí)現(xiàn)視景仿真場景內(nèi)多角度的漫游,通過鍵盤、鼠標(biāo)觸發(fā)事件進(jìn)行人機(jī)交互漫游功能,進(jìn)行視角切換和實(shí)體信息查詢響應(yīng),當(dāng)用戶進(jìn)行多條航路視角切換時(shí),漫游引擎立即調(diào)度場景數(shù)據(jù)庫生成新的實(shí)時(shí)視點(diǎn)畫面,并在仿真場景中顯示;實(shí)體屬性查詢流程為首先通過鼠標(biāo)選擇查詢實(shí)體,如果選中實(shí)體,視景仿真系統(tǒng)收到查詢消息,調(diào)用查詢函數(shù)查詢海洋地理信息數(shù)據(jù)庫,系統(tǒng)查詢到海洋地理信息數(shù)據(jù)庫中實(shí)體屬性信息,將其相應(yīng)的屬性數(shù)據(jù)值傳到仿真系統(tǒng),并顯示到仿真界面。然后判斷是否還需要查詢其他的實(shí)體,如需要,則返回,重新查詢相應(yīng)的實(shí)體,如無,則結(jié)束;(3)視景仿真系統(tǒng)與航路規(guī)劃系統(tǒng)的協(xié)調(diào)工作過程在Visual Studio 2003. NET平臺(tái)上,搭建航路規(guī)劃系統(tǒng)和視景仿真系統(tǒng)之間標(biāo)準(zhǔn)接口,將航路規(guī)劃系統(tǒng)計(jì)算的飛行器航路信息輸入到視景仿真系統(tǒng)中,視景仿真系統(tǒng)按照航路規(guī)劃系統(tǒng)計(jì)算的飛行器航路信息進(jìn)行飛行器機(jī)動(dòng)飛行仿真,飛行器機(jī)動(dòng)飛行仿真過程中,如果有多條航路軌跡,視景仿真系統(tǒng)會(huì)提示是否進(jìn)行切換,觀看到不同近水面飛行器的不同航路軌跡的飛行;仿真飛行結(jié)束后,視景仿真系統(tǒng)會(huì)將仿真結(jié)果信息反饋給航路規(guī)劃系統(tǒng)。本發(fā)明的優(yōu)點(diǎn)在于I、本發(fā)明提出一種近水面飛行器機(jī)動(dòng)飛行視景仿真方法,將近水面飛行器機(jī)動(dòng)飛行進(jìn)行可視化視景仿真,解決了傳統(tǒng)的實(shí)物仿真具有的不可重復(fù)性和高風(fēng)險(xiǎn)性的缺點(diǎn),具有高效率、可重復(fù)性和低成本的特點(diǎn)。2、本發(fā)明提出一種近水面飛行器機(jī)動(dòng)飛行視景仿真方法,在創(chuàng)建三維場景模型中加入了真實(shí)的海洋地理信息,使得仿真環(huán)境更加逼真。3、本發(fā)明提出一種近水面飛行器機(jī)動(dòng)飛行視景仿真方法,可以顯示和推演單個(gè)飛行器的航路的飛行態(tài)勢,也可以在多個(gè)飛行器的多條飛行航路之間進(jìn)行視角切換,提供全方位,多角度的仿真視角。
圖I :本發(fā)明提出一種近水面飛行器機(jī)動(dòng)飛行視景仿真方法流程圖;
圖2 :本發(fā)明中飛行器尾焰特效模型的實(shí)現(xiàn)流程圖;圖3 :本發(fā)明中實(shí)體屬性查詢流程具體實(shí)施例方式下面結(jié)合附圖對本發(fā)明進(jìn)行詳細(xì)說明。本發(fā)明提出一種近水面飛行器機(jī)動(dòng)飛行視景仿真方法,如圖I所示,包括以下幾個(gè)步驟步驟一三維場景模型的建立建立三維場景模型主要包括海洋場景建模和三維實(shí)體建模。海洋場景模型包含海浪態(tài)勢模型和島嶼模型,是構(gòu)建近水面飛行器視景仿平臺(tái)的關(guān)鍵步驟之一。本發(fā)明中通過數(shù)據(jù)的分析準(zhǔn)備、原始模型生成、地形優(yōu)化、紋理映射和調(diào)試優(yōu)化處理等過程來完成三維場景模型的建立過程,具體建模過程包括以下幾個(gè)步驟(I)通過設(shè)計(jì)圖紙和真實(shí)物體測量數(shù)據(jù)獲得實(shí)體外觀與幾何形狀等數(shù)據(jù)。通過實(shí)地拍攝照片及對常用材質(zhì)圖片庫中的圖片進(jìn)行處理得到紋理數(shù)據(jù)。數(shù)據(jù)采集工作完成后,對采集到的真實(shí)海浪和島嶼圖像數(shù)據(jù)進(jìn)行初步的處理(在處理海浪和島嶼圖片需將像素大小設(shè)為2的N次冪,以利于紋理的顯示),去掉不正確和冗余的數(shù)據(jù);進(jìn)行數(shù)據(jù)轉(zhuǎn)換和裁剪,把紋理圖片轉(zhuǎn)換為Creator軟件支持的RGBA圖片格式;然后將圖像數(shù)據(jù)進(jìn)行分類、整理和存儲(chǔ)。(2)利用Creator軟件建立海浪和島ill與模型.fit文件。首先,在Creator環(huán)境中建立海浪和島嶼多邊形,海浪和島嶼多邊形按樹狀層次結(jié)構(gòu)進(jìn)行定義,同一層次的節(jié)點(diǎn)內(nèi)容,輸出時(shí)按從左至右進(jìn)行圖形繪制渲染,采用單元分割法將場景模型分割成較小的單元,最終顯示出海浪和島嶼的基本結(jié)構(gòu);然后選擇(I)中采集到的真實(shí)海浪和島嶼圖像作為紋理,通過定義紋理、控制過濾、說明坐標(biāo)方式、給出幾何坐標(biāo)和紋理坐標(biāo)構(gòu)建最終海洋場景模型.fit文件。 (3)重復(fù)步驟(I)和步驟(2)完成建立船只和飛行器的三維實(shí)體模型.fit文件。(4)對三維場景模型進(jìn)行結(jié)構(gòu)調(diào)整,能夠優(yōu)化三維場景模型的視景仿真輸出次序,提高視景畫面的質(zhì)量。采用分割法可以使當(dāng)前島嶼模型中的實(shí)體才被選擇渲染,極大的減少系統(tǒng)處理模型的復(fù)雜度,有效提升系統(tǒng)的運(yùn)行速度。(5)提取電子海圖中存儲(chǔ)的真實(shí)數(shù)據(jù)信息,將所獲取的海洋地理信息要素?cái)?shù)據(jù)構(gòu)建成一個(gè)海洋地理信息數(shù)據(jù)庫。視景仿真程序調(diào)用海洋地理信息數(shù)據(jù)庫,將海洋地理信息加載到三維場景模型,使得仿真環(huán)境更加真實(shí)。(6)通過以上步驟得到的三維場景模型、三維實(shí)體模型和海洋地理信息數(shù)據(jù)庫,最終得到三維視景數(shù)據(jù)庫。步驟二 三維模型配置和三維特效制作(I)使用LynX Prime圖形界面設(shè)計(jì)軟件進(jìn)行三維場景模型配置。通過LynX Prime圖形界面設(shè)計(jì)軟件對三維場景模型進(jìn)行初始化設(shè)置;設(shè)置模型初始化的關(guān)鍵是島嶼模型在海洋場景模型中的定位;本發(fā)明通過電子海圖中島嶼真實(shí)的經(jīng)緯度設(shè)置島嶼模型在海洋場景模型中的定位。(2)設(shè)置實(shí)體的運(yùn)動(dòng)效果,為了生成真實(shí)感更強(qiáng)的環(huán)境,在不降低視景仿真系統(tǒng)的實(shí)時(shí)性前提下,構(gòu)建相關(guān)的特效模型,如飛行器尾焰、爆炸火焰、氣象中的雨和海浪等。飛行器尾焰特效模型、爆炸火焰特效模型和氣象中的雨特效模型采用粒子系統(tǒng)進(jìn)行特殊效果模型的實(shí)現(xiàn);海浪特效模型采用多幅不同的靜態(tài)圖像循環(huán)映射的方法,依次映射到海面上實(shí)現(xiàn)。①基于粒子系統(tǒng)的飛行器尾焰特效模型和爆炸火焰特效模型的建立包括以下步驟a、控制粒子數(shù)量粒子的數(shù)目通過控制在一幀中產(chǎn)生的粒子的平均數(shù)和它的方差確定,第&幀中新產(chǎn)生粒子數(shù)目Iip(A)定義為 np (fj) = mp (fj) +rand () X vp (fj)其中mp (^)和vp (^)分別是fi巾貞新產(chǎn)生粒子的數(shù)目的均值和方差;rand()是在[-1,I]上均勻分布的隨機(jī)函數(shù)。b、設(shè)置初始位置假定初始位置反映火焰粒子的分布及初始狀態(tài),火焰粒子的分布及初始狀態(tài)取決于該點(diǎn)燃燒的狀態(tài)。假設(shè)燃燒的點(diǎn)在某一平面上的某個(gè)圓內(nèi)呈均勻分布。假設(shè)該圓中心為Center= {cx, cy, cz} (cx, cy, cz為火焰粒子燃燒圓的中心坐標(biāo)),燃燒半徑為r,并假設(shè)燃燒面與xz面平行。其方程為(x’ -cx)2+(z' -cz)2 = r2。則有此平面生成的新粒子的位置為x, = cxy’ = cy+rand() Xrz’ = cz+rand() Xrx’,y’,z’為火焰新粒子的坐標(biāo)。
C、設(shè)置初始顏色和亮度火焰粒子的顏色采用RGBA模型,R、G、B分別表示顏色中的紅、綠、藍(lán)三個(gè)顏色分量,A表示粒子的透明度,用于表現(xiàn)當(dāng)火焰粒子燃盡時(shí),顏色漸漸隱去,最終形成與背景相融的效果。設(shè)基本色為colorO = {rO, gO, b0},r0、g0、b0為紅、綠、藍(lán)三個(gè)顏色分量的初始值,初始顏色的變化范圍Ac為Ac = {Ar,Ag,Ab},Ar、Ag、Ab為紅、綠、藍(lán)三個(gè)顏色分量的變化范圍,則粒子的初始顏色color(i)為color (i) = colorO+rand () XAc火焰粒子的亮度是一個(gè)從I到0變化的實(shí)數(shù)。0表示最暗,I表示最亮。粒子的初始売度為I即最売。i為當(dāng)前火焰粒子相對初始火焰粒子(即最亮粒子)的距離。d、設(shè)置初始速度火焰粒子的初始速度為具有方向和大小的矢量。火焰粒子依附在飛行器上,所以可認(rèn)為火焰粒子的初始速度等于飛行器飛行的初始速度。e、計(jì)算粒子的生命期火焰粒子的生命期表明了其在屏幕上停留時(shí)間的長短,用幀數(shù)表示。由于飛行器在飛行時(shí)一直有尾焰,所以火焰粒子的生命期一直從飛行器飛行開始持續(xù)到飛行器飛行結(jié)束。②飛行器尾焰和爆炸火焰特效的繪制飛行器尾焰和爆炸火焰特效的繪制過程主要是火焰特效的制作?;诹W酉到y(tǒng)的火焰粒子運(yùn)動(dòng)實(shí)現(xiàn)過程如圖2所示。火焰特效的繪制設(shè)定幀值模擬火焰特效存活總時(shí)間,所以根據(jù)火焰的生命期設(shè)定幀數(shù)上限值。如果當(dāng)前幀數(shù)小于幀數(shù)上限值時(shí),繪制當(dāng)前幀數(shù)的存活火焰粒子,原有的火焰粒子進(jìn)行運(yùn)動(dòng)變換,將存活較長的火焰粒子部分消亡,同時(shí)將下一幀火焰粒子賦予相應(yīng)的屬性。繼續(xù)判斷當(dāng)前幀數(shù)是否小于幀數(shù)上限值,如果當(dāng)前幀數(shù)小于上限值重復(fù)上述內(nèi)容;否則結(jié)束。運(yùn)動(dòng)變換方程X,= x+vxXty,= y+vyX tz,= z+vzX tx, y, z為火焰新粒子前一巾貞坐標(biāo),x’,y’,z’為火焰新粒子變換后坐標(biāo),vx, vy, Vz為火焰粒子速度,t為一幀時(shí)間。③基于粒子系統(tǒng)的雨特效繪制雨的屬性包括粒子形狀和大小,粒子的顏色和透明度。粒子的形狀設(shè)為球體,所以粒子的大小根據(jù)球體的半徑唯一確定。粒子的顏色與模糊物體的整體外觀顏色是一致的。但是,某些粒子的顏色有一些差別,這主要和粒子的透明度息息相關(guān)。所以透明度的處理是雨特效的關(guān)鍵。雨模型的實(shí)現(xiàn)包括以下內(nèi)容a、透明度的簡化處理假如在視線方向上有n個(gè)透明度為t的粒子,其中第n號粒子為距離圖像背景最近的粒子,第I號粒子為距離圖像背景最遠(yuǎn)的粒子。如果所有粒子的亮度都相等,并且采用線性透明模型,則可以得到In = Ib+I (1-t)In-! = In+I (1-t)… I1 = I2+I(1-t)其中,Ib為背景亮度,I為每個(gè)粒子的平均亮度,In, In^1,…,I1為粒子n,n-1,…,I加上透明效果后的亮度。由上述公式可得I1 = Ib tn+I (l-tn)上式表明,若把同一視線上的n個(gè)透明度為t的粒子看做一個(gè)整體,那么該粒子群整體的透明度為tn。b、其它屬性和實(shí)現(xiàn)模擬雨效果的粒子系統(tǒng)其它屬性和實(shí)現(xiàn),完全根據(jù)步驟(2)中火焰模型方法處理。④海浪特效繪制海浪特效是采用多幅不同的靜態(tài)圖像循環(huán)映射的方法,依次循環(huán)映射到海面上實(shí)現(xiàn)。設(shè)置紋理映射時(shí),利用Alpha融合技術(shù),將海浪的每幅紋理圖像中的Alpha值設(shè)置為不同的數(shù)值,啟動(dòng)融合功能,從而實(shí)現(xiàn)每幅圖像間的漸變過度,使海浪效果比較逼真。步驟三仿真過程實(shí)現(xiàn)(I)仿真實(shí)現(xiàn)流程采用Visual Studio 2003. NET和Vega Prime仿真軟件相結(jié)合的方法實(shí)現(xiàn)視景仿真過程。視景仿真實(shí)現(xiàn)過程是結(jié)合Creator與Vega Prime仿真軟件,建立系統(tǒng)實(shí)時(shí)處理過程。將步驟一生成的場景模型.fit文件加載到仿真軟件Vega Prime中,將場景模型.fit文件成為視景仿真實(shí)時(shí)應(yīng)用的一部分。具體流程為a、首先將Creator建立的場景模型加載到Vega Prime仿真軟件中,然后在應(yīng)用界面Lynx中完成ACF中定義窗口、通道、觀察者、運(yùn)動(dòng)模型、場景、場景中的對象、場景運(yùn)動(dòng)體、環(huán)境及環(huán)境特效、光源等初始化的設(shè)定,然后配置實(shí)時(shí)仿真所需的環(huán)境,編譯保存ACF文件,最后預(yù)覽環(huán)境效果。b、編寫仿真程序,在Visual Studio 2003. NET中調(diào)用Vega Prime的API函數(shù)初始化系統(tǒng)和模塊類,調(diào)用幀循環(huán)函數(shù)繪制場景循環(huán),從而實(shí)現(xiàn)可視化實(shí)時(shí)仿真應(yīng)用程序。(2)視景漫游和實(shí)體屬性查詢的實(shí)現(xiàn) 本發(fā)明提出的近水面飛行器機(jī)動(dòng)飛行視景仿真方法實(shí)現(xiàn)視景仿真場景內(nèi)多角度的漫游,能夠通過鍵盤、鼠標(biāo)觸發(fā)事件進(jìn)行人機(jī)交互漫游功能,可進(jìn)行視角切換和實(shí)體信息查詢響應(yīng)。當(dāng)用戶進(jìn)行多條航路視角切換時(shí),漫游引擎立即調(diào)度場景數(shù)據(jù)庫生成新的實(shí)時(shí)視點(diǎn)畫面,并在仿真場景中顯示。
本發(fā)明提出的近水面飛行器機(jī)動(dòng)飛行視景仿真方法具備實(shí)體屬性查詢功能,實(shí)體屬性查詢流程如附圖3所示,首先通過鼠標(biāo)選擇查詢實(shí)體即目標(biāo)物體,如果選中實(shí)體,視景仿真系統(tǒng)收到查詢消息,調(diào)用查詢函數(shù)查詢海洋地理信息數(shù)據(jù)庫,系統(tǒng)查詢到海洋地理信息數(shù)據(jù)庫中實(shí)體屬性信息,將其相應(yīng)的屬性數(shù)據(jù)值傳到仿真系統(tǒng),并顯示到仿真界面。然后判斷是否還需要查詢其他的實(shí)體,如需要,則返回,重新查詢相應(yīng)的實(shí)體,如無,則結(jié)束。(3)視景仿真系統(tǒng)與航路規(guī)劃系統(tǒng)的協(xié)調(diào)工作過程在Visual Studio 2003 . NET平臺(tái)上,搭建航路規(guī)劃系統(tǒng)和視景仿真系統(tǒng)之間標(biāo)準(zhǔn)接口,將航路規(guī)劃系統(tǒng)計(jì)算的飛行器航路信息輸入到視景仿真系統(tǒng)中,視景仿真系統(tǒng)按照航路規(guī)劃系統(tǒng)計(jì)算的飛行器航路信息進(jìn)行飛行器機(jī)動(dòng)飛行仿真。飛行器機(jī)動(dòng)飛行仿真過程中,如果有多條航路軌跡,視景仿真系統(tǒng)會(huì)提示你是否進(jìn)行切換,可以觀看到不同近水面飛行器的不同航路軌跡的飛行;仿真飛行結(jié)束后,視景仿真系統(tǒng)會(huì)將仿真結(jié)果信息反饋給航路規(guī)劃系統(tǒng),為決策者制定最終的規(guī)劃策略提供依據(jù)。
權(quán)利要求
1.一種近水面飛行器機(jī)動(dòng)飛行視景仿真方法,其特征在于包括以下幾個(gè)步驟 步驟一三維場景模型的建立 建立三維場景模型包括海洋場景建模和三維實(shí)體建模,海洋場景模型包含海浪態(tài)勢模型和島嶼模型,三維場景模型的建立過程具體包含以下幾個(gè)步驟 (1)通過設(shè)計(jì)圖紙和真實(shí)物體測量數(shù)據(jù)獲得實(shí)體外觀與幾何形狀等數(shù)據(jù),通過實(shí)地拍攝照片及對材質(zhì)圖片庫中的圖片進(jìn)行處理得到紋理數(shù)據(jù),數(shù)據(jù)采集工作完成后,對采集到的真實(shí)海浪和島嶼圖像數(shù)據(jù)進(jìn)行初步的處理,去掉不正確和冗余的數(shù)據(jù),進(jìn)行數(shù)據(jù)轉(zhuǎn)換和裁剪,把紋理圖片轉(zhuǎn)換為Creator軟件支持的RGBA圖片格式;然后將圖像數(shù)據(jù)進(jìn)行分類、整理和存儲(chǔ); (2)利用Creator軟件建立海浪和島ill與模型.fit文件,首先,在Creator環(huán)境中建立海浪和島嶼多邊形,海浪和島嶼多邊形按樹狀層次結(jié)構(gòu)進(jìn)行定義,同一層次的節(jié)點(diǎn)內(nèi)容,輸出時(shí)按從左至右進(jìn)行圖形繪制渲染,采用單元分割法將場景模型分割成較小的單元,最終 顯示出海浪和島嶼的基本結(jié)構(gòu);然后選擇步驟(I)中采集到的真實(shí)海浪和島嶼圖像作為紋理,通過定義紋理、控制過濾、說明坐標(biāo)方式、給出幾何坐標(biāo)和紋理坐標(biāo)構(gòu)建最終海洋場景模型.fit文件; (3)采用步驟(I)和步驟(2)相同的方法,完成建立船只和飛行器的三維實(shí)體模型.fit文件; (4)對三維場景模型進(jìn)行結(jié)構(gòu)調(diào)整,優(yōu)化三維場景模型的視景仿真輸出次序,提高視景畫面的質(zhì)量,采用分割法使當(dāng)前島嶼模型中的實(shí)體被選擇渲染; (5)提取電子海圖中存儲(chǔ)的真實(shí)數(shù)據(jù)信息,將所獲取的海洋地理信息要素?cái)?shù)據(jù)構(gòu)建成一個(gè)海洋地理信息數(shù)據(jù)庫,視景仿真程序調(diào)用海洋地理信息數(shù)據(jù)庫,將海洋地理信息加載到三維場景模型; (6)通過以上步驟得到三維場景模型、三維實(shí)體模型和海洋地理信息數(shù)據(jù)庫,最終得到三維視景數(shù)據(jù)庫; 步驟二 三維模型配置和三維特效制作 (1)使用LynXPrime圖形界面設(shè)計(jì)軟件進(jìn)行三維場景模型配置,通過LynX Prime圖形界面設(shè)計(jì)軟件對三維場景模型進(jìn)行初始化設(shè)置;設(shè)置模型初始化的關(guān)鍵是島嶼模型在海洋場景模型中的定位,通過電子海圖中島嶼真實(shí)的經(jīng)緯度設(shè)置島嶼模型在海洋場景模型中的定位; (2)設(shè)置實(shí)體的運(yùn)動(dòng)效果,構(gòu)建相關(guān)的特效模型,采用粒子系統(tǒng)和靜態(tài)圖像紋理映射的方法進(jìn)行特效模型的實(shí)現(xiàn); 步驟三仿真過程實(shí)現(xiàn) (I)仿真實(shí)現(xiàn)流程 采用Visual Studio 2003. NET和Vega Prime仿真軟件相結(jié)合的方法實(shí)現(xiàn)視景仿真過程,視景仿真實(shí)現(xiàn)過程是結(jié)合Creator與Vega Prime仿真軟件,建立系統(tǒng)實(shí)時(shí)處理過程,將步驟一生成的場景模型.fit文件加載到仿真軟件Vega Prime中,將場景模型.fit文件成為視景仿真實(shí)時(shí)應(yīng)用的一部分,具體流程為 a、首先將Creator建立的場景模型加載到Vega Prime仿真軟件中,然后在應(yīng)用界面Lynx中完成ACF中定義窗口、通道、觀察者、運(yùn)動(dòng)模型、場景、場景中的對象、場景運(yùn)動(dòng)體、環(huán)境及環(huán)境特效、光源初始化的設(shè)定,然后配置實(shí)時(shí)仿真所需的環(huán)境,編譯保存ACF文件,最后預(yù)覽環(huán)境效果; b、編寫仿真程序,在Visual Studio 2003. NET中調(diào)用Vega Prime的API函數(shù)初始化系統(tǒng)和模塊類,調(diào)用幀循環(huán)函數(shù)繪制場景循環(huán),從而實(shí)現(xiàn)可視化實(shí)時(shí)仿真應(yīng)用程序; (2)視景漫游和實(shí)體屬性查詢的實(shí)現(xiàn) 實(shí)現(xiàn)視景仿真場景內(nèi)多角度的漫游,通過鍵盤、鼠標(biāo)觸發(fā)事件進(jìn)行人機(jī)交互漫游功能,進(jìn)行視角切換和實(shí)體信息查詢響應(yīng),當(dāng)用戶進(jìn)行多條航路視角切換時(shí),漫游引擎立即調(diào)度場景數(shù)據(jù)庫生成新的實(shí)時(shí)視點(diǎn)畫面,并在仿真場景中顯示; 實(shí)體屬性查詢流程為首先通過鼠標(biāo)選擇查詢實(shí)體,如果選中實(shí)體,視景仿真系統(tǒng)收到查詢消息,調(diào)用查詢函數(shù)查詢海洋地理信息數(shù)據(jù)庫,系統(tǒng)查詢到海洋地理信息數(shù)據(jù)庫中實(shí)體屬性信息,將其相應(yīng)的屬性數(shù)據(jù)值傳到仿真系統(tǒng),并顯示到仿真界面,然后判斷是否還需要查詢其他的實(shí)體,如需要,則返回,重新查詢相應(yīng)的實(shí)體,如無,則結(jié)束; (3)視景仿真系統(tǒng)與航路規(guī)劃系統(tǒng)的協(xié)調(diào)工作過程 在Visual Studio 2003. NET平臺(tái)上,搭建航路規(guī)劃系統(tǒng)和視景仿真系統(tǒng)之間標(biāo)準(zhǔn)接口,將航路規(guī)劃系統(tǒng)計(jì)算的飛行器航路信息輸入到視景仿真系統(tǒng)中,視景仿真系統(tǒng)按照航路規(guī)劃系統(tǒng)計(jì)算的飛行器航路信息進(jìn)行飛行器機(jī)動(dòng)飛行仿真,飛行器機(jī)動(dòng)飛行仿真過程中,如果有多條航路軌跡,視景仿真系統(tǒng)會(huì)提示是否進(jìn)行切換,觀看到不同近水面飛行器的不同航路軌跡的飛行;仿真飛行結(jié)束后,視景仿真系統(tǒng)會(huì)將仿真結(jié)果信息反饋給航路規(guī)劃系統(tǒng)。
2.根據(jù)權(quán)利要求I所述的一種近水面飛行器機(jī)動(dòng)飛行視景仿真方法,其特征在于所述的特效模型包括飛行器尾焰特效模型、爆炸火焰特效模型、氣象中的雨特效模型和海浪特效模型。
3.根據(jù)權(quán)利要求2所述的一種近水面飛行器機(jī)動(dòng)飛行視景仿真方法,其特征在于飛行器尾焰特效模型、爆炸火焰模型和氣象中的雨特效模型均采用粒子系統(tǒng)進(jìn)行實(shí)現(xiàn);海浪特效模型采用多幅不同的靜態(tài)圖像循環(huán)映射的方法依次映射到海面上實(shí)現(xiàn)。
4.根據(jù)權(quán)利要求3所述的一種近水面飛行器機(jī)動(dòng)飛行視景仿真方法,其特征在于采用粒子系統(tǒng)實(shí)現(xiàn)飛行器尾焰特效模型和爆炸火焰模型的具體包括以下步驟 a、控制粒子數(shù)量 粒子的數(shù)目通過控制在一幀中產(chǎn)生的粒子的平均數(shù)和它的方差確定,第fi幀中新產(chǎn)生粒子數(shù)目np (f D為 np (fi) = mp (fi) +rand () X vp 況) 其中Hip(A)和vp(fi)分別是&幀新產(chǎn)生粒子的數(shù)目的均值和方差;randO是在[-1,I]上均勻分布的隨機(jī)函數(shù); b、設(shè)置初始位置 初始位置反映火焰粒子的分布及初始狀態(tài),火焰粒子的分布及初始狀態(tài)取決于該點(diǎn)燃燒的狀態(tài),燃燒的點(diǎn)在某一平面上的某個(gè)圓內(nèi)呈均勻分布,該圓中心為Center= {cx, cy, cz},其中ex, cy, cz為火焰粒子燃燒圓的中心坐標(biāo),燃燒半徑為r,燃燒面與xz面平行,方程為(x’ -cx)2+(z' -cz)2 = r2,則有此平面生成的新粒子的位置為 X,= CXy,= cy+rand() Xr zJ = cz+rand() Xr x',y’,z’為火焰新粒子的坐標(biāo); C、設(shè)置初始顏色和亮度 火焰粒子的顏色采用RGBA模型,R、G、B分別表示顏色中的紅、綠、藍(lán)三個(gè)顏色分量,A表示粒子的透明度,用于表現(xiàn)當(dāng)火焰粒子燃盡時(shí),顏色漸漸隱去,最終形成與背景相融的效果,設(shè)基本色為colorO = {rO, gO, bO},rO、gO、bO為紅、綠、藍(lán)三個(gè)顏色分量的初始值,初始顏色的變化范圍Ac為Ac = {Ar,Ag,Ab},Ar、Ag、Ab為紅、綠、藍(lán)三個(gè)顏色分量的變化范圍,則粒子的初始顏色color(i)為color (i) = colorO+rand () XAc 火焰粒子的亮度為一個(gè)從I到0變化的實(shí)數(shù),0表示最暗,I表示最亮,粒子的初始亮度 為I ; i為當(dāng)前火焰粒子相對初始火焰粒子最亮粒子的距離; d、設(shè)置初始速度 火焰粒子的初始速度為具有方向和大小的矢量,火焰粒子依附在飛行器上,火焰粒子的初始速度等于飛行器飛行的初始速度; e、計(jì)算粒子的生命期 火焰粒子的生命期表明了其在屏幕上停留時(shí)間的長短,用幀數(shù)表示,飛行器在飛行時(shí)一直有尾焰,火焰粒子的生命期一直從飛行器飛行開始持續(xù)到飛行器飛行結(jié)束。
5.根據(jù)權(quán)利要求3所述的一種近水面飛行器機(jī)動(dòng)飛行視景仿真方法,其特征在于所述的飛行器尾焰和爆炸火焰特效的實(shí)現(xiàn)方法為 設(shè)定幀數(shù)模擬火焰特效存活總時(shí)間,根據(jù)火焰的生命期設(shè)定幀數(shù)上限值,如果當(dāng)前幀數(shù)小于幀數(shù)上限值時(shí),繪制當(dāng)前幀數(shù)的存活火焰粒子,原有的火焰粒子進(jìn)行運(yùn)動(dòng)變換,將存活較長的火焰粒子部分消亡,同時(shí)將下一幀火焰粒子賦予相應(yīng)的屬性,繼續(xù)判斷當(dāng)前幀數(shù)是否小于幀數(shù)上限值,如果當(dāng)前幀數(shù)小于上限值重復(fù)上述內(nèi)容;否則結(jié)束; 運(yùn)動(dòng)變換方程X,= x+vx X ty, = y+vy X tz = z+vzX t X, y, Z為火焰新粒子前一巾貞坐標(biāo),X’,y’,Z’為火焰新粒子變換后坐標(biāo),vx, vy, vz為火焰粒子速度,t為一幀時(shí)間。
6.根據(jù)權(quán)利要求3所述的一種近水面飛行器機(jī)動(dòng)飛行視景仿真方法,其特征在于所述氣象中的的雨特效模型的實(shí)現(xiàn)包括以下步驟 雨的屬性包括粒子形狀和大小、粒子的顏色和透明度,粒子的形狀為球體,粒子的大小根據(jù)球體的半徑確定,粒子的顏色與模糊物體的整體外觀顏色一致 a、透明度的簡化處理 在視線方向上有n個(gè)透明度為t的粒子,其中第n號粒子為距離圖像背景最近的粒子,第I號粒子為距離圖像背景最遠(yuǎn)的粒子,如果所有粒子的亮度均相等,并且采用線性透明模型,則可以得到In = Ib+I (1-t) In-I = In+I (1-t) I1 = I2+I (1-t) 其中,Ib為背景亮度,I為每個(gè)粒子的平均亮度,In, In-!,…,I1為粒子n,n-l,…,I加上透明效果后的亮度,由上述公式可得 I1 = Ib tn+I (1-t") 若把同一視線上的n個(gè)透明度為t的粒子看做一個(gè)整體,那么該粒子群整體的透明度為tn; b、其它屬性和實(shí)現(xiàn) 模擬雨效果的粒子系統(tǒng)其它屬性和實(shí)現(xiàn),與火焰模型實(shí)現(xiàn)方法均相同。
7.根據(jù)權(quán)利要求I所述的一種近水面飛行器機(jī)動(dòng)飛行視景仿真方法,其特征在于所述的海浪特效的實(shí)現(xiàn)方法為海浪特效是由多幅靜態(tài)不同的圖像循環(huán)映射到海面上實(shí)現(xiàn),設(shè)置紋理映射時(shí),利用Alpha融合技術(shù),將海浪的每幅紋理圖像中的Alpha值設(shè)置為不同的Alpha值,啟動(dòng)融合功能,從而實(shí)現(xiàn)每幅圖像間的漸變過度,使海浪效果逼真。
全文摘要
本發(fā)明提出一種近水面飛行器機(jī)動(dòng)飛行視景仿真方法,屬于計(jì)算機(jī)仿真領(lǐng)域,包括步驟一三維場景模型的建立;步驟二三維模型配置和三維特效制作;步驟三仿真過程實(shí)現(xiàn)共三個(gè)步驟。本發(fā)明提出的一種近水面飛行器機(jī)動(dòng)飛行視景仿真方法,將近水面飛行器機(jī)動(dòng)飛行進(jìn)行可視化視景仿真,解決了傳統(tǒng)的實(shí)物仿真具有的不可重復(fù)性和高風(fēng)險(xiǎn)性的缺點(diǎn),具有高效率、可重復(fù)性和低成本的特點(diǎn)。在創(chuàng)建三維場景模型中加入了真實(shí)的海洋地理信息,使得仿真環(huán)境更加逼真。本發(fā)明可以顯示和推演單個(gè)飛行器的航路的飛行態(tài)勢,也可以在多個(gè)飛行器的多條飛行航路之間進(jìn)行視角切換,提供全方位,多角度的仿真視角。
文檔編號G06T17/00GK102800130SQ20121022894
公開日2012年11月28日 申請日期2012年7月4日 優(yōu)先權(quán)日2012年7月4日
發(fā)明者沈志峰, 柴鵬飛, 趙玉新, 劉廠 申請人:哈爾濱工程大學(xué)