基于 OSG 的海洋漫游场景开发

合集下载
相关主题
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

基于 OSG 的海洋漫游场景开发

陈宁;聂垒鑫;刘炜;龚嫚;王之民

【摘要】针对海上环境气候复杂,模拟困难等原因,本系统在基于OSG三维渲染引擎的基础上,借助OsgOcean场景实现了第一视角的海洋场景漫游,包括船舶模型的调换,天气变化,键盘事件响应来控制船舶运动。首先通过将OSG视景窗口嵌入MFC框架下,并在OSG核心类cOSG中响应海洋场景的生成;其次在模型节点中通过添加和移除节点,动态实现船舶模型的加载和转换,然后通过天空盒中阳光在海面产生的不同光照效果,利用着色器,渲染不同气候下海面的颜色;最后通过OSG三维渲染引擎中的粒子效果,将自定义粒子模块实时加载到场景中,用来模拟大自然中的雨、雪效果。%Since the maritime environment is complicated and it is difficult to simulate , an ocean scene ramble system has been designed based on the OSG 3-D rendering engine and osgOcean .The system included the fol-lowing functions:switch of ship models , weather variations and ship movements controlled through keyboard e-vents response .At first, the OSG view window was embedded in the MFC framework , the ocean scene was gen-erated in the core class cOSG , then by adding and removing the model nodes , ship models were loaded and switched dynamically .After this,the color of ocean surface under different climates was rendered by the shader based on the light reflection and refraction of the ocean surface .At last,the rain and snow effects were simulated by adding the particle system of OSG rendering engine to the ocean scene .

【期刊名称】《江苏科技大学学报(自然科学版)》

【年(卷),期】2013(000)004

【总页数】5页(P386-390)

【关键词】OSG;海洋漫游;船模

【作者】陈宁;聂垒鑫;刘炜;龚嫚;王之民

【作者单位】江苏科技大学能源与动力工程学院,江苏镇江212003;江苏科技大学能源与动力工程学院,江苏镇江212003;江苏科技大学能源与动力工程学院,江苏镇江212003;江苏科技大学能源与动力工程学院,江苏镇江212003;江苏科技大学能源与动力工程学院,江苏镇江212003

【正文语种】中文

【中图分类】U664.82;TP391.9

虚拟仿真实际上是一种可创建和体验虚拟世界的计算机系统.此种虚拟世界由计算机生成,可以是现实世界的再现,亦可以是构想中的世界,用户可借助视觉、听觉及触觉等多种传感通道与虚拟世界进行自然的交互.它是以仿真的方式给用户创造一个实时反映实体对象变化与相互作用的三维虚拟世界,通过三维眼镜、数据手套等辅助传感设备,提供用户一个观测虚拟世界并与之交互的三维界面。用户可直接参与探索仿真对象在所处环境中的作用与变化,并产生沉浸感.目前常用的视景仿真软件有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,即显示窗口.

相关文档
最新文档