论文部分内容阅读
无人艇视景系统是一种基于虚拟现实计算机技术的仿真软件。经过视景系统的开发和设计,实现视景系统读取仿真数据的航行演示,实时监控所有船只航行状态、根据仿真的目标环境加载需要的地形、记录仿真中运动数据并保存为仿真录像等功能。软件使用Unity3D作为开发的图形引擎,由于国内还没有使用Unity3D开发航海类视景系统的案例,本文研究很好的填补了这方面的空白。在开发过程中使用3Dmax和DelftShip软件完成了船舶模型的制作。使用World Machine软件和Unity内置地形系统制作了珠海东南方向某片海域的岛屿模型作为案例,并详细论述了岛屿模型的制作和批处理方法。在航行仿真方面,首先设计了缓存航行数据的结构,并根据该数据结构实现了txt、excel、录像文件的读取与数据转换。同时为实现实时航行监控的功能,还加入了基于TCP协议和UDP协议的数据传输功能并实现了数据传输与转换。并通过线性插值将获取的仿真位置数据处理成为能够进行运动仿真的数据,完成无人艇与障碍物船只的航行仿真演示。仿真演示支持播放速率的调整,支持最高8倍的正常速率的播放和倒放。除此之外还开发了一些功能配合航行仿真使其更有效率,基于WindowsForm和UniFileBrowser插件的打开和保存窗体的调用可以使视景系统浏览并选择和保存需要的文件,航线预览可以在仿真前预览航线和船舶在仿真过程中任意时刻的位置,地形可以以文件的形式打包并可以按需求加载到场景内,仿真的过程可以按照要求进行录像和储存。在视景系统的UI交互方面,有三种视角能够观察仿真演示。俯视视角具有平行移动和缩放功能,跟随视角360度旋转和缩放功能,而第一人称视角具有方向水平360度,垂直方向0到90度的视角旋转和缩放的功能。消息窗口功能能够显示视景系统的操作反馈和异常信息,浮动信息会实时跟随船只显示船只当前时刻的状态。直尺工具可以在俯视视角下测量距离,浮漂工具可以按需求标记位置。并同时使用UGUI和NGUI两种系统实现上述效果,并进行了比较。相较于其他三维引擎基于Unity3D视景系统的开发,能够减小编码工作量,降低开发难度。并且更加集中于设计视景系统中的功能,并能提供更好的仿真画面效果。相信在以后类似的开发中使用作为Unity3D开发引擎的项目会越来越多。