海缆敷设指挥控制系统三维显示关键技术研究*

2013-08-10 07:54史蓓蕾
舰船电子工程 2013年10期
关键词:海缆插值雾化

方 堃 王 晶 史蓓蕾

(海军工程大学计算机工程系 武汉 430033)

1 引言

和国际先进水平相比,我国海缆敷设施工的速度慢、效率低、故障率高。产生这种差距的主要原因是海缆船船载设备的信息化程度低,具体体现在信息采集、信息集成、信息利用、辅助决策等方面。传统的海缆敷设方法主要是通过机械仪表进行海缆敷设相关参数的查看,通过作业员的经验判断对海缆敷设进行人工控制。随着我国对海缆敷设的需求日益增长,提高海缆敷设的信息化水平,加快敷设速度是亟待解决的关键问题,因此,针对新型海缆船研制并装备海缆作业指挥显示系统势在必行。

笔者采用二三维一体化GIS技术、三维虚拟仿真技术与工业自动化技术,研制出一套集作业规划、作业实施与作业分析等功能于一体的辅助决策系统。其中对海缆敷设状态的三维动态实时显示应用了Direct 3D交互式实时3D显示技术,取得了良好的三维显示效果。该系统有利于施工人员了解海缆、埋设犁等海下设备的状态,对敷设施工具有积极的意义。

2 Direct 3D交互式实时3D显示技术

Direct 3D是微软公司在Windows操作系统上基于通用对象模式COM(Common Object Mode)所开发的一套3D绘图API编程接口,是微软公司DirectX SDK集成开发包中的重要部分,适合多媒体、娱乐、即时3D动画等广泛和实用的3D图形计算,与OpenGL同为电脑绘图软件最常用的两套绘图编程接口。

自1996年发布以来,Direct 3D以其良好的硬件兼容性和友好的编程方式得到了广泛的认可,现在几乎所有的具有3D图形加速的主流显示卡都对Direct 3D提供良好的支持。其与Windows操作系统兼容性好,可绕过图形显示接口(GDI)直接进行支持该API的各种硬件的底层操作,大大提高了3D绘图的速度。

本系统使用Direct 3D作为底层图形API,实现场景模型、动画、动态光照和水面特效等的高度真实感和实时渲染效果。

3 关键技术研究

3.1 三维显示的数据结构

三维显示模块的核心功能包括场景管理(Scene Manage)、对象系统、序列化(Serialization)、数据与外部工具的交互、底层三维数据的组织和表示。由于3D引擎可能会用来管理一些庞大的3D世界,在这个世界中物体与物体之间通常存在一些相关、从属、影响与被影响关系,如何组织这些关系,并确切地将这些关系与3D引擎的其他功能联系起来,就是场景管理需要完成的一方面工作;另一方面,为了让海量的多边形数据能流畅的显示出来,场景管理还需要另一种组织结构来进行隐藏面剔除工作。

如果将大片面积的海面以及海底的三角形逐一渲染出来,会因为面数太多而降低效率。如何很好地表示出包含着成千上万物体的复杂场景,是设计系统必须要考虑的。这也是场景管理需要做的,给场景提供良好的层次关系,以便更好地进行筛选(Culling)和隐藏面消除(Hidden surface removal)。

首先要涉及到的概念是空间细分,空间细分考虑整个物体空间并且根据物体的空间占有(Object occupancy)对空间中的每一个点进行分类。可以把世界空间中的物体细分为体素(voxel),再对体素进行分类。八叉树(octree)是一种描述三维空间的树状数据结构,它可以描述一个三维场景内物体的分布情况,并简单地将体素安排在层次结构中。八叉树的每个节点表示一个正方体的体积元素,每个节点有八个子节点,将八个子节点所表示的体积元素加在一起就等于父节点的体积。

场景管理在预处理的时候建立一棵树,这里可以忽略物体的表示方法,而把焦点集中在场景的划分上。在树建立起来之后,通过实时遍历这棵树来发现是否有两个物体占据了同一个空间而发生冲突,或者一个物体的空间是否不在视见约束体之内。这样,所有筛选等操作都可以简化为对树的遍历,这是一个线性时间的操作。

系统使用了八叉树进行场景管理使得整个区域的海面和地形得以流畅地显示。

3.2 海缆绘制算法

图1 海缆线形坐标图

海缆在水下由于受到自身重力、海水浮力、两端张力、海水推力和摩擦力等多种力的作用而显曲线形。

设海缆触底点为原点,高度方向为纵坐标,船体方向为横坐标,海缆线形的坐标图如图1所示。

海缆埋设时海缆触底点就是海缆埋设犁的位置。海缆线形方程如式(1)所示

