一种加速渲染的精细化污染扩散可视化方法

未命名 08-13 阅读:182 评论:0


1.本发明属于可视化渲染技术领域,具体涉及一种加速渲染的精细化污染扩散可视化方法。


背景技术:

2.随着新一代数字地球、webgl、三维gis等技术的深入发展,多种领域开始通过构建三维虚拟仿真平台来集成、模拟、管理多源地理信息和数据。
3.目前的三维实景环境中污染扩散监测存在以下问题:
4.1、数据处理不够灵活快速,加载速度慢,使用传统的方法时,当数据量过大时如果不进行空间分割建立索引,查找数据会浪费大量的时间。
5.2、数据展示效果单一。传统的污染可视化方法只能展示一种数据的影响效果,而监测技术的快速发展使得污染数据类型已经多种多样,难以满足复杂的可视化需求,缺少多尺度污染扩散的多重绘制效果。
6.3、没有建立高效的缓存机制。三维场景漫游过程中仅仅只有数据调度策略还不够,受内存大小的限制,即便将常用的数据筛选出来,在长时间漫游过程中仍然会产生大量冗余数据,庞大的数据量不仅需要巨大的外存空间用于内外存之间的频繁调度,还需要较高的内存用于网络环境下的绘制渲染,将加载的数据全部放在内存中无疑会导致渲染效率低下。


技术实现要素:

