在海浪影响下的海岛动态三维建模

2014-12-12 01:47邵振峰
测绘通报 2014年1期
关键词:凸凹海浪海岛

姚 远,邵振峰

(1.武汉大学遥感信息工程学院,湖北武汉430079;2.武汉大学测绘遥感信息工程国家重点实验室,湖北武汉430079)

一、引 言

地球表面约70%的面积是海洋,其具有丰富的资源,同时是天然的交通平台,因此成为各国争夺的对象,我国主张的管辖海域面积约为300万km2[1],辽阔的海域中分布着数量庞大的海岛。近年随着海洋权益争夺的日益加剧,数字地球中的海洋部分日渐被人们关注。要发展数字海洋技术,海岛及海洋的时空动态建模是数字地球中不可或缺的组成部分,众多学者对此进行了研究[2-6],并推动数字地球加速由静态向动态发展。由海岛、海浪和潮汐等组成的海洋动态环境在海岛测绘工程、海洋资源环境调查等领域也具有重要的应用价值。

目前国内外对海浪建模的主要方法可概括为:基于几何模型、基于水动力学模型、基于谱的分析、基于Perlin噪声、基于粒子系统等[7]。基于几何模型的方法计算量较小,实时性好,但海浪表面真实感较差,适合大范围的海浪生成;基于水动力学模型的方法模拟的海浪非常接近真实的物理现象,但计算量非常大,实时性差;基于海浪谱的模型模拟的海浪虽具有一定的真实感,但视觉上具有明显的重复感;基于Perlin噪声的模型[8]可以产生真实感较强的海面,但由于噪声计算的复杂性,只适合小面积的海浪生成;基于粒子系统[9]可以对流体的飞沫和破碎进行非常真实地建模,但是由于建模效果与粒子数量成正比,在海岛这样的尺度上实时性较差。各种模型在效率和效果上各有优缺点,现阶段还难以兼顾海浪模拟的实时性与真实感。在数字地球中,海洋动态环境的漫游视点高度变化较大,即尺度变化较大,尚没有一种模型能够较好地适用。因此,根据人类对运动和立体的视觉感知特性,在不同尺度上分别采用最适合的模型对海浪建模,是现阶段最为可行的方法。

本文针对海岛及周边海洋动态环境的特点,主要采用了基于几何模型和基于Perlin噪声模型相结合的方法,实现了动态海洋环境中海浪的多尺度三维表示,并在此基础上与静态的三维海岛模型进行交互,建立了海岛在海浪影响下的动态三维模型。

二、海岛建模方法

海岛数据主要由海岛及其周边海底地形数据、影像数据、海图历史数据等组成,各类数据还存在水平基准、高程基准和数据格式不一致的问题。以下就各类数据的特点、建模方法及如何解决不一致问题进行分析。

1)海岛地形数据。海岛地形数据主要通过数字高程模型(DEM)表达,它是用一组有序数值阵列形式表示海岛地面高程的一种实体地面模型。DEM主要分为规则格网和不规则三角网,二者之间可以通过插值互相转化[10]。海岛地形数据的获取手段较多,主要的数据来源有卫星遥感影像、航空摄影、合成孔径雷达(synthetic aperture radar,SAR)、激光雷达(light detection and ranging,LiDAR)等。目前,民用卫星高分辨率遥感影像的分辨率达到0.5 m左右;星载SAR的分辨率可以达到1 m左右,机载SAR和LiDAR的分辨率都可以达到分米级,为海岛地形数据获取提供了丰富的数据源。

2)海岛周边海底地形数据。海底地形的原始数据通常是离散和分布不规则的,通过预处理和插值可以得到海底地形的数字高程模型[11]。海底地形数据一般通过多波束和侧扫声纳测深技术测量水深,建立海底的数字地形模型[12]。高精度的GPS、电罗经和姿态传感器的应用,使平面位置多波束测深数据的精度达到了亚米级。一般来说,海岛水深数据投影方式采用高斯-克吕格投影,坐标系统为大地直角坐标系,高程系统为1985国家高程基准,深度采用理论深度基准面。理论深度基准面是一种水位基准面,水深测量通常在动态升降的水面上进行,因此不同时刻测量同一点的水深是不同的,这个差数随各地的超差大小而不同。为了修正测得水深中的超高,必须确定一个起算面——深度基准面,把不同时刻测得的某点水深归算到这个面上。

3)海岛影像数据。海岛影像数据主要包括数字正射影像图(DOM)等。对海岛影像数据进行转换后可得到可用于海岛三维地形的纹理。

