999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

應用GPU編程的水聲對抗視景系統關鍵技術

2012-10-26 13:34:22馬天黃建國高偉張群飛
哈爾濱工程大學學報 2012年3期
關鍵詞:效果系統

馬天,黃建國,高偉,張群飛

(1.西安科技大學計算機科學與技術學院,陜西西安710054;2.西北工業大學航海學院,陜西西安710072)

水聲對抗視景仿真以三維影像和聲音方式對作戰雙方態勢進行實時、逼真、直觀的演示,并將試驗過程中的水面艦艇、飛機、潛艇、水下航行器(unmanned underwater vehicle,UUV)等各種實體的狀態及聲學信息進行可視化顯示.隨著GPU編程、開源三維視景引擎等技術的不斷發展,水聲對抗視景仿真的要求也越來越高,對于仿真環境、攻防對抗過程的展示越來越細致.目前視景仿真多是使用商業引擎 Vega[1-2]、Vega Prime[3]、GVS[4]等來實現,這樣仿真系統搭建比較快捷、功能實現簡單.但是由于其不開源,各種應用實現受限于集成的功能,限制了新興技術(如GPU編程等)的及時應用;也有直接使用OpenGL[5]、DirectX[6]等底層圖形庫來實現的,可以根據需要靈活應用,但是渲染引擎需自己開發,增加了開發周期和復雜度,系統效率和穩定性必然會受開發人員技術的影響.開源引擎OSG兼有前2種方法的優點:集成常用算法功能,并可自由擴展[7].其在視景仿真中的應用越來越多[8],尤其是海洋環境仿真方面[9].

本文基于開源OSG視景引擎組織場景,應用GPU編程技術在VS2005 MFC平臺下開發了一套通用水聲對抗視景仿真系統,解決了復雜環境的實時細致再現問題.

1 系統設計

1.1 系統結構

本文視景系統應用于水聲對抗仿真試驗系統,總體仿真平臺是基于高級體系結構(high level architecture,HLA)的一體化水聲對抗仿真系統.其中視景系統聯邦成員處于數據流關系的最后,采用主/從方式,視景仿真主控節點和子通道節點各自存有一份場景和運動實體模型的數據庫.主控節點作為符合HLA標準的一個邦員加入到總體仿真平臺中,通過運行支撐平臺(run time infrastructure,RTI)向其他邦員訂閱所有實體的運動參數和交互信息;然后把相關數據分發給子通道節點,與子通道節點同步實時生成水聲對抗試驗進程的直觀三維場景,并可即時響應用戶的交互操作.子通道節點負責把視景演示的場景擴展,從而獲得更大的三維視景的顯示范圍,并投影到屏幕上,使用戶可對仿真進程的整體或局部進行觀察.該系統還可以工作在單機模式下,即根據試驗數據回放仿真過程,此時主控節點直接從記錄文件中讀取實體的運動和交互信息,其他工作方式不變.系統硬件結構如圖1所示.

圖1 系統硬件結構Fig.1 System's hardware structure

1.2 場景組織

該水聲對抗視景仿真系統主要包括:參演物體、島嶼和海底地形三維造型,海面、海底場景生成,三維聲音播放和多通道管理等功能模塊.整個三維場景采用OSG進行管理和繪制,然后采用多線程技術嵌入到MFC的視圖(view)窗口中顯示.具體方法是在View窗口初始化時進行三維場景的初始化,并開啟單獨的OSG線程;場景、參演物體的位置、狀態和文字信息等的更新通過OSG的更新回調機制實現;在View窗口的鼠標、鍵盤處理函數里獲取消息,并加入到OSG的消息處理隊列Event Queue,這樣可直接利用OSG的事件回調機制響應用戶交互;MFC菜單按鈕消息可通過控制變量或者發送自定義用戶消息交由OSG處理.

圖2 場景結構Fig.2 Scene graph