其中:H表示海缆触底点的水深,单位是m;S表示海缆触底点到海缆布放机(在海缆船尾部)之间的水平距离,单位是m;L表示水中海缆的长度,即海缆触底点到海缆布放机之间的海缆长度,单位是m;α表示海缆布放机处海缆的角度;β表示海缆触底点处海缆的角度。

海缆线形方程满足以下条件:

1)原点位置,当x=0时,y=0;

2)海缆布放机位置,当x=S时,y=H;

4)海缆布放机处海缆的角度,y′(S)=tanα;

5)海缆触底点处海缆的角度,y′(0)=tanβ;

6)由于重力作用,海缆上任何点都不可能提供向上的力,所以海缆线形方程是严格增函数,即y′(x)>0,x∈[0,S]。

由这些约束条件形成的方程称为约束条件方程。约束条件方程组如公式2所示。

绘制海缆曲线需要更新海缆入水到海缆达到海底的各个关键点的位置,系统通过绘制插值曲线的方式显示轨迹。为了便于查看,系统可以设置显示一段时间之内的不同时间点的海缆状态。

在离散数据的基础上补插连续函数,使得这条连续曲线通过全部给定的离散数据点。插值是离散函数逼近的重要方法,利用它可通过函数在有限个点处的取值状况,估算出函数在其他点处的近似值。插值:用来填充图像变换时像素之间的空隙。

常见的插值方式有以下几种:

1)多项式插值

这是最常见的一种函数插值。在一般插值问题中,若选取Φ为n次多项式类,由插值条件可以唯一确定一个n次插值多项式满足上述条件。从几何上看可以理解为:已知平面上n+1个不同点,要寻找一条n次多项式曲线通过这些点。插值多项式一般有两种常见的表达形式,一个是拉格朗日插值多项式,另一个是牛顿插值多项式。

2)埃尔米特插值

对于函数f(x),常常不仅知道它在一些点的函数值,而且还知道它在这些点的导数值。这时的插值函数P(x),自然不仅要求在这些点等于f(x)的函数值,而且要求P(x)的导数在这些点也等于f(x)的导数值。这就是埃尔米特插值问题,也称带导数的插值问题。从几何上看,这种插值要寻求的多项式曲线不仅要通过平面上的已知点组,而且在这些点(或者其中一部分)与原曲线“密切”,即它们有相同的斜率。可见埃尔米特插值多项式比起一般多项式插值有较高的光滑逼近效果。

3)分段插值与样条插值

为了避免高次插值可能出现的大幅度波动现象,在实际应用中通常采用分段低次插值来提高近似程度,比如可用分段线性插值或分段三次埃尔米特插值来逼近已知函数,但它们的总体光滑性较差。为了克服这一缺点,一种全局化的分段插值方法——三次样条插值成为比较理想的工具。

4)三角函数插值

当被插函数是以2π为周期的函数时,通常用n阶三角多项式作为插值函数,并通过高斯三角插值表出。

系统显示的海缆状态和轨迹,是对海缆进行多次埃尔米特插值的结果。其定义如下:

f为[a,b]上充分光滑函数,对给定的插值定节{xi}ni=0,及相应的重数标H(x)∈Pn满足式(3)。

则称H(x)为f(x)关于节点{xi}ni=0及重数标号{mi}ni=0的Hermite插值多项式。

系统使用配置文件设置插值的曲率以及显示的轨迹数,基本还原了真实的海缆实时和历史状态。另外,系统还提供了地下剖面图的显示,通过剖面视点的配合,可以清楚的看到海缆深入到地下的哪个地质层。

埋设施工时的海缆形状大致如图2所示。

3.3 水面渲染技术和雾化技术

从几何模型上来看,水面和地面是一样的。水面可以看做普通的均匀网格,不同之处在于地形中顶点高度是固定的,而水面是动态的。

此外,对于水面来说,还有许多特殊的光学效果。包括水面动画、Bump Mapping、反射和折射和菲涅尔效果。

第一步是要让水面运动起来。对均匀网格,须计算出每个顶点的位置和法线。如果仅模拟比较平静的水面,甚至只须计算法线,这也是目前真实感图形软件中常见的做法。

仅使用法线来模拟水面的好处是可以极大的简化几何模型,最简单的情况下,一个网格就能代表整个水面,甚至不必担心如何处理LOD计算。它的实现思想就是bump mapping,区别在于这里使用动态的normal map。可以实时计算出每条法线的位置,也可以从预先处理好的normal map中获得这些信息。显然,适用后者计算量可以减少很多。

