首页| 行业资讯| 企业名录| 周边产品| 数字城市| 增强现实| 工业仿真| 解决方案| 虚拟医疗| 行业仿真| 图形处理| 军事战场
用户登录/注册 ×
资讯首页
行业资讯 >> 专业文献
水域模拟三维可视化技术研究
时间:2019-11-16    评论:0
    来源:第三维度
    作者:相增辉,程光
    单位:东南大学计算机科学与工程学院

    摘要:水域模拟三维可视化能够直观地展示水域周围的地理环境以及水域内水流的动态流动,是“数字流域”的重要组成部分。本文探讨了水域三维可视化模拟中的水域周围的三维地理环境可视化和水域中水流的三维可视化两个问题。提出了使用 OSG 和 osgEarth 地理三维渲染引擎构建真实地理三维环境的方法,以及先通过基于海浪谱的快速傅里叶变换方法对水体建模,再根据光照条件使用 OSG 对水面进行渲染的水流可视化方案。通过实验,较好地模拟出了水域的三维可视化效果。

    1 引言

    随着“数字地球”概念的提出,“数字流域”也随之产生。它以水域为研究对象,通过虚拟现实、地理信息系统等技术的集成运用,实现河流水域场景的可视化[1]。由于需要模拟的水域范围辽阔,其中涉及的地形地貌等三维数据更是海量,可能达到 TB级别甚至以上[2]。如何将海量数据载入计算机内存进行渲染以获得高效流畅的展示就成了解决水域可视化问题的关键。此外,水流作为一种自然形态复杂多变的流体,具有反射、倒影和折射等多种形态。要进行逼真的水流模拟,需要大量的光影、纹理、形态计算量[3]。

    目前,对水域的模拟多以单个河道或者湖泊为目标区域,模拟的范围较小。且很多研究工作只专注于对水流的模拟,在流域中缺少水流周围地理环境的构建工作。近年来,随着三维可视化技术的不断发展,尤其是渲染技术的提高以及海量数据组织与调度方法的改进,对大规模水域环境进行三维可视化模拟已经成为研究者们关注的重点。本文研究的水域模拟三维可视化主要包括两方面的内容:第一是水域周围地理环境的三维可视化,即水域周围包括地物模型的三维地理环境的构建;第二是水域中河道、湖泊的三维可视化,即水域内水流的动态流动过程。本文通过完善这两方面的内容,搭建真实的地理地貌环境,渲染河道、湖泊中水的流动,实现整个水域的三维可视化效果。

    2 相关研究

    对于地理环境三维可视化,有很多不同的解决思路,并且在开源领域内存在很多高效的三维渲染引擎。张俊峰[4]提出了基于四叉树分割和屏幕误差的地形 LOD 算法,通过对地形进行瓦片分割来消除地形各区域的依赖关系,大大提高了系统的运行帧速。于艳超[5]对 LOD 和动态调度技术进行了分析与实验,实现了基于 OsgEarth 的城市三维场景构建。

    杜莹[6]针对全球多分辨率的地形环境,设计了一种面向全球的金字塔模型,提出了一种新的地形分层分块方案。梁雅港[7]利用地形数据库创建工具 VPB创建了火星地形的分页数据库,在基于 OSG 的平台上实现了火星形貌的三维可视化。杨建思[8]介绍了数字城市中各种地形地物要素的建模方法与技术。

    对于水流的三维可视化,研究者们提出了很多实现方法。张尚弘[3]总结了数字流域仿真中水流模拟的纹理变换法、水位与纹理动态变化法以及粒子系统等方法。讨论了各方法的优缺点和适用范围。

    吴磊[9]详细介绍了实时渲染水面的方法,将水流的渲染过程分为水流建模和光照实现两个阶段。李苏军[10]侧重描述了海浪建模的几种方法,包括基于几何模型、物理模型、海浪谱分析、Perlin 噪声以及粒子系统的方法。王纲[11]提出使用 Gerstner 模型实现海浪的模拟,使用光照、泡沫和阴影等特殊效果实现动态海浪的实时渲染。

    3 地理环境三维可视化

    水域周围的地理环境主要包括周围陆地的地形、地貌特征以及城镇建筑布局情况。以本文研究的洞庭湖水域为例,需要构建的地形区域为以长江干流的宜昌和洞庭湖支流湘、资、沅、澧四水为入流边界,以长江干流螺山为出流边界的全部区域,包括各个河网、湖泊以及陆地。当前洞庭湖的天然水面就达到了 2625 平方公里,加上陆地上地形复杂的各个区域,如此辽阔的研究区域包含了大量的地理信息数据。

    OSG(Open Scene Graph)是一个基于 OpenGL的三维开源场景图形开发库,主要为图形图像应用程序的开发提供场景管理和图形渲染优化功能,在3D 程序开发中扮演重要角色。OSGEarth 是在 C++、OSG 基础上开发的一个功能强大的地形渲染工具,采用实时的地形数据加载和渲染策略。本文使用OSG 和 OSGEarth 作为场景、地形的渲染引擎,地理三维可视化的实现流程如图 1 所示。

