基于WebGL的三维洪水演进模拟方法及系统

文档序号:36333443发布日期:2023-12-10 15:51阅读:261来源:国知局
基于

本发明涉及基于特定计算模型的计算机系统,尤其涉及一种基于webgl(webgraphics library,一种3d绘图协议)的三维洪水演进模拟方法及系统。


背景技术:

1、水流可视化技术可以分为水流数值可视化技术与水体视觉模拟技术两类。水流数值可视化技术指通过绘制图形、表面着色等方法,直观、逼真地显示各类水流信息的数值,如水位、水深、流速、坡降、污染物浓度等。水体视觉模拟技术则指应用计算机图形学的方法,模拟水流的形态与颜色变化。

2、针对水流数值可视化,所有的水流信息都可以归于标量和矢量两类。对于标量水流信息,以水位、水深等参数为例,在实际研究中通常采用数值——颜色映射给网格上色,表示其大小。并在此基础上添加等值线或等值面,直观地表现其梯度分布。对于矢量水流信息,流速、流向为例,矢量法基于流线或者箭头去表达流场分布。

3、对河流水体视觉模拟主要有基于物理的模拟仿真方法和基于非物理的模拟仿真方法。基于物理的模拟仿真方法能够真实地表现水流的真实流动效果,但是需要进行复杂的纳维—斯托克斯(navier-stokes)方程求解工作,一般的计算难以完成,不适合水流效果的实时绘制。基于非物理的模拟仿真方法主要有简单纹理贴图、法线纹理贴图、波形函数变换、粒子系统、perlin 噪声函数、统计模型,以及元胞自动机等。其中,波形函数变换与法线纹理贴图应用最为广泛。法线纹理贴图是通过改变水体表面的法线,添加对光照的扰动,形成凹凸效果,实现对水体波动的模拟。例如:可通过纹理映射技术,应用法线纹理有向贴图模拟河流流动的效果,表现河流的流态变化,增强流域水体视觉上的真实感。

4、水流可视化技术的应用形象表达了水流信息的时空分布特征,丰富了数字孪生流域的表现内容。但同时对于使用水流数值可视化技术,实现洪水演进高速模拟推演依旧挑战巨大。

5、主要原因之一是水动力学模型计算结果数据量巨大。洪水运动过程的模拟需要基于水文、水动力等数值模型。洪水推演涉及多时空尺度,数值模型动辄数十分钟乃至数小时的计算过程,数万甚至数十万的网格计算结果;二是无法满足浏览器端动态高效渲染需求,渲染效率低下。数字孪生流域展现形式从二维发展到三维、架构由单机版发展到网络版、表达方式由符号化表达发展到虚拟仿真。对于b/s((browser/server,浏览器/服务器模式))架构体系,水动力学数值计算结果数据量大引起网络传输响应速度缓慢,及由于3dgis引擎(3-dimension geographic information systems,三维地理信息系统渲染引擎)性能瓶颈导致的浏览器端页面渲染压力骤增。最终表现为基于3dgis引擎开发的水利业务系统众多,但基于水动力模型实现洪水演进模拟功能的系统却并不常见。


技术实现思路

1、本发明目的在于公开一种基于webgl的三维洪水演进模拟方法及系统,以提高处理速度,尤其是浏览器端洪水模拟渲染效率。

2、为达上述目的,本发明公开的基于webgl的三维洪水演进模拟方法包括:

3、步骤s1、水动学数据处理,包括:

4、步骤s11、在平面坐标系统中针对建模区域流域下垫面基于dem(digitalelevation model,数字高程模型)数据生成网格文件,所述网格文件包含三角形网格和四边形网格;其中,河道采用四边形网格进行剖分,河道两岸采用三角形网格剖分;各网格的格点携带地形高程信息;

5、步骤s12、将剖分后的网格文件和包括区间降雨、上下游水位流量边界条件的工况信息输入到二维水动力模型中,从模型计算输出结果中抽离出各网格随时刻变化的水深和水位信息;

6、步骤s13、将得到水深和水位信息的网格图层利用arcgis(arc geographicinformation system,是由esri公司开发的一款分析和管理地理信息的软件)重投影工具箱投影到wgs84坐标系统(world geodetic system 1984,是为gps全球定位系统使用而建立的坐标系统),再利用arcgis格式转换工具箱导出为geojson格式(geojson,一种人为可读性良好、便于网络传输且被广泛使用的矢量数据格式);将二维水动力模型数值计算结果中输出的每一时刻网格水力学参数文件视为一帧,逐帧提取水深数据写入时刻序列-网格水深矩阵,每一行表示一个时刻下所有网格的水深值;同时,逐帧提取最大水位数据写入时刻序列-网格最大水位数组;所述网格水力学参数文件包含当前时刻下,每一网格的中心点坐标,河底高程、水位、水深、流速和流向信息;

