APP下载

基于体绘制的特征区域三维云可视化

2019-07-01孙吉刚何晓曦欧阳文劲胡顺尧

科技创新与应用 2019年14期

孙吉刚 何晓曦 欧阳文劲 胡顺尧

摘  要:对于常规气象数据分析来说,二维平面分析是最普遍的方式之一,但在二维模式下的局限性又無法真实反应三维空间中的气象信息。以“天鸽”台风的二维数据集为例,利用其数据特性将分析模式由二维云图提升到三维云可视化的分析模式上。在文章中利用体绘制实现三维云的创建,在当前比较传统的体绘制基础上对绘制效率、三维云阴影渲染、气象数据集分析模式三个方面改进。

关键词:三维云;体绘制;Slabs methods;颜色映射函数

中图分类号:TP391        文献标志码:A         文章编号:2095-2945(2019)14-0018-03

Abstract: For conventional meteorological data analysis, two-dimensional plane analysis is one of the most common methods, but the limitations of two-dimensional mode cannot truly reflect the meteorological information in three-dimensional space. Taking the two-dimensional data set of Typhoon Hato as an example, the analysis model is upgraded from two-dimensional cloud image to three-dimensional cloud visualization analysis model by using its data characteristics. In this paper, volume rendering is used to create three-dimensional cloud. Based on the traditional volume rendering, the rendering efficiency, three-dimensional cloud shadow rendering and meteorological data set analysis model are improved. Keywords: three-dimensional cloud; volume rendering; Slabs methods; color mapping function

1 介绍

目前的气象可视化研究中,云可视化是最热门的研究方向之一。在这个研究过程中,衍生出了很多不一样的可视化方法,我们在图形学三维可视化数据上将其分为两大类,一种基于模拟数据的云可视化,另一种是基于采集数据的云可视化。

在模拟数据中我们一种方法是从云的物理过程[1]出发,近似的模拟云生成和生长过程;另外一种是不考虑复杂的云生成过程,只侧重于云自身的外观属性,一般使用纹理[2]、粒子、分形等技术实现。虽然模拟数据能够可视化出十分逼真的云景,但是对于气象学中我们无法使用其结果并对其进行分析。所以我们在第一种模拟数据的绘制基础上,使用基于气象采集数据的三维云可视化方法[3],它不仅可以反应真实的天气状况,而且对天气预报产品和气象专家分析都具有重要的意义。

而在分析中,云图又是作为最重要的气象数据来源之一,也是模拟过程中不可或缺的要素之一。对云图的纹理特征研究也是气象预报的主要手段[4]。在人们长期的观察中总结出了在目视区区分不同云类的一些判断方法,例如形状、纹理、颜色、轮廓和范围[5]等。在实际的应用中,如卷云具有纤维结构,纹理均匀;积云由水滴组成,纹理多斑点,不均匀等一些特征。目前来说云量的定量话分析研究中越来越多,在这些方法中,纹理特征提取[6][7]对于云类的识别效果最好,但是这些仅限于二维云图场景的分析。

针对这种二维分析模式的局限性,在过去的发展中提出了三维云的可视化方法,以解决其模拟问题。Wang[10]等人也采用了类似的方法由气象数据生成大范围三维云景,这种方法可以得到真实反映天气情况的三维云景可视化效果;Blinn[11]在研究云对光的反射特性和透射特性的基础上提出了简单的光照模型进行云的三维模拟,该模型只考虑了云粒子对光的单次散射,忽略了多次散射效果,使其产生的三维云没有真实云银色的边缘解决对应于三维空间的分析模式。

2 方法

目标是通过ray-AABB的应用中提升三维云体绘制的效率,在当前比较直接的体绘制方法,从视点发射射线的方式,极其的浪费性能,所有的射线在行进过程中其积分步长和积分步数固定,所以在视点到体素的过程中浪费计算资源。所以,我们在每次积分过程之前,进行预计算,剔除其多余积分过程,计算积分区间,以此来减少对体素的采样过程。