OSG是基于場景圖方式來管理和繪制三維場景,采用一種自頂向下的分層樹形結構來組織數據,以提升繪制的效率.場景圖樹結構的頂部是一個根節點.從根節點向下延伸,各個組節點中均包含幾何信息和用于控制其外觀的繪制狀態信息.本視景系統場景圖生成采用數據驅動方式,第一幀通過讀取配置信息自動加載場景、模型.場景樹結構如圖2所示,其中osg::MT是osg::Matrix Transform節點的縮寫,前2個相機節點是應用渲染到紋理(render to texture,RTT)技術分別進行反射紋理、折射紋理渲染,島嶼、海底、參演物體等節點通過配置文件自動加載為根節點和RTT相機節點的子節點.

2 場景生成

海面和海底場景一般會占整個仿真場景80%以上的畫面,所以它們的繪制效果和效率直接影響著整個視景仿真效果.隨著GPU的功能越來越強,與圖形有關的處理自然而然地從CPU向GPU轉移.為了建立更加逼真的海面、海底場景又不影響系統的實時性,基于GPU加速生成海面場景[9-10]的應用越來越多.由于OSG底層基于OpenGL,這里選擇OpenGL著色語言(OpenGL shading language,GLSL)作為GPU編程語言.

2.1 海面場景

海浪具有不規則性和不重復性,但其統計特性是穩定的,利用海浪譜描述海浪更為合理.現在比較常用的海浪譜有 Pierson、Jonswap、Phillips等,這里參考典型的Phillips海浪譜公式[11]:

式中:A是數值常量,g是重力加速度,V是風速,ω^是風向.利用Phillips海浪譜生成海面高度圖、法線圖紋理步驟為:初始化配置海浪參數(風速、風向等),由Ph(k)通過CPU計算得到傅里葉網格數據,以2D紋理傳遞給GPU,在GPU中使用快速FFT變換計算,得到高度場數據,再由此計算得到法線圖數據,并把結果渲染到紋理.傅里葉網格一般大于128×128即可滿足視覺效果,越大越精細,考慮到實時性的要求,這里選擇512×512大小.波浪網格采用投影網格模型[12]進行層次細節(level of detail,LOD)優化,如圖3所示:在投影空間建立一個與視線垂直的均勻網格平面,再將該平面投影到世界空間的海平面上;為了避免邊緣走樣效應,投影網格邊沿要適當擴大一圈,使邊沿落在屏幕范圍外.生成的海面網格如圖4所示.

采用立方體紋理將天空反射傳遞到GPU;利用裁剪面將水面上景物渲染到反射RTT相機、水面下景物渲染到折射RTT相機.最后在片元著色器中,分別利用視線的反射向量和折射向量進行紋理映射,把取得的天空紋理colorsky、反射紋理colorreflect、折射紋理colorrefract和水面基本色colorbase按下式進行混合:

式中:A1、A2、A3為經驗系數,fresnell為菲涅爾系數;當波浪足夠強時會產生泡沫,這里通過把預先創建的泡沫紋理在高于某個高度的波浪頂點上進行混合實現.海面渲染效果如圖5所示.

圖3 投影網格模型Fig.3 Projection-grid model

圖4 海面網格Fig.4 Surface grid

圖5 海面渲染效果Fig.5 Rendering effect of ocean surface

2.2 海底場景

首先是海背面的繪制,跟海面繪制類似,只是沒有考慮反射紋理,只需在水面的片元著色器中根據視點位置選擇相應的紋理進行混合.其中折射紋理為上節的反射RTT相機渲染的紋理,利用折射向量向紋理空間映射.

其次是水下光照的實現,主要包括:淺海焦散、光束效果和模糊效果.其中焦散和光束原理[13]相同,都是光線經過水面折射后,有的匯聚、有的發散,進而形成的2種光照效果.這2種效果一般在4~10 m的水底才能觀察到[14],而水聲對抗場景一般在水下幾十米以下的深海,焦散效果在水底、物體的渲染影響很小,因此這里忽略了焦散,只實現視點剛入水時可觀察到的光束效果.要實時模擬其物理過程是不太容易的,不管是正向還是逆向光線跟蹤方法,都是非常耗時的.這里從美學角度出發,首先利用Caustics Generator軟件,根據不同海況調整參數,預先生成N組1~10 m的焦散圖片紋理;初始化時,根據海洋配置參數,選擇相應海況下的一組紋理;然后參考Lasse[15]的方法,根據太陽和視點的位置,利用不同深度的焦散圖片,啟用alpha混合來渲染光束照明體;最后對光束做水平擾動,以實現光束隨海水起伏的運動效果.水底的模糊效果則可以直接打開OSG的霧效,并設置淡藍色的顏色.