由于海岛陆地数据与海底地形数据的获取方式不同,通常的地形数据与海底地形数据是独立的,因此需要对陆地数据和海底数据进行整合,得到完整的海陆一体化数据。海岛数据整合主要有以下几个部分:①平面基准的统一。通过坐标变换将水深数据与陆地数据投影到统一的坐标系中。②高程基准的统一。陆地高程基准采用1985国家高程基准,而水深基准采用理论深度基准面,对垂直测量基准的统一,既可以从水深基准转换到陆地高程基准,也可以从陆地高程基准转换到水深基准。③海陆数据格式的统一。陆地数据和实测水深数据有不同的数据模型,通常要对海陆数据进行格式的统一。

对经过水平测量基准统一、垂直测量基准统一和海陆数据格式统一后的海陆数据进行整合,得到海陆一体化数据。但是由于海陆数据边界不一致,海陆交界区域会出现无数据缝隙,采用插值方法得到缝隙的数据,生成一体无缝的海岛及其周边区域的DEM;然后通过投影变换、视点变换等处理,并利用光照消隐及纹理映射等技术渲染到屏幕上形成最终的效果,如图1所示。

图1 海岛及其周边区域三维模型效果图

三、海浪建模方法

海浪无论从时间上还是从空间上都具有不规则性,用数学方法来描述海浪,真实再现其复杂多变的特征十分困难。目前国内外对海浪建模的方法可概括为:基于几何模型、基于物理模型、基于谱的分析、基于Perlin噪声、基于粒子系统等。在中尺度上,凸凹纹理映射可以实时地产生面积较大、具有一定立体感但实际为平面的水面,在小尺度上基于Perlin噪声可以实时地产生小面积、真实感较强的三维水面。

1.凸凹纹理映射模型

几何模型中的凸凹纹理映射[13]是一种纹理混合方法,它能通过一张表示物体表面凸凹程度的纹理产生凸凹不平的显示效果。如图2所示,凸凹纹理映射通常由3张纹理图组成,其中,左上图像表示物体表面原始纹理颜色,左下图像表示物体表面凸凹的高度起伏值,右方图像表示周围镜面反射或漫反射光照的环境映射图。

图2 凸凹纹理映射示意图

本文将凸凹纹理映射应用于海浪的模拟,用高度图对表面法向量进行扰动,并且加入X和Z方向的随时间变化的偏移量,对凸凹纹理进行偏移,使其看起来不仅具有凸凹感,而且随着时间动态变化,从而形成海浪动态波动的效果。

2.基于Perlin噪声的模型

Perlin噪声函数是能够在空间中产生连续噪声的函数。利用二维Perlin噪声产生随机纹理的方法构造运动海浪的三维高度场函数的方法如下[8]:

1)首先构造一个长度为1的噪声生成器,(float)rand()/RAND_MAX。

2)对于平面上任意点(x,y),假设其落在4个相邻噪声控制点(x0,y0)、(x0,y1)、(x1,y0)和(x1,y1)所围成的区域内。计算每个控制点到(x,y)的向量与该控制点梯度的点积,得到它们对(x,y)处噪声的影响值

式中,g1为(x0,y0)的梯度;g2为(x1,y0)的梯度;g3为(x0,y1)的梯度;g4为(x1,y1)的梯度。

3)分别对m和n、u和v进行三次调和插值,插值结果为A和B

4)同理在y方向对上述所得A和B进行插值,即得到最终输出的Perlin噪声值Z

5)对二维Perlin噪声进行分形叠加,通常取A=1/2,噪声参数为二维向量,则二维噪声分形面为

利用Perlin噪声函数,输入网格点的坐标值,可以计算出每个网格点的Perlin噪声值,将得到的噪声值作为该点的水面高度值。为了得到连续动态变化的高度场,可以加入时间参数进行坐标变换。

3.海浪场景尺度划分

为了同时满足海浪模拟的实时性与真实感要求,本文根据视点高低,将海浪场景分为大、中、小尺度场景。在大尺度场景中视点很高,人眼距离太远,无法观察到海浪的运动变化及立体,在海面贴上静态纹理即可;在中尺度海浪场景中视点较高,人眼可以观察到海浪的运动,但无法分辨海浪是二维平面还是三维曲面,因此采用实时性较好的基于凸凹纹理映射的模型来模拟海浪;在小尺度海浪场景中视点较低,海面范围较小,人眼不仅能观察到海浪的运动,还能够观察到海浪是三维曲面,因此采用真实感较好但只适用于小范围的基于Perlin噪声的模型来模拟海浪。

人眼在观察外界物体时,除了能够感知物体的大小、形状、颜色、明暗外,还能够感知物体的远近、深度等。立体视觉阈值指观察者能分辨空间中两点间最短的空间深度距离,是人眼区别二维平面与三维立体的主要依据[14]。人眼对海浪的立体感知能力除视距外,还和海浪的高度有关,即海浪振幅也为上述的立体视觉阈值参数。通过相关立体视觉锐度阈值、两眼距离、视距和海浪高度的关系,可得到三维海浪的最高视点距离L1max与浪高H的关系

