虚拟海洋环境仿真关键技术与应用研究

2023-06-25 03:12黄家琛马纯永
关键词:体素海风海浪

韩 勇, 黄家琛, 马纯永, 杨 杰,陈 戈

(1. 中国海洋大学信息科学与工程学部, 山东 青岛 266000;2. 青岛海洋科学与技术试点国家实验室 区域海洋动力学与数值模拟功能实验室, 山东 青岛 266237)

在海洋科学及技术类专业中,出海实践是专业学习的重要组成部分。出海实践的教学内容包含理论知识学习、仪器设备操作、海洋观测实验等内容,是培养涉海专业人才的必要环节。但由于教学船只紧张、设备费用昂贵及培训周期长等问题[1],许多涉海高校无法开展出海实践课程,难以满足涉海专业学生的培养需求。

目前中国隶属于高等学校的海洋调查船大多需要承担繁重的科研任务,难以满足广大高校涉海专业学生的实践教学需求,难以保证涉海人才的培养质量。因此在船时不足的条件下,一些涉海高校积极寻找新的海洋实践教学方案。大连海洋大学为涉海专业建立了虚拟仿真实验教学中心,采用模拟设备与三维仿真相结合的方式实现了驾驶模拟、轮机工程模拟和船舶仿真等实训内容[2]。江苏海洋大学建立了占地面积3 400 m2的海洋工程技术研究中心,并配有多种常规海洋仪器和大型海洋仪器,使涉海专业学生能在学校内完成和实践教学相关的训练课程[3]。然而,采用搭建真实场景模拟海上实践环境的方式仍旧存在着场景搭建成本高昂、后期维护复杂等问题,而且以室内培训为主的教学方式很难还原真实的海洋实践教学环境,导致教学过程缺乏沉浸感,影响教学效果。

虚拟海洋环境仿真以虚拟现实技术为核心,融合海洋相关学科知识内容,对一定范围内的海洋环境及其相关要素在视、听、触等方面进行还原。虚拟现实技术具有沉浸性、交互性、想象性的特点[4],能够逼真展现海洋场景中的海浪、海风及船舶等关键要素。当前对于虚拟海洋环境仿真的研究主要集中在宏观状态下的渲染模拟。王顺利等[5]提出一种自适应的深浅海网格模型对海浪进行模拟,郭晓非等[6]使用图标映射法和流线法将海洋环境要素可视化,Ramos等[7]提出一种GPU多线程技术对海浪场景实现实时绘制。然而,宏观的虚拟海洋环境仿真普遍缺乏交互性,缺少个体视角对场景要素的观察互动,难以满足涉海高校海洋人才培养的需求。因此本文依托中国海洋大学丰富的海洋实践经验,对虚拟海洋环境仿真技术进行研究,在此基础上设计并实现了具有交互性的虚拟海洋仿真系统。

1 海洋调查船建模及运动仿真

海洋环境具有多维性、庞杂性的特点[8],为提高其仿真效率,需设置重点观测区域。本文将东方红2号海洋综合调查船作为虚拟海洋环境仿真中的主要观测载体,实地采集其表面纹理和结构参数,并使用3dsMax软件对船体及其设备器材进行三维建模。构建船体及设备模型面片共74 000余个,高度还原了东方红2号的船体外观及船上的起重机、救生艇、绞车等设备细节。船体建模效果如图1。

图1 东方红2号三维模型Fig.1 3D models of Dongfanghong 2

现实场景中船舶在海上运动时会受到周围海浪起伏的影响作用,导致船舶姿态发生改变[9]。本文采取一种基于浮力变化分析的船舶运动仿真方法,对在不断变化的海面环境中船舶的运动状态进行模拟。通过对主船体模型进行体素化,将随海浪高度变化的船体浮力通过分割出的体素矩体进行分析,从而实现对船体运动受力变化的仿真。

体素化技术是一种将连续几何体分割为一组最接近连续对象体素的技术[10],常应用在各种复杂模型的处理中。本文对东方红2号主船体模型网格进行体素分割,以主船体中心为原点建立笛卡尔坐标系,生成最小坐标为(xmin,ymin,zmin)、最大坐标为(xmax,ymax,zmax)的矩体,然后分别沿x、y、z轴将矩体分割成n份,最终获得切割后的小型体素,体素的中心坐标(xi,yj,zk)如下:

(1)

式中:Dx、Dy、Dz分别为沿三个坐标轴的分割间隔,且Dx=(xmax-xmin)/n;Dy=(ymax-ymin)/n;Dz=(Zmax-Zmin)/n。

但主船体模型不是规则的矩体,分割出的小型体素并未全部包含在船体模型网格范围内,因此在完成小型体素切割后,需对获得的体素集合进行筛选。本文使用射线检测法排除冗余体素,原理如下:从当前检测体素中心引出朝向主船体模型的射线,并检测碰撞点,若碰撞点为1,则保留当前体素;若碰撞点为0,则标记为冗余体素排除。重复以上步骤直到体素集合被遍历,完成筛选。