海底一般不會清澈無物,所以要加上浮簾粒子效果以增強其視覺真實性,這里采用OSG的粒子系統實現.粒子的數量在海洋初始化時設置,考慮到能見度和實時性,粒子的發射位置限定在一個以視點為圓心的球形區域內即可,每個粒子發射后做一個隨機速度、方向的緩慢運動,超出該范圍則重生.最終渲染的海底效果如圖6所示.

圖6 海底渲染效果Fig.6 Underwater rendering effect

3 場景HDR效果

高動態范圍(HDR)技術可以用更寬的色彩范圍來表現場景,一般用在相機照片和游戲場景中,隨著GPU編程技術的發展,其在實時三維仿真中的應用也成為可能[16].本文基于GPU后續渲染技術,用OSG實現了整個場景的HDR輝光、平滑效果,使場景更加的逼真.具體實現步驟如下:

1)RTT相機將場景渲染到1∶1大小的紋理Texenv;

2)RTT相機以場景紋理Texenv為輸入,在片元著色器中,根據下式計算出每個像素點的照明度

通過跟經驗值比較,提取出高亮部分,渲染到1/2×1/2大小的紋理Texbright.

3)RTT相機以高亮紋理Texbright為輸入,在片元著色器中進行降采樣高斯模糊,渲染得到1/4×1/4尺寸的紋理Tex1/4;再以紋理此為輸入,繼續進行降采樣高斯模糊,得到1/8×1/8尺寸的紋理Tex1/8.處理過程如圖7所示.

4)將紋理 Tex1/4、Tex1/8、Texenv紋理進行混合得到HDR場景,然后調和映射(tone mapping)進行曝光控制,根據曝光系數ex,由下式計算出映射系數Lmap,進而映射到LDR:

對圖4所示海上場景,進行HDR渲染的結果如圖8所示,該方法用較小的開支模擬了逼真的HDR效果.

圖7 高亮紋理降采樣高斯模糊Fig.7 Down-sampling and Gaussian blur of highlight texture

圖8 場景HDR效果Fig.8 HDR scene effect

4 基于FMOD的OSG聲音類

開源音頻引擎FMOD以其使用簡單、跨平臺、支持多種編程語言、出色的3D混音效果和強大的功能支持等特點[17],成為現在開發聲音系統的首選.為了保持OSG的場景圖的層次特征,首先繼承自osg∶∶Node,實現了一個聲音的根節點類 OSG Sound Root,系統啟動初始化時構造,并加到場景根節點下.在構造函數中,調用System∶∶init函數進行FMOD初始化,使用默認參數來配置聲卡和其他設置;傳遞OSG的場景根節點root和camera參數,并對camera關聯回調函數,在其中每幀獲得其位置矩陣,調用System::set3D Listener Attributes更新listener位置、速度和朝向,然后調用System∶∶update函數更新一些3D聲音的計算;最后編寫成員函數提供距離模式、多普勒效應開關等設置接口.

背景聲音類OSGBkSound,處理的背景聲音是海浪聲和海底的噪聲,都是需要重復播放的簡短2D聲音,用聲音文件名進行構造,初始化時調用System∶∶create Sound創建聲音實例,將整個聲音解壓到內存中,設置聲音模式為FMOD_2D,同時設置FMOD_CHANNEL_REUSE標記,避免每次調用System∶∶play Sound函數都產生一個新的實例.因為整個場景分水上、水下2種背景聲音,使用時要給camera關聯回調,在回調初始化時構造2個背景聲音,然后根據camera位置判定播放哪個聲音.事件聲音類OSGOnce Sound的實現跟OSGBk Sound類似,只是調用System∶∶create Stream創建聲音實例,打開文件并預緩沖小部分數據,用FMOD_DEFAULT設置即可.使用時由系統事件控制一次性播放,播完后直接釋放資源.