2.1 指数雾

我们开始评估射线穿过Volume的情况,计算射线行进过程中透明度值的返回,即透明度采样。要得到光线投射过程中的透明度,必须已知每个可见点的密度或者厚度。在这里我们不考虑密度和颜色的变化,假设其恒定不变,则需要计算在光线终止之前的总长度。两个条件,射线到达积分上限和透明度采样为1,终止其射线行进。

所以由Beer-Lambert定律得出,通过体纹理的射线透射率定义为:

(1)其中T为透射率,t为行进距离。可以看出来指数雾和透射率公式很类似,因为他们就是一样的,只是Beer-Lambert的实际应用。我们继续来构建体绘制,以上提示需要我们计算出射线行进每个点的体素厚度,也就是行进距离,与透射率函数一起使用,来近似模拟射线在云中穿透和阻挡。为了对体素的透明度进行采样,每条射线都会采取这几个步骤,穿过体纹理,并且在每个点读取体纹理的值。

在体绘制中,不可以直接进行绘制,因为对于体数据需要一个长方体包围盒作为纹理载体。射线定长行进在包围盒中采样体数据,需要依次来测量射线在介质内行进的距离,如果射线在行进过程中位于介质内,则会将步长累加到行进距离中;如果在外,则不会进行任何操作。而且我们还要保证射线在盒子中的行进效率和采样的精确度。

2.2 射线包围盒

指数雾切片实验中,我们始终对于射线的采样点都维持在体纹理空间(0-1)中,所以当我们在射线行进到盒子边缘时,还会继续的行进来完成固定的采样步数。所以,这里检查射线是否退出采样空间,需要自适应预先计算适合的采样步数和步长。

在目前的情况中,我们使用长方体盒子为包围盒,这样我们可以使用射线和盒子形成的交点来进行盒子厚度、入射点和出射点的计算。在载体的选择中,虽然使用球体能够更加快速的进行计算,但是在像素片段的覆盖上,盒子比球体更加的灵活和区域现实规律。轴向包围盒计算方法也就是我们所说的Ray-AABB检测算法,也叫做Slabs方法。它的核心理念是发生区间交叠,射线就与平面相交,条件便是射线进入平面处的最大值小于射线离开平面处的最小值。求取射线进入平面的最大值以及射线离开平面出的最小值,通过射线与平面相交的参数方程所以我们以最小区间和最大区间确定其射线相交区域,计算盒子交点,能够精确的计算每条射线,并计算行进步长。而且通过这种方式的运算还能够计算出射线起始点在盒子内部的情况,以此来避免前面出现的摄像机位于盒子内部无法绘制的情况。在Ray-AABB算法改进之后,在我们绘制的积分过程中,对于射线行进距离进行了精确的控制,并且在积分步长上也计算出了最效率的积分区间。

3 应用

随着数据采集领域的快速发展,以及在具有交互式帧率的现代化工作站上执行高级可视化的可能性,体数据的重要性将继续迅速增长。数据集可以通过CT、回声定位等技术进行捕捉,也可以通过物理模拟等实验产生数据。以上提到的一系列技术体现了体数据在各行各业中都起到了非常重要的作用。它们通常以切片或者标量值得形式存储,所以我们对于原数据集来说必须转换为我们实验所用得数据。这里我们设计了两种产品,一种是基于切片的实验产品,另一种是使用标量值的产品。

3.1 “切片云”体数据集

在图2中我们看到了平面上云的体绘制结果,还是比较形象。它的大小为170*170*144。我们增大积分步长,降低积分步数时,随之产生明显的切片纹理;另外处于盒子内部时无法进行渲染。这是射线行进步长和体数据切片所产生的冲突,是一种摩尔图案,是射线和盒子表面行进在体纹理中所产生的。我们通过对于起始位置的控制,来对齐平面,这样我们我们可以在较大的积分步长情况下进行额外的改进来提升其绘制效果。如图2结果图在切片问题出现的情况下,相同步长和积分次数的情况下能够保持相一致的结果。