图 1 地理环境三维可视化流程

    3.1 地形、地貌数据的管理与调度

    数字高程模型(DEM)是一种对空间起伏变化的连续表示方法。地形 DEM 数据是能够表示地球表面高低起伏状态的数据,即具有高程信息的数据,它描述了特定区域的地形结构特征。此外为了更好地表现研究区域内的地貌特征,需要将卫星影像数据作为重要补充,以表现更清晰的细节。由于研究区域范围很广,这两类数据已达到 GB 级别的大小。

    这就需要使用有效的组织和调度方法,将特定的数据加载到内存中进行渲染,以实现三维地理环境的逼真效果和流畅的交互式漫游操作。

    3.1.1 数据的组织方式

    LOD(Level Of Detail)即细节层次技术,指在不影响渲染外观的前提下,系统根据场景对象与观察者的距离,模型靠近观察者越精细,显示的范围就越小,以减轻系统在绘制场景的负担[12]。OSG Earth采用动态四叉树 LOD 方式进行地形数据的组织,地形数据被实时地划分为不同 LOD 层次瓦片序列,基于视点进行动态的调度和渲染[13]。

    在进行地形的三维场景构建时,需要将 DEM数据和影像数据进行瓦片分割处理。瓦片数据是一种如图 2 所示的多分辨率金字塔数据建筑模型,常用于在线地图数据服务。瓦片数据服务提供了快速索引的功能,是当今海量地形与卫星影像数据的最佳管理与分发方式。每一个瓦片对应一块矩形区域,不同层级的瓦片结点对应不同 LOD 的场景模型。

图 2 金字塔数据建筑模型

    金字塔的顶端代表最简化的、分辨率最低的数据,金字塔的底端代表最精细、分辨率最高的原始数据[5]。

    金字塔每一层分割为不同的块并进行编号,通过层级号和数据块号可以确定唯一的瓦片数据块。图 3 表示瓦片数据库数据的四叉树结构索引模式。

图 3 瓦片数据库数据的四叉树结构组织方式

    通过瓦片数据库中的全局索引文件,来确定瓦片数据文件。其中,瓦片数据文件构成一个四叉树结构,四叉树中的每个结点表示一个瓦片数据文件,存储相应层级的数据块。

    3.1.2 数据的动态调度

    虽然在 OSG 中使用“裁剪”的方式保证每一帧中只有一部分数据被传送到渲染管道中,剔除掉了大量无助于渲染结果的对象,并且使用 LOD 等场景结构方案以牺牲渲染质量的方式来提高渲染效率,但是内存中毕竟是不能加载海量数据的[14]。此时,数据的动态调度方法就显得尤为重要。在洞庭湖研究区域中进行场景漫游时,有的地形或者影像瓦片数据块暂时还未出现在场景中或者已经出现过了,这些瓦片数据需要在内存中进行动态的加载与卸载。

    在显示当前视域内的场景数据的同时,需要判断下一步可能要载入的数据以及那些短时间内不会看到的数据对象,确保内存占用始终维持在一定的阀值以下。

    在 OSG 中,使用分页的动态调度策略来实现上述要求[14]。数据的动态调度过程主要包括删除过期的场景数据、获取新的数据加载请求、编译加载的数据以及将加载的数据合并到场景图形。具体的实现流程如图 4 所示。