三維物體聲音類OSGObj Sound,處理的是UUV等物體的引擎聲音,是隨物體移動的3D聲音.用物體節點和聲音文件名稱構造,調用System∶∶create-Sound函數創建聲音實例,設置聲音模式為FMOD_3D,調用 Sound∶∶set3D Min Max Distance函數設置最大最小可聽距離;為物體節點關聯回調,為了模擬運動物體的多普勒效應,回調里根據物體的世界坐標矩陣,調用Channel∶∶set3D Attributes函數實時更新3D聲源的位置和速度.

5 多通道組合顯示方法

對于多通道的組合顯示方法研究較少,一般都是通過多個通道拼接顯示一個連續的場景[18].這里提出了一種同步性較好、可自由拼接和拆分的多通道顯示方法,既可以多個子通道拼接顯示一個連續的場景,也可以拆開獨立顯示同一場景同一時刻的不同局部視角,下面來具體介紹.

多通道系統在運行時,主控節點要不斷把相關數據分發給子通道節點,是一種一對多的通信關系,為了提高傳輸效率和節省網絡帶寬,這里選擇UDP多播組通信方式,這樣能使一個或多個多播源只把數據包發送給特定的多播組.初始化時,主控節點跟子通道節點明確各自職責,完成一次握手.當視景開始生成時,所有信息和數據的處理都在主控節點完成,子通道節點只被動接收數據完成視景的生成,這就要求設計的通信數據包不僅包含所有實體的運動數據,還要包括:子通道顯示方式、視點控制和仿真時間信息數據.每幀同步效率比較低,對同步效果不是很必要,這里選擇子通道節點30幀與主控節點進行一次同步交互.這樣子最大限度節省了網絡資源和系統資源,以最快的速度完成通信.

子通道節點接收到數據包后,根據顯示控制信息選擇多通道拼接顯示或者獨立顯示,其顯示控制流程如圖9所示.首先是拼接顯示,全部接收主通道相機參數,中通道跟主通道保持一致,左通道水平旋轉-45°,右通道水平旋轉45°.當主控選擇一個通道單獨顯示時,這時單獨更新相應子通道的信息,該子通道則讀取相應信息進行視點設置,其他通道則繼續讀取主相機參數進行拼接顯示.視點控制、場景的渲染全部在子通道PC上單獨完成,大大降低了主控節點PC的工作量.

圖9 多通道組合顯示控制流程Fig.9 Display-control flow chart of multi-channel

6 實驗總結

實驗系統的PC機硬件配置為:CPU為Pentium Dual-core E5400/2.7GHz,內存為 DDR Ⅱ 800/2G,顯卡為NVIDIA Ge Force 9600 GSO/512M顯存,硬盤為160G/7200/16M;軟件配置為:操作系統為Win XP SP3,Open GL 2.2,OSG 2.8.2,VS 2005 sp1.圖10所示為俯視視點下三通道拼接顯示的效果圖;圖11所示是三通道拆分顯示的效果圖,其中左通道俯視觀察全局,中、右通道拼接顯示仿真實體的運動細節.

圖10 三通道拼接顯示效果截圖Fig.10 Composite display effect of 3-channel

圖11 三通道拆分顯示效果截圖Fig.11 Sp lit disp lay effect of 3-channel

通過往場景中添加State Events Handler,實時記錄各通道不同狀態的幀率如表1所示.

表1 各通道不同狀態幀率記錄表Table 1 Frame rate record list of different states in every channel 幀/s

由上表可以看出,該三通道視景系統的顯示速度≥53,這完全可以滿足實時交互的要求,經測試,子通道間的幀數差≤3幀,可以較好的保持多通道的同步.

7 結束語

