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

基于OSG的海洋漫游場景開發

2013-11-19 09:27:22聶壘鑫王之民
關鍵詞:定義船舶效果

陳 寧, 聶壘鑫, 劉 煒, 龔 嫚, 王之民

(江蘇科技大學 能源與動力工程學院, 江蘇 鎮江 212003)

虛擬仿真實際上是一種可創建和體驗虛擬世界的計算機系統.此種虛擬世界由計算機生成,可以是現實世界的再現,亦可以是構想中的世界,用戶可借助視覺、聽覺及觸覺等多種傳感通道與虛擬世界進行自然的交互.它是以仿真的方式給用戶創造一個實時反映實體對象變化與相互作用的三維虛擬世界,通過三維眼鏡、數據手套等輔助傳感設備,提供用戶一個觀測虛擬世界并與之交互的三維界面。用戶可直接參與探索仿真對象在所處環境中的作用與變化,并產生沉浸感.目前常用的視景仿真軟件有Vega,QUSET 3D,Creator等,但是OSG相比它們來講,仿真效率更高,渲染效果更加優秀.

OSG是一個開源的場景圖形管理開發庫,主要為圖形圖像應用程序的開發提供場景管理和圖形渲染優化功能.它使用可移植的ANSI C++編寫,并使用已成為工業標準的OpenGL底層渲染API.因此,OSG具備跨平臺性,可以運行在Windows,Max OS X和大多數類型的UNIX和Linux系統上.OSG是公開源代碼的,它的用戶許可方式為修改過的GUN寬通用公共許可證.

1 系統框架及海洋場景的生成

本系統是利用MFC結合OSG實現海洋場景.利用OSG2.8.2和VC2008平臺,編譯OsgOcean1.0.1,并與MFC框架結合,開發了海洋漫游系統.系統框架如圖1.

圖1 系統框架Fig.1 System framework

OsgOcean是歐盟VENUS計劃中的一部分開源代碼,利用CMake軟件編譯OsgOcean1.0.1,把生成的OsgOcean.dll文件導入OpenSceneGraph-2.8.2的bin目錄下,通過VC2008平臺就能把OsgOcean移植到MFC中實現人機交互[1,5-6,8-9].

利用OSG中的智能指針osg::ref-ptr定義兩個變量oceanSurface和oceanScene,并分別賦值:

oceanSurface=new osgOcean::FFTOceanSurface(64, 256, 17, osg::Vec2f(1.1f, 1.1f),12.0f,1000.0f, 0.8, 1e-8, true, 2.5, 10.0f, 256);∥參數含義(網格大小,分辨率,網格個數,風向,風速,海面深度,放射衰減,浪的大小,是否波動,波動幅度,循環時間,幀數)

oceanScene=new osgOcean::OceanScene(oceanSurface);

添加對應的事件操作器:

viewer->addEventHandler(oceanSurface->getEventHandler());

viewer->addEventHandler(oceanScene->getEventHandler());

添加相機操作器,并設置觀察者的位置、視點和方向,最后把場景添加到viewer,即顯示窗口.

添加天空盒、水花及反射,嵌入MFC結構中,生成OsgOcean場景,點擊生成海洋.運行VC2008,效果如圖2.

圖2 osgOcean效果Fig.2 OsgOcean scene

圖3 OsgOcean場景組織Fig.3 Design of OsgOcean scene

2 系統功能

2.1 船舶模型的加載

在虛擬仿真動畫中,船舶的運動是由矩陣操作的,需要實時對船舶的位置和姿態進行回調,以便實現船舶在海洋場景的運動.在OSG中,設置有osg::Node,osg::Drawable,osg::Camera等的回調.通常osg::Node可以在OSG執行更新和揀選遍歷時進行回調;而osg::Drawable可以在揀選和繪制遍歷時進行回調;osg::Camera可以在更新遍歷時進行回調.在osg::NodeCallback類中,操作operator()非常關鍵,回調的操作代碼都在其中.virtual void operator()(osg::Node* node, osg::NodeVisitor* nv){traverser(node,nv);},第1個參數是關聯的節點地址,第2個參數是節點訪問器[2].