完成体素筛选后,对船舶在海面所受的浮力进行分析。通过体素化分析,船舶所受的浮力FB可以分解为所有体素受到的浮力Fbi的集合。通过比较体素中心点(xi,yj,zk)与同一水平位置(xi,yj)的海面高度H1的大小,体素所受浮力Fbi可表示为:

Fbi=riρgV。

(2)

式中:r为当前体素的浮力系数;ρ为海水密度;V为体素的体积。浮力系数ri表示如下:

(3)

计算出每个体素的浮力后,通过力矩平衡可以计算出当前船舶的旋转力矩,从而实现对船舶在海面运动状态的模拟。系统使用Rigidbody.AddTorque函数控制船体首尾的摆动,其摆动幅度受船体所受合力矩大小的影响;使用Rigidbody.AddForce函数模拟船体的在垂直方向上的受力,其大小与方向受船体重力与浮力的影响。船舶的运动仿真效果如图2。

2 海洋环境仿真技术研究

2.1 基于Gerstner波修正的FFT海浪仿真

海浪仿真是海洋环境仿真中的一个关键部分,是多种海洋要素仿真的基础,能极大地影响海洋环境仿真的真实感。常见的海浪仿真方法包括基于物理模型建模、几何模型建模和海浪波谱建模。物理模型模拟海浪计算复杂、耗时较长;几何模型仿真海浪真实感较差,难以充分还原真实海浪情况[11]。考虑到仿真效率和真实性要求,本文采用基于海浪波谱的仿真方法,使用Gerstner波模型对海浪进行仿真。具体实现步骤如下:

(4)

(5)

(6)

(7)

(8)

(9)

(5)依据偏移修正过的海浪高度数据设置海浪网格平面,然后通过顶点着色器进行海面波纹渲染处理,实现海浪的仿真过程。海浪仿真效果如图3。

图3 海浪仿真效果Fig.3 Wave simulation effect

2.2 海风与风海流的粒子仿真

2.2.1 基于时变风速模型的海风仿真 海风的仿真对海洋学的研究和系统有着至关重要的作用,是海洋观测的重要组成部分[14]。系统基于粒子渲染技术,结合矢量场原理模拟三维空间中的海风轨迹,对海风的运动轨迹进行仿真。

根据风速的变化性质,时变风速模型包含基本风、阵风、渐变风和随机风四种成分[15]。基本风VB表示在一段时间内的基础风速,其值为常数。随机风VN表示风速的随机变化,系统采用Random.Range函数进行模拟。基本风与随机风的仿真可通过简单建模完成,因此本文着重介绍阵风与渐变风的仿真过程。

阵风VG表示风速的突变性质,用来模拟在短时间内风速的剧烈变化。阵风的数学模型为:

(10)

式中:t代表当前时间;vgm代表阵风的最大风速;tg代表阵风开始时间;TG代表阵风周期。

渐变风VR表示风速在一段时间内的平稳变化,渐变风的数学模型为:

(11)

式中:t代表当前时间;vrm代表渐变风的最大风速,tr1代表渐变风的开始时间,tr2代表渐变风的结束时间。

本文基于时变风速模型,采用粒子系统Particle System对海风进行仿真。系统通过Start Delay控制粒子的延迟发射,模拟海风的开始时间;通过Start Speed控制粒子的发射速度,模拟海风的实时风速;通过Rotate()函数控制粒子的发射方向,模拟海风的风向;通过在Shader中将Maps设置为白色箭头,以指示海风前进方向。海风仿真效果如图4。

图4 海风仿真效果Fig.4 Sea breeze simulation effect

2.2.2 基于粒子迹线绘制的表层风海流仿真 风海流是指在风对海水的摩擦力与海面压力作用下,海水中形成的一种稳定海流[16]。根据《海港水文规范》中对风海流的估算方法,近岸海区表层风海流的流速Vu可以近似为:

Vu=KVw。

(12)

式中:Vu表示风海流的流速;Vw表示海面风速;K代表流速系数,取K的值为0.03。在浅海中,风海流的流向与风向的夹角较小,流向可近似为风的方向[17]。系统将2.1.1中的海风风速仿真结果作为输入,计算得出对应风海流的流速、流向与风向保持一致,并通过粒子系统进行仿真。粒子在场景的空间网格中按一定比例产生,并朝一定方向发射形成迹线,以模拟风海流的运动轨迹。在t0时刻粒子方位表示如下:

(13)