綜上所述,本文應用GPU編程技術,解決了復雜海洋場景的實時細致再現問題;提出了一種靈活的多通道組合演示方法,并可較好的保持子通道間的同步;基于開源OSG視景引擎,開發了一套通用水聲對抗視景仿真系統,可同時滿足實時交互和逼真度的需求;該系統可以對水聲對抗過程進行仿真,設計、優選水聲對抗試驗方案,并根據水聲對抗試驗過程的仿真結果及評估指標,對多個試驗方案的合理性進行評估,是研究水聲對抗的有力仿真工具.

[1]劉征宇,翟永翠.海戰場視景實時生成技術研究[J].指揮控制與仿真,2010,32(4):61-65.LIU Zhengyu,ZHAIYongcui.Research of real-time generation technology on scene for ocean battlefield[J].Command Control& Simulation,2010,32(4):61-65.

[2]王世學,胡云翔,陳玉飛.基于Vega/Creator的裝甲部隊戰場視景仿真[J].兵工自動化,2010,29(6):92-94.WANG Shixue,HU Yunxiang,CHEN Yufei.Simulation for virtual battlefield scene of armored forces based on Vega/Creator[J].Ordnance Industry Automation,2010,29(6):92-94.

[3]宋強,康鳳舉,謝攀,等.一種海上戰場視景仿真系統的開發[J].計算機仿真,2009,26(3):16-20.SONG Qiang,KANG Fengju,XIE Pan,et al.Development of a sea battlefield visual simulation system[J].Computer Simulation,2009,26(3):16-20.

[4]馬天,黃建國,胡方.基于PC機群的多通道視景仿真系統的研究[J].系統仿真學報,2009,21(19):6053-6056.MA Tian,HUANG Jianguo,HU Fang.Research on multichannel visual system based on PC cluster[J].Journal of System Simulation,2009,21(19):6053-6056.

[5]屠海洋,袁章新.船舶操縱模擬中視景仿真的研究[J].中國航海,2009,32(1):106-110.TU Haiyang,YUAN Zhangxin.A study of visual scene simulation in ship handling simulator[J].Navigation of China,2009,32(1):106-110.

[6]周新春,昂海松,羅東明.基于DirectX的微型飛行器飛行仿真系統[J].系統工程與電子技術,2007,29(7):1197-1200.ZHOU Xinchun,ANG Haisong,LUO Dongming.Micro air vehicle flight simulation system based on DirectX[J].Systems Engineering and Electronics,2007,29(7):1197-1200.

[7]王銳,錢學雷.Open Scene Graph三維渲染引擎設計與實踐[M].北京:清華大學出版社,2009:1-8.WANG Rui,QIAN Xuelei.Design and practice of Open-SceneGraph 3D rendering engine[M].Beijing:Tsinghua University Press,2009:1-8.

[8]ZHAO Hongling,CAO Mingliang,WANG Zongmin,et al.Open Scene Graph based multi-channel display experiment for power-wall[J].Journal of Computational Information Systems,2007,3(2):467-472.

[9]任鴻翔.航海模擬器中基于GPU的海洋場景真實感繪制[D].大連:大連海事大學,2009:110-115.REN Hongxiang.Realistic scene rendering of ocean based on GPU in marine simulator[D].Dalian:Dalian Maritime University,2009:110-115.

[10]BRUNETON E,NEYRET F,HOLZSCHUCH N.Realtime realistic ocean lighting using seamless transitions from geometry to BRDF[J].Blackwell Publishing Ltd,2010,29(2):487-496.

[11]TESSENDORF J.Simulating ocean water[C]//Proceedings of the 2001 ACM SIGGRAPH.Los Angeles:ACM Press,2001:3-13.

[12]JOHANSON C.Real-time water rendering:introducing the projected grid concept[D].Lund:Lund University,2004:6-30.

[13]SHAH M,KONTTINEN J,PATTANAIK S.Caustics mapping:an image-space technique for real-time caustics[J].IEEE Transactions on Visualization and Computer Graphics,2007,13(2):272-280.

[14]CEPIC M.Underwater rays[J].European Journal of Physics,2008,28:845-855.

[15]JENSEN L S,GOLIASR.Deep-water animation and rendering[EB/OL].[2011-01-10].http://www.gamasutra.com/gdce/jensen/jensen_01.htm.