式中,Δθ为立体视觉锐度,一般取10';b为两眼间的距离,一般取值为65 mm。

人的运动知觉直接依赖于物体运动的速度,物体运动的速度太慢或太快都不能产生运动知觉,运动知觉下阈是指能察觉单位时间内物体运动的最小视角范围(角速度)[15]。在其背景上有可参考的静止物体时,则这个物体移动的最小角速度为1~2'/s即可感知它在运动[16]。代入ωmin=1',t=1 s即可得产生运动知觉的最大视距与物体运动速度的关系

根据《海洋调查规范(第2部分:海洋水文观测)》(GB/T 12763.2—2007)[17]对海浪等级进行的划分(范围取值按中值计算),代入式(5)、式(6)计算出不同浪级下的场景阈值,见表1。

表1 不同浪级的立体视觉及运动知觉阈值

有了具体阈值后,可以根据海浪不同浪级建立多尺度海浪模型,具体流程如下:

1)建立网格模型并初始化,设置网格精度。

2)设置各尺度海浪场景切换的视点阈值,在小尺度场景中利用Perlin噪声模型生成海浪高度场,在中尺度场景中利用凸凹纹理映射生成法向量,在大尺度海浪场景中利用静态纹理生成静态海面,模拟真实海浪。

3)利用模型生成的海浪高度场或法向量进行网格更新,达到动态海浪效果。

4)海浪渲染,对海浪进行绘制,生成动态三维海浪。

四、海岛在海浪影响下的海陆交互

在三维建模领域中,海陆交互一般有两种表示方法:一种将地形和海面分别看做一个曲面,海陆交互即海岛与三维曲面的交互;另一种采用粒子系统交互,将水体分成一个个微小的粒子,外界对粒子及粒子之间存在各种作用力。由于粒子系统中每个粒子均要参与各种作用力的计算,计算量随着粒子的增加而迅速增大,在海岛这样的尺度下需要海量的粒子才能取得较好的建模效果,这样就无法做到实时交互。而三维曲面交互计算量相对较小,可以达到实时性要求,对于中小尺度的海陆交互动态建模来说仍然是较为理想的方法。具体方法包括以下6个步骤:

1.生成动态海浪

在小尺度上采用Perlin噪声生成海浪的三维高度场,加入时间参数以得到连续动态变化的海浪高度场。

2.提取实时海岸线

海陆交互后得到淹没区的二值图像,通过边缘提取算法提取海陆边界。简单的边缘提取方法是将海面标记为1,陆地标记为0。从二值图像左上角的点开始,逐点判断,若该点为海面点,它的8邻域(或4邻域)存在陆地点,则视为边界点,直至遍历完整幅图像。

3.海陆判断,剔除错误的洼地淹没区域

目前比较常见的方法有基于海洋边界矢量数据的海陆判断算法和基于卫星影像的海陆判断算法。这些方法都是通过海洋边界预先计算好陆地与海洋区域,然后通过海浪格网点坐标确定是否为海洋区域或陆地区域,即海洋区域和陆地区域是固定的。但是真实的海浪是动态变化的,海陆边界也是动态变化的,若要得到准确的海陆范围,必须根据海浪的动态变化,进行实时的计算。基于以上所述,本文采用种子蔓延算法,对海陆范围变化进行实时判断。

4.提取海陆交互待平滑的近岸区域

以海陆边界作为边缘进行边界扩充处理,设置边界扩充半径,得到平滑区域。提取的海陆边界只是一个边缘轮廓,需要在边界的基础上加宽平滑区域,可采用边界扩充算法处理。边界扩充算法是以边界为基础,选定大小为N×N的窗口,N即为扩充半径,对边界点进行逐点扩充,直到遍历完所有边界点。设置平滑区域半径,得到待平滑的近岸区域。

5.在近岸区域对近岸波进行平滑处理

真实的海浪在近岸区域必定会有衰减,浪高和浪速与深海地区有明显不同。要实现真实海浪的建模,必须对近岸海浪波进行平滑处理,使海浪在近岸地区的高度比较平滑。海浪覆盖的区域网格可被看做一幅图像,采用图像平滑方法对近岸海浪进行平滑。

6.对交互后的海浪进行实时建模表达

对最终与海岛交互后的海浪进行实时建模与表达,主要采用三角网的形式建立实时的三维海浪曲面,并绘制相应纹理和加入光照效果。

五、试验与分析

1.多尺度动态海浪建模