式中:v(t)为粒子在t时刻的运动速度;p0为粒子发射时的初始位置;t0代表粒子产生的时间。为描述风海流的运动轨迹,在粒子运动时保存其行动迹线,将粒子系统中的Trails模块的状态设置为激活,将贴图模式设置为拉伸状态Stretch,以实现粒子的拖尾效果,记录粒子的运动轨迹。在WidthOverTrail中设置拖尾宽度随时间的变化趋势,实现对海流随时间的渐变效果模拟。在Noise模块中设置噪声的频率与强度,以模拟实际情况下风海流的不规则运动。风海流仿真效果如图5所示。

图5 风海流仿真效果Fig.5 Wind current simulation effect

3 交互式虚拟海洋仿真系统

3.1 虚拟海洋环境仿真系统架构

本文基于海浪仿真和船舶运动仿真研究,结合中国海洋大学丰富的海洋实践教学经验,开发了虚拟海洋环境仿真系统。系统的结构可分为用户层、表现层、业务逻辑层和数据层(见图6)。用户层对应参与教学的用户角色,包含负责教学引导工作的教师和参与教学实验的学生;表现层包含系统各功能模块,主要有逻辑管理模块、用户界面模块、动画控制模块、用户交互模块、仿真实现模块和光学定位模块,通过组件式模块开发实现系统的低耦合度,提高系统的开发测试效率;业务逻辑层包含三维仿真逻辑和观测教学逻辑两大内容,其中三维仿真逻辑主要包含海洋环境仿真过程中的仿真算法逻辑实现,观测教学逻辑主要包括船体参观、海风观测和温盐深观测教学的逻辑实现;数据层对应数据存储和数据访问,包含模型数据、定位数据和仿真数据。

图6 交互式虚拟海洋仿真系统结构Fig.6 Structure of interactive virtual marine simulation system

3.2 系统功能模块

系统采用组件式架构,对特定模块的功能和数据进行封装。系统具体功能模块划分如下:

(1)逻辑管理模块。逻辑管理模块主要功能是将各仿真模块按照一定的逻辑顺序组合后统一管理,并提供可与各模块通信的接口。逻辑管理模块中实现了系统启动运行及观测教学的逻辑设计,可设置系统的运行状态,编辑教学流程。在编辑界面中,可通过设置StepNum参数改变流程的步骤数量,拖动Object设置流程的步骤排序。在脚本中调用GetComponent函数可获取场景中对象的属性或组件,从而更改对象或组件的状态。通过逻辑管理模块,系统实现了教学流程构建,并设计完成了海风观测和CTD观测的实验逻辑流程。

(2)用户界面模块。用户界面(User interface,UI)模块的主要功能是控制系统中UI的状态开闭与位移旋转。系统使用UGUI系统,制作了主界面登录UI和场景中的交互UI。用户在登录界面登录后,可进入船舱的初始位置开始教学。在教学过程中,用户通过VR手柄与UI上的按钮面板进行交互,即可触发对应的UI事件,包括知识学习、教学考核、步骤推进等。通过用户界面模块,系统实现了文本、影音知识的教学,和教学内容的递进引导。

(3)动画控制模块。动画控制模块的主要功能是控制系统中的动画播放状态。系统使用动画控制器Animator Controller对动画片段Clips进行管理。通过设置动画状态的控制参数及不同动画间转换条件,实现对不同Clips的播放切换。系统通过动画控制器,实现了对海风观测实验中风向风速仪旋转动画,和CTD观测实验中的CTD下放(见图7(a))收回、采水器的开闭等动画播放控制。

图7 CTD下放(a)及传送标志(b)Fig.7 Placing CTD (a) and moving icon (b)

(4)用户交互模块。用户交互模块的主要功能是设置场景中用户的手柄触发操作。通过VR Controller设置虚拟现实手柄的交互方式,用户在场景中可通过手柄进行近距离点按交互和远程射线交互。场景中可交互的物体通过标签Tags进行标记,当用户的手柄进入其触发范围内时,可激发物体的对应事件,如移动、变色、消失等。当手柄发出的射线接触到地面的传送标记(见图7(b))时,松开扳机键可触发场景传送功能,实现用户在船舱、过道和甲板上的便捷传送。此外,通过Networking网络框架,系统可实现多终端用户间的协同交互,极大提高了系统的互动性和趣味性。

(5)仿真实现模块。仿真实现模块主要负责系统中海洋环境仿真及船舶运动仿真中的运算及渲染功能。海浪仿真通过将计算所得网格高度值实时更新到对应的海面渲染器中,实现了对动态变化海浪的模拟。船舶运动仿真在物体的包围盒Bounds中生成指定大小的正方体体素,通过射线检测保留在物体网格Mesh内的体素,并实时分析每个体素与海面的位置关系,最终实现对海面船舶运动的模拟。海风仿真基于风速数学模型,将实时计算结果赋予粒子系统的Emission模块,实现对风速时变的海风模拟。风海流仿真在海风仿真的基础上,添加粒子拖尾迹线和随机误差,实现对海面表层风海流的模拟。