7、步骤s2、基于3dgis引擎cesium.js(cesium.js,是一个开源的浏览器端三维虚拟地球引擎)和webgl构建图元底层原理,自定义水体网格mesh图元,将四边形网格分解成由两个独立的三角形网格后得到各三角形网格的编号、顶点数组和索引数组,且同一顶点能在不同三角形中赋予不同的水深值;并以着色器定义材质外观,展现网格颜色;

8、步骤s3、设置定时器,逐帧根据材质外观和每个三角形网格水深值映射的颜色值给mesh图元的各个网格上色及更新,并取同时刻所有网格中最大水位值作为mesh图元整体高程,形成分帧动画,以实现动态洪水演进数值模拟。

9、优选地,在步骤s11生成网格文件的过程中,还包括:在部分区域进行局部加密,并对部分区域进行相对系数控制,并对阻水建筑勾画轮廓设置边界。

10、优选地,在二维水动力模型的数据处理过程中,还包括:高程修正、设置边界和糙率及配置模型参数,所述二维水动力模型采用hydrompm_floodrisk洪水分析模型(hydrompm_floodrisk,一种洪水分析模拟软件)。

11、优选地,本发明调用创造网格图元函数自定义webgl水体网格图元,通过显示图元函数将图元显示,隐藏图元函数将图元隐藏,设置高度函数通过传入时序最高水位数组设置图元整体高程,并以设置可见性函数判断图元是否能见;且在渲染过程中,还包括:浏览器调用 gpu (graphics processing unit,计算机图形处理器,为计算机显卡核心芯片)进行数据渲染加速,并更新图元函数实现时序动态更新机制。

12、优选地,在分帧动画的处理过程中,采用webworker技术(webworker,web worker为浏览器端在后台线程中运行脚本的一种方法)在当前程序主线程中使用支线程类加载一个处理、准备渲染数据的程序文件来开辟一个新线程。

13、优选地,本发明方法还包括:在数据层面,通过编写后处理代码将水动力学数值结果数据极致压缩成gzip格式(gnu zip,一种网络传输中使用的数据压缩格式);相对应的,在服务端使用支持gzip的nginx网络服务器(nginx,一个高性能的http和反向代理web服务器),使得数据传到浏览器端再自动解码。进一步地,对于动画播放策略,通过设置用户操作监听器,实现页面操作状态监听,当监听到移动页面时暂停播放,待页面稳定后再继续播放以减少重绘。

14、为达上述目的,本发明还公开一种基于webgl的三维洪水演进模拟系统,包括浏览器节点和服务器节点,各节点分别包括存储器、处理器以及存储在存储器上并可在处理器上运行的计算机程序,其中,所述服务器节点与相对应的浏览器节点交互以分别通过执行相对应的计算机程序以实现上述的方法。

15、本发明具有以下有益效果:

16、1、从二维水动力学模型数值模拟海量结果数据中,筛选并抽离网格所对应的高程信息及水深水位信息以基于webgl技术进行三维洪水演进,结合3d虚拟地球引擎cesium.js实现自定义webgl水体网格图元,便于从数据处理、压缩存储、网络传输优化、动态高效渲染联合以水旱灾害防御业务系统推进洪水演进过程的高速模拟。最高可支持15万网格量的三维洪水演进高速模拟,在浏览器端渲染效率大大提高;极大提高了web端三维洪水演进模拟的响应、渲染速度,适合推广。

17、2、自定义水体网格mesh图元,将四边形网格分解成由两个独立的三角形网格后得到各三角形网格的编号、顶点数组和索引数组,且同一顶点能在不同三角形中赋予不同的水深值。藉此,建立了水深和水位基于水动力模型的结果数据与webgl的应用程序接口之间的联系,将建模网格转换为自定义的webgl水体网格图元,将网格水深值映射为图元顶点颜色。进一步地,在播放一个时刻动画时,取出其中一行将水深值映射到颜色数组,通过图元自定义的动态更新机制,实现刷新水体网格图元的每一个网格颜色。水动力学建模网格文件一般会同时三角形网格和四边形网格,四边形可由两个三角形构成,三角形可看作第4个点和第1个点重合的“退化”四边形。最终将四边形网格和三角形网格在渲染层面可以统一成由两个三角形网格构成。自定义水体网格图元方法对不同水动力数值计算结果的可视化渲染兼容性好。

18、3、水体网格图元作为一整个平面进行抬升,会造成与地形、房屋相切,但一般上游地势高于下游,从低往高抬升,容易造成视觉上水从下游往上游淹没的错误结果,本发明取网格最大水位值作为网格整体高程,既保证了涨退过程的合理性,又保证了有水深数值的网格始终在对应房屋或地形的上方,不会引发由于平面网格遮挡造成的反常识的渲染结果。

19、下面将参照附图,对本发明作进一步详细的说明。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1