另外,系统使用了Gerstner Wave计算水面的波动。从数学角度来看,Gerstner Wave并不比普通的正余弦波动方程复杂,但它的波形却更像水波。对于正余弦波来说,波峰和波谷波的弧度都是均匀的,而实际上水波的波峰要尖一些,波峰则要圆滑。不同时刻,水平位置也是不同的,因此可以正确模拟出这种效果。多个Gerstner Wave相互叠加,就能模拟出相当不错的水面。有了水面高度,进一步对方程求导,就能计算出法线。3DGerstner Wave的3D波动方程如式(4)所示。

式中:(x,y)代表顶点的坐标位置,w为角速度,k为波矢量,l为波数,x0为顶点的初始位置。

仅仅依靠上述所说的方法来计算水面顶点位置和法线还不够,它们受到网格间距精度限制,只能模拟波长较长的波。这样的水面太过于平和,而显得不够真实。因此,需要添加Bump Mapping来增加细节和高频波浪。

水面的反射和折射的思想都一样,以水面为裁减平面,分别把场景渲染为折射和反射贴图,然后投影到水面上。在渲染反射贴图时,需要以水平面为参考面,把摄像机镜像翻转到水面之下。投影纹理时,这里需要用到顶点位置作为参数,来动态调整纹理坐标,反映出水波的流动效果。

对水面来说,当观察者和水面的角度越小时,反射效果越明显,角度越大时,折射效果越明显,称为菲涅尔效果。所以需要更具观察者的角度来计算反射,折射贴图,以及水面颜色的混合方式。

在Direct 3D中,雾化是通过将景物颜色与雾的颜色,以随物体到观察点距离增加而衰减的混合因子混合而实现的。两种雾化方法:顶点雾化和像素雾化。三种雾化公式:线性雾化,指数雾化,指数平方雾化。两种雾化处理:基于深度的雾化处理和基于范围的雾化处理。基于深度是指两个点之间的深度(Z)差值,基于范围则是两点间的直线距离。系统使用了线性像素雾化,实现了海洋的大气环境。实现效果如图3所示。

图2 海缆水下线形图

图3 水面渲染效果图

4 结语

本系统可在施工前利用路由勘测测得相关数据,并根据相应的海洋数据和海缆敷设的物理特性建立海缆敷设路由的数学模型,再选择合适的优化算法对模型进行求解。以此作为海缆实际施工的主要依据。但是由于海缆敷设路由的数学模型无法解析而且太复杂,特别是有模型中存在多个随机量,很难用传统的优化算法求解。可以使用基于仿真的优化方法进行优化,最常见的方法是蒙特卡洛法。

[1][美]Peter J.Kovach.Direct3D技术内幕[M].李晔,等译.北京:清华大学出版,2001.

[2]茅忠明,王行骏,陈玮.基于DirectX软件包进行三维图形的开发应用[J].上海理工大学学报,2002(1):48-52.

[3]樊翠,王丽芳.基于D3D的三维游戏引擎的设计与实现[J].科学技术与工程,2006(10):1431-1435,1450.

[4]高宇,魏迎梅,吴玲达.大规模外存场景的交互绘制[J].计算机辅助设计与图形学学报,2007(6):792-797.

[5]陈小玲,姚胜初.基于GIS组件的海底光缆与管线信息系统开发[J].计算机时代,2006(1):28-29.

[6]吴超,葛彤.拖曳式海底电缆埋设系统作业监测与导航[J].船海工程,2006(2):101-104.

[7]连琏,王道炎,王玉娟,等.喷冲式滩海埋缆系统的设计[J].上海交通大学学报,2001,4(4):537-540.

[8]王卫昀.海底光缆系统设计及线路余量的考虑[J].电信工程技术与标准化,2006(3):34-37.

[9]胡乃平,甄治武.基于.NET平台的海缆埋设机监控软件的设计和实现[J].工业控制计算机,2011(6):27-30.

[10]柴毅,唐娅,李楠.基于GIS的通信光缆故障检修保障系统[J].重庆大学学报,2004,27(8):65-68.

[11]李楠,郭茂耘.GIS在通信光缆故障定位中的应用[J].激光杂志,2005,26(4):73-74.

[12]王红霞,周学军,王平.海底通信光缆故障的定位与维修[J].电线电缆,2006(1):29-31,36.

[13]石磊.基于GIS的光缆线路综合管理系统[J].电信网技术,2006(4):68-70.

猜你喜欢
海缆插值雾化
考虑降损潜力及经济性的海缆选型研究
陆海段不等径海缆匹配方案与载流能力提升研究
滑动式Lagrange与Chebyshev插值方法对BDS精密星历内插及其精度分析
浅谈海上平台间海缆末端抽拉工艺
雾化吸入的风险及预防措施
雾化有害?
基于pade逼近的重心有理混合插值新方法
一起220kV海缆敷设故障抢修案例分析
混合重叠网格插值方法的改进及应用
雾化时需要注意什么?