(6)光学定位模块。光学定位模块主要负责场景中光学定位功能的实现。整个光学定位系统由12部Flex13摄像头组成,系统可在5 m×6 m大空间内对多个目标的光学定位。视觉定位技术可以分为主动式视觉定位与被动式视觉定位[18]。系统采用的被动定位技术是由不同位置的相机拍摄同一场景,并通过对多幅图像中同一点的位置进行计算,来获得该点在空间内的三维坐标。本文定位系统使用多目立体视觉模型(见图8),其优势在于弥补了双目立体视觉定位易受环境干扰的缺陷,捕获的图像信息可以经过多次计算,可降低空间点的坐标估计误差。

图8 多目立体视觉模型Fig.8 Multi-view stereo vision-based model

3.3 基于虚拟海洋环境的观测实验

3.3.1 海风观测 海风观测实验使用风向风速仪(见图9(a))作为测量工具,模拟了对东方红2号顶部甲板的风速风向测量。在海风速测量实验中,学员通过操作手中的VR手柄进行风速测量学习。实验开始后,虚拟场景中的VR手柄将会替换为风向风速仪模型,晃动风向风速仪即可开始对场景内的风速、风向进行测量。风向风速仪的中央屏幕会显示当前位置的实时风速,单位为m/s,同时风杯旋转指示风力大小。风向风速仪上方的风标旋转指示风向,单位为(°)。如图9(b)所示,学员在场景中手握风向风速仪并保持高举1 min,记录风向风速仪显示的平均风速和观察到的最多风向,完成风向风速测量实验。

((a)风向风速仪,(b)应用场景。(a)Aerovane; (b)Application scenarios.)图9 海风观测Fig.9 Sea breeze measurement

3.3.2 虚实结合的CTD观测实验 温盐深是海洋物理学的重要参数,是海洋水文观测的基本要素[19]。温盐深测量仪(Conductivity, temperature, depth,简称CTD)是海洋研究观测中的重要设备,能够精确获取水体的温盐深数据[20]。CTD由水下单元、甲板单元和采水系统三部分组成,其主要功能是采集不同层位的海水。实验采用的SBE-911型CTD采水系统,其搭载的各类高精度传感器可以采集海水的温度、盐度、压力、叶绿素、溶解氧等基础观测要素[21]。实验设计了CTD观测实验,包含甲板单元介绍、采水单元安装、CTD下放回收等内容。

实验采用动作捕捉技术设计虚实结合的互动模式,在场景内配置了实体的CTD采水系统,并放置多个光学Mark点进行标记。实验过程中深度相机捕获Mark点标志,并与Motive软件中的光学刚体端点进行匹配,将Mark点在现实坐标系中的坐标同步给空间坐标系中的光学刚体,然后将光学刚体坐标同步给仿真场景中对应三维模型,从而实现CTD采水系统在现实场景与仿真场景中的状态同步。图10中,学员通过佩戴动作捕捉手套,可实现对现实场景和虚拟场景中CTD采水设备的同步操作。虚实结合的互动方式能极大增强交互的真实感和交互性,从而提高观测实验的系统效果。

图10 虚实结合交互Fig.10 Combination interaction of virtualization and reality

4 结语

本文将虚拟现实技术应用在海洋环境仿真中,通过船只建模及其运动仿真构建虚拟海洋环境观测载体,研究了以海浪仿真、海风仿真、海流仿真为核心的虚拟海洋环境仿真技术,并在此基础上设计实现了交互式虚拟海洋仿真系统,逼真还原了出海实践教学中海风观测和CTD观测两大实验内容,扩展了海洋实践教学的形式,提高了海洋人才的培养质量。

本文通过研究虚拟海洋环境仿真中的多项关键技术,实现了基于实践教学的海洋仿真交互式系统,对涉海高校实践教学的新型模式进行了探索。交互式虚拟海洋仿真系统在一定程度上弥补了当前高校海洋调查船难以满足人才培养需求的缺陷,避免了真实海洋实践过程中可能的安全隐患。虽然现阶段虚拟仿真系统无法完全取代真正的出海实践教学,但它可作为高校出海实践的有效补充,以提高教学资源的利用效率并缩短海洋人才的培训周期。随着海洋环境仿真技术与交互技术的进一步发展,虚拟海洋仿真技术将在高校海洋实践课程中获得更广泛的应用。

猜你喜欢
体素海风海浪
基于多级细分的彩色模型表面体素化算法
趁着海风放纸鸢
瘦体素决定肥瘦
丫丫和小海浪
海浪
《海风》
樊应举
运用边界状态约束的表面体素加密细分算法
基于体素格尺度不变特征变换的快速点云配准方法
微微的海风