System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本专利技术涉及气象仿真领域,特别涉及一种基于气象环境的三维实时仿真方法、装置、设备及存储介质。
技术介绍
1、气象环境的三维实时仿真技术在气象研究和预测中具有重要意义。基于数值天气预报的结果,应用虚拟现实技术可以模拟显示未来的大气环境,实现多维视角和全方位观察。这为防灾减灾、大气环境模拟与预测、重大活动指挥推演等气象服务保障提供了新的技术手段。
2、随着webgl技术的不断成熟,三维可视化在web应用中的需求也日益增长。然而,三维空间插值渲染通常只能在某一水平方向上进行,要实现不同高度的气象数据在三维场景中的渲染,成为webgl技术应用的关键挑战。
3、由于气象环境中的要素信息复杂多变,并且在不同地貌环境中产生的影响也不同,现有的气象仿真技术主要依赖热力图和着色器程序来实现气象要素的三维空间插值渲染。热力图通过将气象要素的数据转换为颜色,实现三维空间插值渲染;着色器程序则通过编写代码实现复杂的三维空间插值渲染效果。现有技术的缺点在于实现逻辑较为复杂,且难以支持数据的实时过滤渲染以及水平和垂直剖面的可视化渲染能力。
4、有鉴于此,提出本申请。
技术实现思路
1、本专利技术公开了一种基于气象环境的三维实时仿真方法、装置、设备及存储介质,旨在解决现有技术难以支持数据的实时过滤渲染以及水平和垂直剖面的可视化渲染能力。
2、本专利技术第一实施例提供了一种基于气象环境的三维实时仿真方法,包括:
3、获取气象数据,根据所述气象数据创建二
4、对所述二维纹理进行预处理,将预处理后的所述二维纹理保存在第一数组和第二数组内,并基于所述第一数组和所述第二数组生成所述气象数据的三维纹理,具体为:将所述二维纹理数据进行归一化处理,以使得所述二维纹理数据的范围在0-255之间,其中,所述二维纹理数据包括角度数组、水平拆分数组、深度拆分数组,创建所述第一数组用于保存归一化后的数据的整数部分,创建所述第二数组用于保存归一化后的数据的小数部分;创建用于传入第一数组的第一三维纹理,创建用于传入第二数组的第二三维纹理,根据所述第一三维纹理和所述第二三维纹理生成所述气象数据的三维纹理;
5、将所述气象数据的三维纹理输入片元着色器,以获取顶点位置和视点位置,基于所述顶点位置和视点位置生成视点对顶点的射线,并在片元着色器内生成视点对顶点的射线与所述气象数据的三维空间的交点范围;
6、遍历所述气象数据的三维空间的交点范围的分层点,对所述气象数据的三维空间进行体渲染。
7、优选地,所述获取气象数据,根据所述气象数据创建二维纹理,具体为:
8、配置所述气象数据的最小值、最大值,并指定图例颜色数组中的比例和颜色;
9、根据指定图例颜色数组中的比例和颜色来计算线性渐变色带,并根据所述最小值和所述最大值计算数据值对应的颜色值;
10、基于所述线性渐变色带和所述颜色值创建二维纹理。
11、优选地,所述基于所述顶点位置和视点位置生成视点对顶点的射线的表达式为:
12、vdirection=position-vorigin
13、其中,position为顶点位置,vorigin为视点位置,vdirection为视点对顶点的射线。
14、优选地,所述在片元着色器内生成视点对顶点的射线与所述气象数据的三维空间的交点范围,具体为:
15、调用hitbox函数,并利用逆向射线法计算视点对顶点的射线与所述气象数据的三维空间的交点范围,交点范围包括:正方体的最小和最大边界、射线方向的倒数、以及射线与边界的交点参数。
16、优选地,在遍历所述气象数据的三维空间的交点范围的分层点,对所述气象数据的三维空间进行体渲染之前,还包括:
17、将三维纹理的坐标转换为实际的高度值,遍历深度拆分数组以确定所述高度值所在的深度区间;
18、计算所述高度值在深度区间中的相对位置,返回所述三维纹理的z坐标。
19、优选地,所述遍历所述气象数据的三维空间的交点范围的分层点,对所述气象数据的三维空间进行体渲染,具体为:
20、确定所述视点对顶点的射线起点和终点,并计算分层步长并初始化颜色;
21、遍历起点和终点之间的分层点,计算每个分层点的坐标并转换为真实纹理的z坐标;
22、根据真实纹理的z坐标从纹理中获取对应的颜色,调用颜色混合算法将当前颜色和新采样到的颜色混合。
23、本专利技术第二实施例提供了一种基于气象环境的三维实时仿真装置,包括:
24、二维纹理创建单元,用于获取气象数据,根据所述气象数据创建二维纹理,其中,所述二维纹理用于存储从数值到颜色的映射关系;
25、三维纹理生成单元,用于对所述二维纹理进行预处理,将预处理后的所述二维纹理保存在第一数组和第二数组内,并基于所述第一数组和所述第二数组生成所述气象数据的三维纹理,具体用于:将所述二维纹理数据进行归一化处理,以使得所述二维纹理数据的范围在0-255之间,其中,所述二维纹理数据包括角度数组、水平拆分数组、深度拆分数组,创建所述第一数组用于保存归一化后的数据的整数部分,创建所述第二数组用于保存归一化后的数据的小数部分;创建用于传入第一数组的第一三维纹理,创建用于传入第二数组的第二三维纹理,根据所述第一三维纹理和所述第二三维纹理生成所述气象数据的三维纹理;
26、交点范围生成单元,用于将所述气象数据的三维纹理输入片元着色器,以获取顶点位置和视点位置,基于所述顶点位置和视点位置生成视点对顶点的射线,并在片元着色器内生成视点对顶点的射线与所述气象数据的三维空间的交点范围;
27、体渲染单元,用于遍历所述气象数据的三维空间的交点范围的分层点,对所述气象数据的三维空间进行体渲染。
28、本专利技术第三实施例提供了一种基于气象环境的三维实时仿真设备,包括存储器以及处理器,所述存储器内存储有计算机程序,所述计算机程序能够被所述处理器执行,以实现如上任意一项所述的一种基于气象环境的三维实时仿真方法。
29、本专利技术第四实施例提供了一种计算机可读存储介质,其特征在于,存储有计算机程序,所述计算机程序能够被所述计算机可读存储介质所在设备的处理器执行,以实现如上任意一项所述一种基于气象环境的三维实时仿真方法。
30、基于本专利技术提供的一种基于气象环境的三维实时仿真方法、装置、设备及存储介质,通过先获取气象数据,根据所述气象数据创建二维纹理,接着,对所述二维纹理进行预处理,将预处理后的所述二维纹理保存在第一数组和第二数组内,并基于所述第一数组和所述第二数组生成所述气象数据的三维纹理,再接着,将所述气象数据的三维纹理输入片元着色器,以获取顶点位置和视点位置,基于所述顶点位置和视点位置生成视点对顶点的射线,并在片元着色器内生成视点对顶点的射线与所述气象数据的三维空间本文档来自技高网...
【技术保护点】
1.一种基于气象环境的三维实时仿真方法,其特征在于,包括:
2.根据权利要求1所述的一种基于气象环境的三维实时仿真方法,其特征在于,所述获取气象数据,根据所述气象数据创建二维纹理,具体为:
3.根据权利要求1所述的一种基于气象环境的三维实时仿真方法,其特征在于,所述基于所述顶点位置和视点位置生成视点对顶点的射线的表达式为:
4.根据权利要求1所述的一种基于气象环境的三维实时仿真方法,其特征在于,所述在片元着色器内生成视点对顶点的射线与所述气象数据的三维空间的交点范围,具体为:
5.根据权利要求1所述的一种基于气象环境的三维实时仿真方法,其特征在于,在遍历所述气象数据的三维空间的交点范围的分层点,对所述气象数据的三维空间进行体渲染之前,还包括:
6.根据权利要求1所述的一种基于气象环境的三维实时仿真方法,其特征在于,所述遍历所述气象数据的三维空间的交点范围的分层点,对所述气象数据的三维空间进行体渲染,具体为:
7.一种基于气象环境的三维实时仿真装置,其特征在于,包括:
8.一种基于气象环境的三维实时
9.一种计算机可读存储介质,其特征在于,存储有计算机程序,所述计算机程序能够被所述计算机可读存储介质所在设备的处理器执行,以实现如权利要求1至6任意一项所述一种基于气象环境的三维实时仿真方法。
...【技术特征摘要】
1.一种基于气象环境的三维实时仿真方法,其特征在于,包括:
2.根据权利要求1所述的一种基于气象环境的三维实时仿真方法,其特征在于,所述获取气象数据,根据所述气象数据创建二维纹理,具体为:
3.根据权利要求1所述的一种基于气象环境的三维实时仿真方法,其特征在于,所述基于所述顶点位置和视点位置生成视点对顶点的射线的表达式为:
4.根据权利要求1所述的一种基于气象环境的三维实时仿真方法,其特征在于,所述在片元着色器内生成视点对顶点的射线与所述气象数据的三维空间的交点范围,具体为:
5.根据权利要求1所述的一种基于气象环境的三维实时仿真方法,其特征在于,在遍历所述气象数据的三维空间的交点范围的分层点,对所述气象数据的三维空间进行体渲染之前,还...
【专利技术属性】
技术研发人员:游琴,林泽鹏,陈俊杰,沈杰,路彩虹,
申请(专利权)人:厦门天卫科技有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。