創建回調方案如下:

1) 編寫繼承自osg::NodeCallback類的新類class BoatPositionCallback.定義回調函數:class BoatPositionCallback: public osg::NodeCallback;

2) 重載operator()方法,實現場景的動態更新.定義船舶運動矩陣osg::Matrix mat,賦值mat=osg::computeLocalToWorld(nv->getNodePath()),得到回調節點的絕對坐標.定義float類型的變量height和osg::vec3f類型的normal,賦值height=oceanScene->getOceanSurfaceHeightAt(pos.x(), pos.y(), &normal),實時傳遞海面的高度,并把mat賦值給船舶模型節點mModel,就能實現船舶隨海面高度變化而變化的效果.

3) 初始化一個回調實例,關聯到對象.在MFC框架中定義cOSG類,這個類是實現OSG渲染的功能函數,在cOSG類中定義函數void cOSG::AddContainership(),在其中設置回調實例,setUpdateCallback(new BoatPositionCallback);據類似原理,本系統加載了游輪、集裝箱船和拖船3種船型,運行效果如圖4.

a) 游輪

b) 集裝箱船

c) 拖船

2.2 天氣控制

本系統可以實現3種天氣的轉換,實現原理是對3種天氣的天空體進行貼圖,并設置有海面,浪花,霧,陽光顏色及陽光發散效果.3種天氣效果如圖5.

a) 陰霾

b) 黃昏

c) 晴朗

雨雪效果利用OSG粒子系統進行模擬實現,osgParticle能夠高效模擬粒子系統,生成非常真實的效果.在OSG預定義的粒子系統中,大部分采用的是布告板與色彩融合技術生成粒子.本系統定義了一個class RainAndSnow類管理天氣,利用osgParticle::PrecipitationEffect定義兩種天氣peRain和peSnow,并把濃度設置為0.5.代碼為peRain->rain(0.5f),peSnow->snow(0.5f),把它們添加到場景管理節點中,實現動態的控制天氣.實現效果如圖6.

a) 雨景

b) 雪景

在天氣控制函數中添加m-fdensity變量,并添加鍵盤事件響應,每次按下“+”按鍵,對應的m-fdensit變量會自增,m-fdensity+=0.1,再利用peRain->rain(m-fdensity),peSnow->snow(m-fdensity)以實現雨雪的動態控制.效果如圖7.

a) 雨景

b) 雪景

2.3 視點跟隨

視點跟隨原理是將船舶運動矩陣和相機(視口)矩陣關聯起來,使船舶運動和視角觀察矩陣同步,根據這個原理本系統定義了一個視點跟隨矩陣class Follow繼承自osgGA::MatrixManipulator類,把船舶運動矩陣mat傳遞給相機矩陣[3-4].其中virtual void setByMatrix (const osg::Matrixd &matrix),virtual void setByInverseMatrix (const osg::Matrixd &matrix),virtual osg::Matrixd getMatrix(),virtual osg::Matrixd getInverseMatrix () 4個虛函數是實現跟隨的關鍵.在getMatrix()函數中mat=osg::Matrixd::rotate(osg::PI-2, osg::Vec3(1, 0, 0)) * osg::Matrix::translate(m-vPosition) * cameraMatrix,先旋轉世界坐標系,平移到船舶上適合的位置,按照船舶的運動矩陣運動.

船舶位置的更新需要重載osgGA::MatrixManipulator中的handle()函數,即每幀更新矩陣位置,case(osgGA::GUIEventAdapter::FRAME):updateCametaMatrix(),每幀更新相機位置.如圖8.

圖8 視點跟隨Fig.8 Viewpoint attachment

2.4 實驗室平臺的使用