图 4 OSG 动态数据调度流程

    3.2 地物建筑模型数据的管理与调度

    传统的地物建筑物可视化模型数据一般包括三方面的内容,包括三维建筑模型、表面纹理数据以及建筑物的坐标信息。其中,三维建筑物模型一般使用专业的三维建模软件进行设计实现,并保存在特定的文件中,最后导入三维可视化程序的场景中进行渲染[15]。由于研究区域内建筑物分布广阔,将它们都通过使用建模软件(如 3Dmax)模拟出原型的设计工作量和系统显示数据量都相当巨大。此外,在实际的城镇的三维可视化建设中,地物建筑物模型和地形建模一般是分开进行的,地物建筑物模型的建模过程中没有考虑地形的影响,模型的地面是不带高程数据的。因此将地物和地形进行融合也是需要考虑的一个难点。

    本文使用了一种新的解决方案,直接将建筑、树木等地物模型的相关数据,如地理位置信息、地物类型信息、高度等,全部作为 Shapefile 文件中的属性数据。将 Shapefile 文件载入到 OsgEarth 地理三维渲染引擎中,根据这些属性数据在对应的地理坐标上构造非规则的立方体来表示建筑等地物模型。

    对于建筑物模型,可以利用 OsgEarth 对于 XML 索引的支持,在建筑物表面纹理数据层上创建纹理数据的 XML 索引文件。在进行渲染时,系统能够通过索引文件获取到建筑物对应的纹理,使得建筑模型相对更加真实。这样构造出的建筑物虽然没有建模软件模拟出的建筑物细节精致,但是能够快速渲染出大规模的地物模型,足以表现出建筑物的分布情况。此外,在构建研究区域中的城镇模型时,因为很多的建筑物具有相同的纹理特征,通过共享纹理,可以减少纹理数据的加载量,有效提高系统性能。

    4 水流模拟三维可视化

    在进行三维地理环境全局漫游时,河道、湖泊以静态贴图的方式组成一个图层作为地貌的一部分。当视点拉近到具体的河流时,这时候就需要展示水流的动态流动过程。在对湖泊、河道中的水流进行模拟时,需要考虑包括两方面的内容。一是水流在风力等外力作用下水体表面的运动,表现为波浪的高低起伏。二是水面在不同光照条件下表现出的不同效果,如对阳光的反射与折射、水面纹理的变化、不同角度下水的颜色的变化等。本文使用基于海浪谱的快速傅里叶变换方法对湖泊、河道中的水流进行建模,并使用 OSG 对水面的各种光照条件进行渲染,以求达到逼真的水流动画效果。水流模拟的流程如图 5 所示。

图 5 水流模拟流程图

    4.1 基于 FFT 的水面建模

    在构建湖泊、河道中的水体时,我们把它看作为覆盖在平坦地形上一定高度的非规则的三角形网格图层,这个图层就是初始的水面。为了表现水面流动起伏的效果,需要对这个网格图层进行改造。改造的基本流程就是使用各种模拟函数,生成水面的实时高度场数据,这里的高度场就是指水面上任意一点的高度。然后将每个点的高度场投影到网格,最终实现网格的动态运动。

    4.1.1 基于海浪谱的 FFT

    海浪可以看作为为由许多振幅、频率、方向、位相各不相同的波组成,这些波就构成了海浪谱。基于海浪谱的快速傅里叶变换(FFT)是建立在海洋统计学上的,它模拟出来的结果与真实海洋水面非常接近[16]。因为 FFT 方法具有良好的周期特性,可以通过FFT计算每个点的高度场形成一小块海面,并利用周期性对海面进行扩展。将这些小块海面进行拼接,形成较大的海面。基于海浪谱的 FFT 算法的表达式为:


    这里 h(X,t)是河水的高度场,其中,X 表示水平位置坐标,t 表示时间。假设一个周期内进行渲染的网格长宽比为 N:M,实际长度为 Lx,实际宽度为 Lz,则 K 是二维波矢量,表示为 K=(Kx,Kz)=(2πn/Lx,2πm/Lz),这里的 n 和 m 是整数,n 取值范围为[-N/2,N/2],m 取值范围为[-M/2,M/2]。通过快速傅里叶变换,得到网格上的每一个离散点 x=(nLx/N,mLz/M)的高度场。公式 4.1 中, 即为通过快速傅里叶变换得到的波浪幅度的值,代表了波浪的形状。

    出于图形学的要求,必须计算出水波高度场的斜率以获得三角形网格表面上的法向量,这样才能为计算反射光线提供数据支持。比较容易想到的是通过计算网格中相邻两个点在 y 坐标上的差值,再除以两个点的水平距离来得到斜率[17]。当然我们也可以对 h(X,t)进行梯度运算,具体的公式如下:


    以上即为高度场的算法,下面的重点就是对 的求解,即对傅里叶系数的计算。本文中,我们选择 Philips 谱模型作为海浪谱模型,它能够很好地表现出水面在微风吹动下波浪的空间谱分布。Philips 公式如下:


    其中,l=v2/g,v 表示风速,g 为重力加速度。l 是在风速为 v 的状态下水面上水波可能出现的最大波长。 为风的方向, 表示波矢量,2用于消除水浪的移动方向与风向垂直部分的能量,以使得海浪的移动方向与风向保持一致。根据统计经验,当波长l远远小于L的时候结果的收敛性很差,可以将公式 4.3 乘以一个修正因子 来修正。

    水浪的高度场是根据空间分布形式的高斯随机数生成的。接下来,我们创建初始谱模型,公式如下:


    其中, 和 是服从 N(0,1)正太分布的相互独立的随机数,它们的均差为 0,方差为 1。再加上时间 t 后,得到的高度场计算公式为:


    根据 FFT 的性质,可得:


    公式 4.5 中,w 为海浪移动的速度的随机量,它与波浪移动方向 k 关系为 W2(K)=gk,其中,g 为重力加速度,k 为矢量 K 的模最后将公式 4.5 带入公式 4.1 中,再结合公式4.6 与前面计算出的二维波矢量

    就可以计算出任意时刻波浪的高度场,如公式 4.7 所示:


    其中,N 表示快速傅里叶变换中的点数,n 为网格对应的行号,m 为网格对应的列号。时间增量t 的大小决定了波浪移动的速度,视觉上表现为波浪起伏变化的快慢。风向决定了波浪移动的方向,风速决定了波浪的振幅。

    4.1.2 Choppy 波浪

    使用快速傅里叶变换方法生成的水波能够反映在正常天气情况下水面的运动状态,因为 FFT 生成的水波曲线与基于正余弦函数的方法生成的水波曲线类似,在波峰和波谷上都比较光滑。但在现实情况下当水面上的风力变得很大时,波浪的浪尖会远远溢出水面,于此同时形成的浪谷会更加圆滑[11]。

    表现在曲线图上,与 FFT 方法生成的曲线相比,波峰会更加尖锐,波谷会更加平滑。为了模拟出这种尖浪效果,一般的方法是在波峰的位置增加高度场的值。不过我们也可以对 FFT 方法进行修改,在不改变高度场的值的情况下,通过在水平方向上对网格上的点进行位移来达到此效果。具体的位移公式为:

    其中, 是控制位移的常数,D 是通过 FFT 计算的位移向量,D 公式如下:

    4.2 水面光照效果分析

    在建立完水流模型后,想要模拟出真实环境下的河水的光照效果,就需要利用到各种光学原理(如图 6)。例如光在水面上的反射与折射、水在不同观察角度和光照条件下的颜色变化以及大风浪时水面泛起的浪花效果等。