[16]鐘堅成.實時渲染中HDR技術的研究與應用[D].杭州:浙江大學,2008:14-22.ZHONG Jiancheng.Research and application of HDR technology in real-time rendering[D].Hangzhou:Zhejiang University,2008:14-22.

[17]WILKE B,METZGAR J,JOHNSON K,et al.Crossover applications[C]//IEEE Virtual Reality 2009.Lafayette:Computer Society,2009:305-306.

[18]呂品,張金芳.分布式仿真系統的多通道視景生成[J].系統仿真學報,2007,19(6):1291-1295.Lü Pin,ZHANG Jinfang.Multi-channel visual simulation for distributed simulation system [J].Journal of System Simulation,2007,19(6):1291-1295.

猜你喜歡
效果系統
Smartflower POP 一體式光伏系統
工業設計(2022年8期)2022-09-09 07:43:20
按摩效果確有理論依據
WJ-700無人機系統
ZC系列無人機遙感系統
北京測繪(2020年12期)2020-12-29 01:33:58
基于PowerPC+FPGA顯示系統
半沸制皂系統(下)
迅速制造慢門虛化效果
抓住“瞬間性”效果
中華詩詞(2018年11期)2018-03-26 06:41:34
連通與提升系統的最后一塊拼圖 Audiolab 傲立 M-DAC mini
模擬百種唇妝效果
Coco薇(2016年8期)2016-10-09 02:11:50
主站蜘蛛池模板: 色综合天天综合中文网| 91精品免费高清在线| 日韩精品一区二区三区swag| 亚洲人成网址| 看av免费毛片手机播放| 伊人查蕉在线观看国产精品| 国产亚洲成AⅤ人片在线观看| 制服丝袜国产精品| 色天天综合久久久久综合片| 国产成年无码AⅤ片在线| 亚洲午夜久久久精品电影院| 欧美三級片黃色三級片黃色1| 91成人在线免费观看| 欧美国产日产一区二区| 国产成人一区二区| 五月婷婷综合色| 91国语视频| 日日摸夜夜爽无码| 日本一本正道综合久久dvd | 亚洲不卡网| 日韩性网站| 日韩毛片在线视频| 国产国拍精品视频免费看| 国产高清色视频免费看的网址| 国产日韩欧美黄色片免费观看| 国产一区二区福利| 日韩高清无码免费| 99国产精品免费观看视频| 欧美性爱精品一区二区三区| 久久成人免费| 成人免费午间影院在线观看| 亚洲制服中文字幕一区二区| 亚洲国产精品不卡在线| 国产69囗曝护士吞精在线视频| 手机永久AV在线播放| 成AV人片一区二区三区久久| 国产国模一区二区三区四区| 国产精品视频公开费视频| 女人18毛片水真多国产| 欧美一级高清视频在线播放| 精品国产一二三区| 久久久无码人妻精品无码| 色噜噜久久| 日韩无码精品人妻| 亚洲精品高清视频| 大香伊人久久| 毛片在线播放网址| 黄色网站不卡无码| 一本无码在线观看| 精品少妇人妻无码久久| 91精品视频播放| 国产中文一区二区苍井空| 免费在线成人网| 超碰免费91| 亚洲日本中文综合在线| 久久亚洲AⅤ无码精品午夜麻豆| 少妇高潮惨叫久久久久久| 丁香六月激情婷婷| a色毛片免费视频| 欧美性爱精品一区二区三区| 欧美日韩综合网| 亚洲日韩精品无码专区97| 日韩欧美国产综合| 91啦中文字幕| 欧美日韩精品综合在线一区| 国产欧美日韩视频怡春院| A级毛片无码久久精品免费| 婷婷99视频精品全部在线观看 | 国产精品免费福利久久播放 | 黄色一级视频欧美| 五月婷婷亚洲综合| 国产又色又刺激高潮免费看| 色婷婷在线影院| 亚洲伊人天堂| 精品人妻无码区在线视频| 97视频在线精品国自产拍| 国产香蕉在线视频| 成人国产小视频| 91色在线观看| 亚洲成在人线av品善网好看| 国产日韩欧美中文| 成人亚洲国产|