7.为解决上述背景技术中提出的问题,本发明提供一种加速渲染的精细化污染扩散可视化方法,以解决现有三维实景环境中污染监测技术中数据处理不够灵活快速,加载速度慢,数据展示效果单一,没有建立高效的缓存机制的问题。
8.为实现上述目的,本发明提供如下技术方案:
9.一种加速渲染的精细化污染扩散可视化方法,包括:
10.步骤1:基于气象数据文件,使用扩散模型进行污染物的大气传输扩散模拟并输出预报数据;
11.步骤2:收集大气传输扩散模型输出的预报数据,组合污染物,得到组合文件数据;
12.步骤3:使用地图瓦片技术展示网格地图,对地图切片,生成瓦片;
13.步骤4:使用八叉树模型对地图的场景进行空间分割,分割数据存储至数据库中并建立索引;
14.步骤5:设置多线程并行的数据调度机制,多线程调度机制用于瓦片的调度和图像绘制;
15.步骤6:结合组合文件数据、瓦片和分割数据,设置提高渲染效率的基于潜在可视数据的缓存机制,渲染并输出图像。
16.优选地,气象数据文件包括:地面观测数据文件、三维气象数据文件和高空探测数
据文件,预报数据包括浓度数据、通量数据、能见度数据。
17.优选地,步骤1中的扩散模型使用拉格朗日非稳态大气扩散模型,地面观测数据文件、三维气象数据文件和高空探测数据文件中的数据作为拉格朗日非稳态大气扩散模型的配置参数。
18.优选地,步骤2中组合污染物的具体步骤包括:
19.s2.1:对预报数据进行统计分析,得到敏感点浓度、网格点浓度和时间序列网格;
20.s2.2:对不同的污染物设置不同的数值系数,加权组合后获得新污染数据;
21.s2.3:将新污染数据进行统计标定,得到组合文件数据。
22.优选地,步骤3中的使用网络地图瓦片技术的具体步骤为:
23.s3.1:将待处理的地图按照金字塔模型切成瓦片,并保存到地图服务器;
24.s3.2:客户发送地图服务请求时,地图服务器根据请求参数,返回当前区域所在的瓦片。
25.优选地,步骤4中的场景分割的具体步骤为:获取地图中的可视化场景整体所占的空间范围,对空间范围进行八叉树分割,将分割好的数据以二进制方式存储到数据库中并建立索引。
26.优选地,八叉树具体结构为,八叉树每个节点表示一个正方体的体积元素,每个节点有八个子节点,这八个子节点所表示的体积元素加在一起就等于父节点的体积,中心点作为节点的分叉中心。
27.优选地,步骤6中的多线程并行的数据调度机制为:使用包括图形绘制线程和数据调度线程并行的双线程数据调度来对空间范围中用户不同视角位置的参数进行调度,具体步骤为:
28.s5.1:调度线程任务列表根据实时任务信息生成相应的参数请求,更新地图的空间范围中当前相机视点的位置坐标并初始化加载区域;
29.s5.2:根据缓冲区读写原则,判断是否需要调度相应瓦片数据加载至缓冲区,在数据加载之前将相应瓦片对象调入瓦片队列中,根据瓦片分类管理机制对瓦片进行分层管路和控制,完成对数据的调度任务;
30.s5.3:绘制线程经过视点裁剪变化更新初始化区域,把缓冲区内视景体瓦片节点的编码和地形数据调入可视区域申请队列中;
31.s5.4:根据视点距离判断经过遍历可视化区域内的瓦片是否需要进一步划分,若不划分则直接从缓冲区调入相应瓦片数据,若需要划分,则另外创建一个堆栈,将该瓦片压入堆栈,并进行八叉树划分,划分结束之后弹出该节点;
32.s5.5:对于新产生的八个节点,按照逆时针重复划分步骤,直至所有节点都完全成为叶子节点;
33.s5.6:最后根据叶子节点所在瓦片的索引信息,解析出相应的层级、行号列号等信息,并将其加载至显存中用于绘制;
34.s5.7:当等待队列中所有的瓦片请求全部执行完成后,清空队列,同时作为下一帧开始的请求队列使用。
35.优选地,步骤6中设置缓存机制的主要步骤包括:
36.s6.1:在内存中设立缓冲区并建立二级缓存机制,将潜在的需要参与三维场景绘
制的各项数据暂时存储在缓冲区以减轻服务器的负担;
37.s6.2:随着用户对视角的调整,在连续的几帧中,视域内的瓦片块重复出现的概率较高,因此将这一类瓦片数据放在第一级缓存内;
38.s6.3:第二级缓存设计是通过gpu对相关数据的顶点、法线、图元和索引等要素进行编译与加载处理,将经过编译的瓦片数据存放于能够被gpu渲染队列快速调度的瓦片缓冲区中。
39.与现有技术相比,本发明的有益效果是:
40.1、本技术对现有系统在数据层面和算法层面进行多种手段优化,使之更加充分地利用集群多节点及多核资源进行计算提速。
41.2、针对缓存机制的缺乏,建立一种高效的缓存机制,使其能够更好地应用于三维地形场景的快速几何运算,缓解实时渲染过程中数据i/o频繁的问题,减少了重复调度的渲染时间从而加快了场景加载,提升用户体验。
42.3、针对数据效果展示单一问题,采用多线程绘制方式,把每种污染数据放进单独的线程里进行绘制,当所有线程都绘制结束后将绘制图像全部展示在三维实景中。
附图说明
43.图1为多线程并行的数据调度机制示意图;
44.图2为获得组合文件数据的步骤示意图;
45.图3为网络地图瓦片技术具体流程示意图;
46.图4为八叉树具体结构示意图;
47.图5为生成浓度预报数据的流程示意图;
48.图6为基于潜在可视数据的缓存机制示意图;
具体实施方式
49.下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
50.实施例1
51.步骤1:如图5所示,基于指定区域输出的地理数据文件以及气象资料降尺度模块输出的地面观测资料、三维气象数据文件和高空探测文件等数据文件,对污染的大气传输扩散进行模拟,最终输出扩散模式浓度数据文件。模型用拉格朗日非稳态大气扩散模型,通过大气扩散参数配置,考虑复杂地形对大气扩散的影响,考虑水平输送、扩散,干湿沉降等大气扩散过程,输出浓度预报数据。
52.步骤2:如图2所示,针对大气扩散模式输出的浓度数据、通量数据、能见度数据等进行统计分析,得到敏感点浓度、网格点浓度和时间序列网格分析。然后以加权组合的方式将多个污染物组合为一个新的污染物,组合过程:主要通过对总体中的各个污染物设置不同的数值系数(即加权因子-权重),使污染物呈现出不同权重的相对重要性程度,再对多个污染物进行组合得到新的组合数据。
53.步骤3:如图3所示,使用网络地图瓦片技术(web map tile service,简称wmts)来展示网络地图,其核心思想是预先将定制好的地图按照金字塔模型切成一定规格的图片,保存到地图服器,当客户端发送地图服务请求时,地图服务器根据请求参数,快速返回当前区域所对应的tiles,其实质是使用静态图片达到动态显示的效果,优势在于可以动态减少客户端用来显示复杂地图所花费的时间,在保证地图图像质量的同时提高显示效率。如图3所示,该图为网络地图瓦片缓存流程。
54.在wmts的基础上做了进一步的高性能并行优化,并行计算是利用多核cpu协同来求解问题,从而实现由于单核cpu计算能力或内存容量限制而无法提供的性能。使用消息传递接口(message passing interface,简称mpi)和直接控制共享内存式并行编程的应用程序接口(open multi-processing,简称openmp)进行并行化计算优化。采用分布式存储缓存,将地图缓存存储在分布式文件系统中,提升地图瓦片的存取速度和支持的并发数。
55.步骤4:如图4所示,场景分割,使用八叉树金字塔模型对地图场景进行分割。首先获取可视化场景整体所占空间范围,然后对该空间范围进行八叉树分割,将分割好的数据以二进制方式存储到数据库中并建立索引,用于高效的数据搜索。八叉树结构如图4所示,八叉树的每个节点表示一个正方体的体积元素,每个节点有八个子节点,这八个子节点所表示的体积元素加在一起就等于父节点的体积。中心点作为节点的分叉中心。
56.步骤5:如图1所示,设置多线程并行的数据调度机制。在污染扩散三维图形的绘制过程中,需要根据用户切换视角位置不同对污染物数据、风场数据、建筑物数据等进行调度,此处使用包括图形绘制线程和数据调度线程并行的双线程数据调度,调度线程任务列表首先会根据实时任务信息生成相应的参数请求,更新当前相机视点的位置坐标初始化加载区域。然后根据缓冲区读写原则,判断是否需要调度相应瓦片数据加载至缓冲区。最后在数据加载之前将相应瓦片对象调入瓦片队列中,根据瓦片分类管理机制对瓦片进行分层管路和控制,完成对数据的调度任务。绘制线程首先经过视点裁剪变化更新初始化区域,把缓冲区内视景体瓦片节点的编码和地形数据调入可视区域申请队列中。然后根据视点距离判断经过遍历可视化区域内的瓦片是否需要进一步划分,若不划分则直接从缓冲区调入相应瓦片数据,若需要划分,则另外创建一个堆栈,将该瓦片压入堆栈,并进行八叉树划分,划分结束之后弹出该节点。对于新产生的八个节点,按照逆时针重复划分步骤,直至所有节点都完全成为叶子节点。最后根据叶子节点所在瓦片的索引信息,解析出相应的层级、行号列号等信息,并将其加载至显存中用于绘制。当等待队列中所有的瓦片请求全部执行完成上述步骤后,清空队列,同时作为下一帧开始的请求队列使用。
57.步骤6:如图6所示,设置基于潜在可视数据的缓存机制。在内存中设置一个缓冲区建立二级缓存机制,将潜在的需要参与三维场景绘制的数据暂时存储在缓冲区以减轻服务器的负担,提高渲染效率。随着用户对视角的调整,在连续的几帧中,视域内的瓦片块重复出现的概率较高。因此将这一类瓦片数据放在第一级缓存内可以有效地存储在邻近帧率中重复使用的瓦片概率,减少了重复调度的渲染时间。第二级缓存设计是通过gpu对相关数据的顶点、法线、图元和索引等要素进行编译与加载处理,将经过编译的瓦片数据存放于能够被gpu渲染队列快速调度的瓦片缓冲区中,从而减少因为视点的拉伸缩放而需gpu重复编译与加载的时间。gpu渲染管线、外存数据和二级缓存之间的关系如图6所示。
58.当视域变换后,根据视点判断当前范围内是否需要载入某一数据的请求,首先会
从二级缓存队列中查找相关数据,根据当前视域数据判断结果,系统指令将会依次在一级缓存队列和外存队列中继续查找,直至成功调度到相关数据后,将数据交给gpu渲染管线进行实时渲染处理,主要包括顶点、图元、片元的处理,最终输出图像。