3.2 气象数据集可视化

在气象学的数据使用中,采用欧洲中期天气预报中心的GRIB2格式的雷达回波数据(即雷达向空中发射出电磁波时,遇到降水粒子,会部分被反射回来,通过一定的计算方法,便可获知降水粒子的密度及直径大小)时间为2017年8月21日,区域为南纬10°~北纬60°、东经60°~东经130°的亚洲区域。

所以我们按照气象数据采集的空间区域划分,以采集的单位区域对应体纹理中体素,将其云混合物百分比值作为体素值。其排列原理是按照经纬网格划分,与体素空间位置一一对应,由此来产生百分比值和体数据的对应关系,数据采用281*361*137的亚洲区域格点数据。

4 实验结果和结论

当前所有实验的运行环境是在Intel i7 4720(HQ)、8G内存、Geforce GTX 960M上运行,其运行的性能为,rendering time 最低16ms,最高66ms,平均33ms,均为实时运行统计。在通过对当前比较热门的气象可视化方法分析之后,通过对传统体绘制技术进行改造,利用现有的“天鸽”数据集作为数据样本,实现了“天鸽”台风三维云的可视化。在经典的体绘制光线投射算法中使用基于“Slabs methods”边界检测方法,在射线与渲染对象的交叉计算中,很大程度上提升了计算效率,避免了不必要的计算;为了体绘制的渲染效果更加真实,在視点单一方向的射线积分过程上加入了“directional point”光源方向上的阴影计算,得到了贴近真实的阴影,增加了可视化的质感;在三维云中加入颜色映射函数的分析模式,得到了非常好的识别效果,通过对各个值区间的单一过滤和多区间的混合模式,我们能够对很多的数据进行定性和定量的分析,很大程度上增加了气象信息的识别度。

在这里我们也采取了多个时段的数据集,但是在时间间隔上会产生一定的空间跳跃,不会得到很流畅的三维云流动的场景,下来我们会通过对区间云数据集的分析,利用其他的一些相关技术来实现三维云流动可视化。

参考文献:

[1]Harris M J . Real-time cloud simulation and rendering[M]. The University of North Carolina at Chapel Hill, 2003.

[2]Shimada Y, Shinya M, Shiraishi M, et al. Real-time rendering of dynamic clouds[C]// Acm Siggraph. 2007.

[3]李晓望,王文珂,李思昆.基于气象卫星数据的三维云景可视化方法[J].系统仿真学报,2013,25(9):2055-2059.

[4]徐江斌,赵健,杨超,等.云图数据驱动的三维云景可视化[J].图学学报,2010,31(3):68-75.

[5]陈渭民.卫星气象学[M].北京:气象出版社,2003:196-220.

[6]寿绍文,张寿,赵励,等.暴雨过程的卫星云图纹理特征研究[J].南京气象学院学报,2005,28(3):337-343.

[7]郑君杰,黄峰,张韧,等.基于纹理与分形理论的气象卫星云图目标物识别[J].气象科学,2005,25(3):244-248.

[8]Riley K, Ebert D, Hansen C, et al. Visually Accurate Multi-Field Weather Visualization[C]// IEEE Visualization. 2003.

[9]Hansen, Charles D. Efficient rendering of atmospheric phenomena[M]// Efficient Rendering of Atmospheric Phenomena. 2004:375-386.

[10]Wenke W, Yumeng G, Min X, et al. Automatic Generation of Large Scale 3D Cloud based on Weather Forecast Data[C]// International Conference on Virtual Reality & Visualization. 2012.

[11]Guo-Jun M A . Volume classification and GPU-accelerated volume rendering of Phong optical model[J]. Computer Engineering & Design, 2010, 31(7):1529-1532.