視景渲染工作結束以后,通過預留的外部接口,將Matlab中Simulink模塊的實船運動數學模型計算結果從數據庫中讀取出來并賦值給船舶運動矩陣,相應的車鐘信號和油門信號通過研華采集卡采集并轉為數字信號傳遞給數據庫,再從數據庫傳遞給Simulink模型的輸入端,實時仿真船舶運動,如圖9.

圖9 三維立體船舶駕駛模擬器運行效果Fig.9 Rendering of three-dimensional ship driving simulator

3 結 論

目前,OSG可以在多種平臺及操作系統上運行,作為一門近幾年才發展起來的新興仿真工具,已經得到了國內外多公司和研究機構的關注.OSG已經應用于高端制造,虛擬裝配,虛擬展示,教育學習,數字城市等方面[7,10].OSG結合了計算機圖形學,空間矩陣原理和計算機編程技術,通過本系統的開發得出以下結論:

1)利用OsgOcean和MFC的結合,實現了可以人機交互的海洋場景漫游;

2)通過搭建海洋場景的視景仿真,實現了鍵盤和數據庫控制船舶運動,包括航向、速度,實現了風雪氣候轉換、視角切換,以及船舶模型動態更換.

[1] Tessendorf J.Simulating ocean water[C]∥ProceedingofACMSIGGRAPH.New York: ACM Press,2001:348-367.

[2] 肖鵬,劉更代,徐明亮. OpenSceneGraph三維渲染引擎編程指南[M]. 北京:清華大學出版社,2010:227-228.

[3] 陳寧,呂慶倫,孫玉科. 基于OSG的視點跟隨技術在船舶駕駛仿真系統中的應用[J]. 船舶工程, 2011,33(6): 53-57.

Chen Ning, Lü Qinglun, Sun Yuke. The application of viewpoint follow technology in ship driving simulation system based on OSG[J].ShipEngineering,2011,33(6): 53-57. (in Chinese)

[4] 呂慶倫. 基于OSG的船舶駕駛系統視覺仿真研究[D].江蘇鎮江:江蘇科技大學,2010: 35-39.

[5] 陳興峰, 顧行發, 程天海,等. 真實海洋表面的太陽耀光偏振輻射特性仿真與分析[J]. 光譜學與光譜分析, 2011,31(6):1648-1653.

Chen Xingfeng, Gu Xingfa, Cheng Tianhai, et al. Simulation and analysis of polarization characteristics for real sea surface sunlight[J].SpectroscopyandSpectralAnalysis,2011,31(6):1648-1653.

[6] 陳戈, 李文慶, 李小寧. 交互式VR-ocean虛擬海洋環境與生命仿真平臺的設計與實現[J]. 中國海洋大學學報,2009,39(5):1037-1041.

Chen Ge, Li Wenqing, Li Xiaoning. Design and implementation of an interactive VR-ocean platform for ocean environment and marine life simulation[J].PeriodicalofOceanUniversityofChina,2009,39(5):1037-1041. (in Chinese)

[7] Cha J H, Roh M I, Lee K Y. Integrated simulation framework for the process planning of ships and offshore structures[J].RoboticsandComputer-IntegratedManufacturing,2010,26(5): 430-453.

[8] 楊松林, 李慧蕾, 李坤, 等. 虛擬海浪海洋環境模擬方法及應用[J]. 江蘇科技大學學報:自然科學版, 2012,26(3):213-217.

Yang Songlin, Li Huilei, Li Kun, et al. Virtual wave and marine environment simulation method and its application[J].JournalofJiangsuUniversityofScienceandTechnology:NaturalScienceEdition,2012,26(3):213-217. (in Chinese)

[9] 谷家揚, 繆振華. 隨機海浪中船舶安全概率的數值模擬[J]. 江蘇科技大學學報:自然科學版, 2005,19(6):6-11.

Gu Jiayang, Miao Zhenhua. Numerical simulation of ship′s safe probability in stochastic waves[J].JournalofJiangsuUniversityofScienceandTechnology:NaturalScienceEdition,2005,19(6):6-11.(in Chinese)