技术特征:
1.一种加速渲染的精细化污染扩散可视化方法,其特征在于,包括:步骤1:基于气象数据文件,使用扩散模型进行污染物的大气传输扩散模拟并输出预报数据;步骤2:收集大气传输扩散模型输出的预报数据,组合污染物,得到组合文件数据;步骤3:使用地图瓦片技术展示网格地图,对地图切片,生成瓦片;步骤4:使用八叉树模型对地图的场景进行空间分割,分割数据存储至数据库中并建立索引;步骤5:设置多线程并行的数据调度机制,多线程调度机制用于瓦片的调度和图像绘制;步骤6:结合组合文件数据、瓦片和分割数据,设置提高渲染效率的基于潜在可视数据的缓存机制,渲染并输出图像。2.根据权利要求1所述的一种加速渲染的精细化污染扩散可视化方法,其特征在于,气象数据文件包括:地面观测数据文件、三维气象数据文件和高空探测数据文件,预报数据包括浓度数据、通量数据、能见度数据。3.根据权利要求2所述的一种加速渲染的精细化污染扩散可视化方法,其特征在于,步骤1中的扩散模型使用拉格朗日非稳态大气扩散模型,地面观测数据文件、三维气象数据文件和高空探测数据文件中的数据作为拉格朗日非稳态大气扩散模型的配置参数。4.根据权利要求1中所述的一种加速渲染的精细化污染扩散可视化方法,其特征在于,步骤2中组合污染物的具体步骤包括:s2.1:对预报数据进行统计分析,得到敏感点浓度、网格点浓度和时间序列网格;s2.2:对不同的污染物设置不同的数值系数,加权组合后获得新污染数据;s2.3:将新污染数据进行统计标定,得到组合文件数据。5.根据权利要求1所述的一种加速渲染的信息化污染扩散可视化方法,其特征在于,步骤3中的使用网络地图瓦片技术的具体步骤为:s3.1:将待处理的地图按照金字塔模型切成瓦片,并保存到地图服务器;s3.2:客户发送地图服务请求时,地图服务器根据请求参数,返回当前区域所在的瓦片。6.根据权利要求1所述的一种加速渲染的信息化污染扩散可视化方法,其特征在于,步骤4中的场景分割的具体步骤为:获取地图中的可视化场景整体所占的空间范围,对空间范围进行八叉树分割,将分割好的数据以二进制方式存储到数据库中并建立索引。7.根据权利要求6所述的一种加速渲染的信息化污染扩散可视化方法,其特征在于,八叉树具体结构为,八叉树每个节点表示一个正方体的体积元素,每个节点有八个子节点,这八个子节点所表示的体积元素加在一起就等于父节点的体积,中心点作为节点的分叉中心。8.根据权利要求7所述的一种加速渲染的信息化污染扩散可视化方法,其特征在于,步骤6中的多线程并行的数据调度机制为:使用包括图形绘制线程和数据调度线程并行的双线程数据调度来对空间范围中用户不同视角位置的参数进行调度,具体步骤为:s5.1:调度线程任务列表根据实时任务信息生成相应的参数请求,更新地图的空间范围中当前相机视点的位置坐标并初始化加载区域;
s5.2:根据缓冲区读写原则,判断是否需要调度相应瓦片数据加载至缓冲区,在数据加载之前将相应瓦片对象调入瓦片队列中,根据瓦片分类管理机制对瓦片进行分层管路和控制,完成对数据的调度任务;s5.3:绘制线程经过视点裁剪变化更新初始化区域,把缓冲区内视景体瓦片节点的编码和地形数据调入可视区域申请队列中;s5.4:根据视点距离判断经过遍历可视化区域内的瓦片是否需要进一步划分,若不划分则直接从缓冲区调入相应瓦片数据,若需要划分,则另外创建一个堆栈,将该瓦片压入堆栈,并进行八叉树划分,划分结束之后弹出该节点;s5.5:对于新产生的八个节点,按照逆时针重复划分步骤,直至所有节点都完全成为叶子节点;s5.6:最后根据叶子节点所在瓦片的索引信息,解析出相应的层级、行号列号等信息,并将其加载至显存中用于绘制;s5.7:当等待队列中所有的瓦片请求全部执行完成后,清空队列,同时作为下一帧开始的请求队列使用。9.根据权利要求8所述的一种加速渲染的信息化污染扩散可视化方法,其特征在于,步骤6中设置缓存机制的主要步骤包括:s6.1:在内存中设立缓冲区并建立二级缓存机制,将潜在的需要参与三维场景绘制的各项数据暂时存储在缓冲区以减轻服务器的负担;s6.2:随着用户对视角的调整,在连续的几帧中,视域内的瓦片块重复出现的概率较高,因此将这一类瓦片数据放在第一级缓存内;s6.3:第二级缓存设计是通过gpu对相关数据的顶点、法线、图元和索引等要素进行编译与加载处理,将经过编译的瓦片数据存放于能够被gpu渲染队列快速调度的瓦片缓冲区中。

技术总结
本发明公开了一种加速渲染的精细化污染扩散可视化方法,该方法包括步骤1:基于气象数据文件,使用扩散模型进行污染物的大气传输扩散模拟并输出预报数据;步骤2:收集大气传输扩散模型输出的预报数据,组合污染物,得到组合文件数据;步骤3:使用地图瓦片技术展示网格地图,对地图切片,生成瓦片;步骤4:使用八叉树模型对地图的场景进行空间分割;步骤5:设置多线程并行的数据调度机制;步骤6:结合组合文件数据、瓦片和分割数据,设置提高渲染效率的基于潜在可视数据的缓存机制,渲染并输出图像,本申请实现了计算提速优化,建立了高效的缓存机制,并且在数据效果展示中采用了多线程绘制方式,增强了展示效果。增强了展示效果。增强了展示效果。


技术研发人员:杨昊 王杰 杨志强 杨探坤 盛黎 文武
受保护的技术使用者:成都信息工程大学
技术研发日:2023.03.20
技术公布日:2023/8/9
版权声明

本文仅代表作者观点,不代表航空之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)

飞行汽车 https://www.autovtol.com/

分享:

扫一扫在手机阅读、分享本文

相关推荐