图 6 反射与折射

    水面的颜色可以通过下面的公式进行计算:

    其中,Fres 表示菲涅尔系数,描述了光线在一种介质传递到另一种介质上发生反射和折射的概率。Creflect表示光的反射颜色,Crefract表示光的折射颜色。

    4.2.1 反射

    本文使用立体贴图技术,即通过六张二维纹理图像构成一个环境纹理盒来模拟水面所在空间周围的环境。在计算水面的反射颜色时,可以通过反射光线与立方体面相交得到反射环境颜色(Cenvir)。

    为了实现太阳光在水面上形成的波光粼粼的效果,还需要考虑增加镜面纹理颜色(Cspecular)。这样,反射光线的颜色为 Creflect= Cenvir+ Cspecular。

    4.2.2 折射

    当光线穿越不同的介质时,会发生折射。折射光线的颜色由两部分组成,包括水面下物体的颜色(CunderWater) 以 及 深 水 水 体 的 颜 色 (CdeepWater) , 即Crefract=CunderWater+ CdeepWater。根据 Snell 折射定律,n1sin= n2sin 。 和 分别表示光线的入射角和在水中的折射角,n1和 n2分别表示空气和水的光线折射率。因为现实中观察水时,水下的物体看起来会比实际深度浅。所以当渲染折射效果时,将水底中的物体进行适当的提升,然后渲染到一张折射纹理上。

    4.2.3 菲涅尔系数

    水面上的颜色在很大程度上取决于观察的角度,当观察近处的水面时,水中的物体相对容易看到,而观察远处的水面时,更容易看到水面反射的物体[18][19]。这种现象就是菲涅尔现象,菲涅尔原理就是用来处理反射与折射的关系。根据图 6,菲涅尔系数 Fres 可表示为:

    4.2.4 泡沫

    当风浪足够大时(choppy 波),可以通过在波峰位置模拟泡沫来提高水体流动的真实感。本文的方法是创建一个泡沫纹理,当水面的高度场高于一定的值时,将泡沫纹理与河面进行融合。对不同高度水波产生出的泡沫,我们通过以下公式来计算泡沫的饱和度:

    Foam(X)= saturate((H-H0)/(Hmax-H0)) (4.12)

    其中,H0表示基准高度,H 表示当前高度,Hmax表示出现泡沫的高度基准值。

    5 实验结果与分析

    对于地理环境的三维可视化,图 7 较好地表现出了研究区域内地形的高低起伏以及地貌的渲染,此时也可以在全局角度看到静态的蓝色河流。图 8较好地展示了城镇建筑和树木的模型,虽然在细节部分略有所失,但在大规模地物快速建模中已经能够很好地表现出水域周围建筑物等的分布情况。