[10] 劉煒, 陳寧. 基于碰撞檢測的坦克運動與地形匹配性研究[J]. 江蘇科技大學學報:自然科學版,2012,26(4): 357-360.

Liu Wei, Chen Ning. Matching degree between tank′s motion and terrain based on the technology of intersection detective[J].JournalofJiangsuUniversityofScienceandTechnology:NaturalScienceEdition,2012,26(4): 357-360.(in Chinese)

猜你喜歡
定義船舶效果
計算流體力學在船舶操縱運動仿真中的應用
按摩效果確有理論依據
《船舶》2022 年度征訂啟事
船舶(2021年4期)2021-09-07 17:32:22
船舶!請加速
迅速制造慢門虛化效果
抓住“瞬間性”效果
中華詩詞(2018年11期)2018-03-26 06:41:34
模擬百種唇妝效果
Coco薇(2016年8期)2016-10-09 02:11:50
成功的定義
山東青年(2016年1期)2016-02-28 14:25:25
修辭學的重大定義
當代修辭學(2014年3期)2014-01-21 02:30:44
山的定義
公務員文萃(2013年5期)2013-03-11 16:08:37
主站蜘蛛池模板: www欧美在线观看| 香蕉久久国产超碰青草| 免费国产黄线在线观看| 欧美一区二区人人喊爽| 亚洲国产91人成在线| av在线5g无码天天| 国产在线八区| 极品尤物av美乳在线观看| 青青草原国产| 亚洲经典在线中文字幕| 久久天天躁狠狠躁夜夜躁| 911亚洲精品| 精品无码一区二区三区在线视频| 99热6这里只有精品| 99er精品视频| 久久婷婷色综合老司机| 色妞永久免费视频| 国产视频一区二区在线观看| 国产色婷婷| 福利一区在线| 19国产精品麻豆免费观看| 四虎综合网| 尤物特级无码毛片免费| 国产日韩丝袜一二三区| 在线精品自拍| 国产成人免费视频精品一区二区| 日本成人福利视频| 国产日韩欧美在线播放| 亚洲AⅤ无码国产精品| 欧美色视频网站| 国产视频自拍一区| 成人国产精品一级毛片天堂| 中文字幕av无码不卡免费 | 国产伦精品一区二区三区视频优播| 日韩高清中文字幕| 在线人成精品免费视频| 98超碰在线观看| 国禁国产you女视频网站| 亚洲欧美精品日韩欧美| 丰满人妻一区二区三区视频| 亚洲伊人电影| 香蕉精品在线| 亚洲精品综合一二三区在线| 99精品国产高清一区二区| 国产在线视频二区| 精品無碼一區在線觀看 | 国产爽歪歪免费视频在线观看| 欧美成人精品高清在线下载| 97精品国产高清久久久久蜜芽 | 99热这里只有免费国产精品| 久视频免费精品6| 国产成人综合网| 少妇人妻无码首页| av一区二区三区高清久久| 国产精品美女在线| 国产网站免费观看| 亚洲欧美在线综合图区| 国产白浆在线观看| 亚洲黄网在线| 91在线精品麻豆欧美在线| 欧美黄色网站在线看| 国产理论精品| 亚洲天堂福利视频| 免费jizz在线播放| 在线观看av永久| 亚洲一区精品视频在线| 九色国产在线| 永久天堂网Av| 国产一区二区人大臿蕉香蕉| 免费在线看黄网址| 亚洲第一av网站| 亚洲国产中文精品va在线播放 | 欧美一区二区丝袜高跟鞋| 麻豆国产在线观看一区二区| 国产成人精品在线| 伊人久久大线影院首页| 国产第一页免费浮力影院| 亚洲精品第一页不卡| 欧美午夜理伦三级在线观看| 97精品久久久大香线焦| 国产av一码二码三码无码| 九九视频免费看|