根据立体视觉和运动知觉,按照浪级计算大、中、小尺度海浪场景的切换阈值,模型根据视点高度值,判断当前处于何种尺度的海浪场景,并选用相应的海浪模型,设置对应参数生成该尺度下的海浪。图3是视点从高到低,各尺度海浪场景的试验结果。其中,图3(a)、图3(b)、图3(c)是人眼无法辨识海浪的运动及立体的大尺度场景,在不同视点高度时采用不同分辨率的静态卫星图片进行静态建模;图3(d)、图3(e)、图3(f)是中尺度下的3层基于凸凹纹理映射的动态平面海浪建模,其网格精度随视点降低而升高,以避免当视点拉近时海面因分辨率太低而变得模糊;图3(g)、图3(h)是基于Perlin噪声的小尺度下的动态三维海浪建模试验结果。

2.海岛在海浪影响下的动态三维建模

海底显示错误判别和处理同样是在平滑区域内进行,因此必须选取合适的平滑半径。图4(a)为未平滑的结果,海浪与海岛交互时,海岛的尖峰及海底露出的情况比较严重;图4(b)为平滑半径为5个格网基本单元时的结果,有一定改善;图4(c)为平滑半径为25个基本单元时的结果,基本没有尖峰和海底露出的情况。试验表明,在一定范围内,平滑区域越大,交互效果越好。

图3 多尺度海浪建模与表示

图4 海岛在海浪影响下的动态交互

六、结束语

从二维到三维、从静态到动态、从单对象无交互到多对象间复杂交互建模是大的发展趋势。本文在海浪动态三维建模及海陆交互建模上进行了有益的探索,首先提出了一个动态海浪多尺度表示模型,采用多模型相结合的方法,根据视点高度对海浪场景进行更加细致的层次划分和建模,能够同时满足海浪建模的实时性与真实感要求。在基于海陆动态交互的基础上,笔者对海岛在海浪影响下进行动态建模,为海陆交互建模提供了一个可行的途径。

[1]国家海洋局海洋发展战略研究所课题组.中国海洋发展报告[M].北京:海洋出版社,2010.

[2]薛存金,周成虎,苏奋振,等.面向过程的时空数据模型研究[J].测绘学报,2010,39(1):95-101.

[3]覃如府,叶娜,许惠平,等.GIS系统中多维海洋数据可视化研究[J].同济大学学报:自然科学版,2009,37(2):272-276.

[4]刘贤三,张新,梁碧苗,等.海洋GIS时空数据模型与应用[J].测绘科学,2010,35(6):142-144,133.

[5]GALLEGO G,YEZZIA,FEDELEF,et al.A Variational Stereo Method for the Three-dimensional Reconstruction of Ocean Waves[J].IEEE Transactions on GeoScience and Remote Sensing,2011,49(11):4445-4457.

[6]NILST,MATTHIASM,SIMON S,et al.Real-time Breaking Waves for Shallow Water Simulations[C]∥Proceedings of 15th Pacific Conference on Computer Graphics and Applications.Maui:[s.n.],2007:39-46.

[7]李苏军,杨冰,吴玲达.海浪建模与绘制技术综述[J].计算机应用研究,2008,25(3):666-669.

[8]谢攀,康凤举,苏曼.基于Perlin噪声的海面仿真在Vega Prime中的应用[J].计算机应用研究,2009,11(26):4386-4389.

[9]MULLER M,CHARYPAR D,GROSSM.Particle-based Fluid Simulation for Interactive Applications[C]∥Proceedings of Siggraph Symposium on Computer Animation.San Diego:ACM,2003:154-159.

[10]李志林,朱庆.数字高程模型[M].2版.武汉:武汉大学出版社,2000.

[11]丁海燕,姜艳媛,项慧丽.海底地形数据处理与DEM生成[J].地理空间信息,2009,7(5):23-31.

[12]高金耀,金翔龙,吴自银.多波束数据的海底数字地形模型构建[J].海洋通报,2003,22(1):30-38.

[13]高荣华,孔德慧,尹宝才.描述凸凹纹理的改进方法[J].中国科学:F 辑 信息科学,2009,39(1):154-158.

[14]张以谟.应用光学[M].3版.北京:电子工业出版社,2008.

[15]王晓钧.基础心理学[M].乌鲁木齐:新疆人民出版社,2005.

[16]周爱保.实验心理学[M].北京:清华大学出版社,2008.

[17]中华人民共和国国家质量监督检验检疫总局,中国国家标准化管理委员会.GB/T 12763.2—2007海洋调查规范(第2部分:海洋水文观测)[S].北京:中国标准出版社,2007.

猜你喜欢
凸凹海浪海岛
草 原
草原
丫丫和小海浪
海浪
可换凸凹模技术的应用研究
冰与火共存的海岛
樊应举
在海岛度假
蚯蚓之舞
神奇的海岛