图 7 三维地形地貌

图 8 三维地物建模

    对于水流的三维可视化模拟,当拉近图 7 中的河道、湖泊时,可以看到动态的水流流动。图 9 通过纹理贴图的方式实现的水流较平静状态下的效果。

图 9 较平静状态下的水面

    图 10 增加了反射、泡沫的光照效果,与图 9 相比,图 10 的动态效果更加生动逼真。从图 10 中可以很明显的看出水面在阳光的照射下波光粼粼的镜面反射效果以及Choppy波情况下波浪泛起的泡沫效果。

图 10 多种光照条件下的水面效果

    由此可以看出,实验系统能够很好地实现地理环境的三维可视化以及水流的三维可视化模拟。在进行漫游操作时,对地貌纹理数据进行缓存处理,能够大大提高整个系统的流畅度。

    6 结论

    本文以水域三维可视化模拟技术为研究目标,针对水域周围的三维地理环境可视化和水域中水流的三维可视化问题进行探讨。提出了使用 OSG 和osgEarth 地理三维渲染引擎构建真实地理三维环境的方法,提出了一种基于 OsgEarth 的新的地物快速建模方案,以及先通过基于海浪谱的快速傅里叶变换方法对水体建模,再根据光照条件使用 OSG 对水面进行渲染的水流可视化方案。通过以上的解决方案,实现了一个水域三维可视化系统,并以洞庭湖水域为目标研究区域进行实验,实验结果表明系统能够逼真流畅地表现洞庭湖水域的三维可视化效果。

    参考文献(略)
标签:水域OSG
上一篇:水下航行器舱门开启过程虚拟仿真下一篇:我军海上医疗救护模拟仿真训练系统问世
网友评论:水域模拟三维可视化技术研究
留名: 验证码:
最新评论
查看全部评论0
暂无评论
您可能还需要关注一下内容:
·第十九届中国虚拟现实大会深圳举行
·多模态力触觉反馈交互技术及应用
·基于人因感知模型的计算显示学在3D产业中的应用
·裸眼3D胸腔镜与2D胸腔镜在微创食管癌根治术中的临床对比研究
·顾开宇:发展三维LED,打破国外电影放映设备垄断
·王连云:裸眼3D技术现状及产业推进六大建议
·AR眼镜:挑战下一代个人移动计算平台
·裸眼3D显示终端关键技术及建议
·集成成像桌面真3D显示技术原理与应用
·微纳加工技术:无视疲劳裸眼3D显示助推器
☏ 推荐产品

小宅 Z5 2018青春版
商家:小宅

杰瑞特运动平台
商家:杰瑞特智能

Dikalis眼动追踪
商家:赢富仪器

魔神 Hawk
商家:魔神运动分析

5DT Binoculars
商家:四维宇宙

Christie DS+750
商家:四维宇宙

Zalman M220W
商家:四维宇宙

全息360°
商家:四维宇宙

PD F10 AS3D
商家:四维宇宙

PHANTOM系列
商家:四维宇宙
☞ 外设导航
☏ 企业名录
【宁波】宁波维真显示科技股份有限公司
【潍坊】歌尔股份有限公司
【上海】霍尼韦尔(中国)有限公司
【北京】科视Christie-中国
【北京】北京华如科技股份有限公司
【北京】北京乐卡仕技术有限公司
【广州】广州弥德科技有限公司
【上海】刃之砺信息科技(上海)有限公司
【北京】北京度量科技有限公司
【北京】北京小鸟看看科技有限公司
关于本站联系我们融资计划免责声明网站建设广告服务咨询策划行业推广
北京第三维度科技有限公司 版权所有 京ICP备15051154号-3
2008-2020 Beijing The third dimension Inc. All Rights Reserved.
Email:d3dweb@163.com  QQ:496466882
Mob:13371637112(24小时)
关注虚拟现实
关注第三维度