基于结构化粒子模型的云可视化应用

时间:2022-08-21 06:18:08

基于结构化粒子模型的云可视化应用

摘要:

云数据的三维可视化模拟一直是计算机图形学和气象科学领域的研究热点。提出了基于WRF模式数据的建模与渲染技术,以实现真实云数据三维可视化模拟。针对粒子系统建模复杂、实时性差的问题,首先通过计算云粒子之间的相互关系建立结构化粒子模型,实现WRF云数据的建模;然后利用光照模型和公告牌技术对建模粒子进行光照渲染和三维模拟,同时结合Imposter技术提高纹理绘制速度和效果。实验仿真结果验证了该方法在提高云数据的建模与渲染速度,提高云三维可视化的逼真度方面的有效性。

关键词:

WRF模式;结构化粒子系统;纹理映射;公告牌技术;三维可视化

0引言

近年来,通过计算机模型和图形算法模拟云、流水、大气、雨、雪等具有不规则的外形和丰富的表面细节的自然物体,是计算机图形学研究的热点和难点。其中云作为天气系统的一个组成部分,其复杂的视觉和物理特性引起了气象学家,物理学家的关注,具有模拟的重要性。WRF(Weather Research and Forecasting)模式云数据具有反映大气运动规律的云物理参数,对其进行模拟可以直观地获得云结构和特征。由于云的结构复杂、动力学特征变化不定以及光照效果特殊等原因,使得人们很难用精确的方法及模型去描述它,更加不容易真实地展示三维云场景。从图形学的角度看,云的无确定边界、无确定表面、复杂光照效果等特性,使传统的几何建模方法不适用于云的建模。因此,WRF云数据的模拟一直成为气象应用领域中最具有挑战性的研究方向之一。

1相关研究

在计算机上模拟三维云,最重要的是模拟结果要有真实云的规律和特性。为了得到逼真的效果,研究学者们提出很多种建模方法,这些建模方法一般分为两类:基于个体生长的方法和基于物理过程的方法。基于个体生长的方法没有考虑云生成的物理过程,主要是为了获得云的视觉特性,增强云的真实感。1983年,Reeves[1]提出用粒子系统对云、火等模糊物体建模,取得了不错的视觉效果。1985年,Gardner[2]引入简单的启发式方法,主要利用着色和纹理映射的平面和曲面建模,通过调整纹理函数的参数产生不同类型的纹理,并将其映射到椭球体上生成三维云图像。1993年,Nishita等[3]提出了云的二维分形建模方法,通过映射分形图像描述云的密度分布,并将这些图像映射到一组不同高度的球面上实现模拟。1998年,Dobashi等[4]完善Nagel提出细胞自动机模拟方法,成功地生成具有较好真实感的云。Perlin提出基于Perlin噪声的云模拟,通过对噪声的不同操作生成随机且连续的密度数据来填充云。这些建模方法虽然从视觉上模拟云的外观效果,但是动态云的细节方面难以实现。

基于物理过程的方法,是直接从生成云的物理因素出发。云属于流体的一种,基于物理模拟流体运动,只需要更改控制方程的参数和模拟的初始条件等,并在此基础上考虑云的热力学规律和水平衡规律,就能产生较好的模拟效果。典型的有Jos Stam的流体模型,通过求解可压缩连续流体的纳维斯托克斯(NavierStokes,NS)方程来模拟云和烟雾的动态变化情况,并且可以交互式控制云或烟雾的变化情况[5-6]。Harris等在2002年引用NS方程进行计算,但是计算量太大,求解过程很困难。2003年,Harris等又提出了一种快速生成算法,使用GPU技术,利用图形显卡处理器的特点提高了计算速度。此处文献列表中没有标注他的两篇文献,故需要删除;或者在文献列表中补充他的这两篇文献,书写格式如修改规范。Miyazaki[7]引入耦合映射网格(Couple Map Lattice)对方程进行简化,降低了计算代价。徐江斌等[8]改进元胞自动机建模方法,模拟了水汽从聚集到凝结至相变的完整物理过程,并采用GPU技术提高建模速度。

通过分析以上建模方法及其存在的不足,为了提高云数据三维可视化的速度,本文通过计算云粒子之间的相互关系构建结构化粒子系统并用于数据建模,以提高建模速度;然后利用光照模型,Billboard技术及Imposter技术实现云的色彩渲染和三维效果。实验结果验证了本文方法的有效性。

2基于结构化粒子系统建模

2.1结构化粒子系统

粒子系统的基本思想就是采用许多具有简单几何形状的粒子作为最基本的元素,每个粒子都有一个生命周期,分别为“产生”、“运动”、“生长”和“死亡”四个阶段,而且各自是随机分布的[9]。但是粒子系统采用大量的、离散的粒子模拟物体,导致实验的实时性受到影响,实验速率和真实性之间的平衡很难把握,所以需要对存储空间和计算时间进行优化。

为了解决以上问题,本文引入“结构化”的概念,通过计算粒子与粒子之间的相似性或相互关系,建立结构化粒子模型。其基本思想是:遍历所有粒子,查询与基准粒子具有相似关系的粒子,将这些粒子归为一类,作为一个结构化粒子,然后对结构化粒子组成的粒子系统进行渲染。为了表达粒子之间的相似关系,引入近似代数中的一些概念来完成“结构化”的定义。

首先,粒子相似关系的定义[10]是:设R≠是否应该为空集符号,请明确。是粒子系统的所有元素的集合,定义任意两个粒子之间的相似关系为ω,如果ω满足自反性和对称性,那么称粒子x,y在属性∈Sa∈A(SA为粒子系统的属性集)相似 ω(a(x),a(y))成立。为了更好地表示两个粒子之间的相互关系,本文设定度量函数λa:R×RR是[0,1]进行度量,从而可以确定两个粒子之间的相似程度。但是对于各个不同的数值,可以根据属性的各自特征给出不同的定义,以更好地符合实际情况。下面是3种度量的方法。

1)当a∈A为连续值属性时:

否应该为希腊字符α,请明确。同理,下面式2、3中,包括后面的一段描述段落中,是否也是如此修改,请明确。回复为“a”

2)当a∈A为离散的、有序的、有限个数的数值属性时,若v1≤v2≤…此处是否应该为“…”?≤vi,则:

3)当a∈A为非数值符号属性时:

其中P(a)表示为某条件下的概率取值。

除了满足以上度量条件,还需要对粒子之间的关系有一定的约束,这里给出约束函数的定义[10]:如果任意两个粒子对象x,y相似ωA(x,y) h(A,λa(a(x),a(y)))满足给定的约束条件,其中h()为考虑X与Y的相似性,各个属性a∈A所应满足的条件为相似的整体约束函数。对于整体约束函数h()的定义应视实际情况而定,这里给出以下原则:a∈A,λa(a(x),a(y))≥σ(a),其中σ(a)∈[0,1]为属性a的取值被认为相似时所设定的最低阈值。这个段落中的a,是否应该为希腊字符α,请明确。

2.2模型的构建

根据结构化粒子系统的基本步骤,生成云的主要流程如下:

1)读取WRF云数据。从数据中获取云的位置、半径及边界分布情况。

2)初始化粒子。根据云的物理特征为每一个粒子赋予相关属性,再按照WRF数据中云的边界分布对其进行填充。

3)结构化粒子的生成。以第一个粒子开始作为基准遍历所有粒子,查找与第一个粒子具有相似关系的粒子并标记出来,将这些粒子归为一类,看作一个结构化粒子;然后从未标记的粒子中随机选取一个作为基准,在其余未标记的粒子中查找,生成结构化粒子。以此类推,最后生成由结构化粒子组成的结构化粒子系统。

4)判断粒子的生命周期是否终结。如果粒子的生命周期结束,粒子回到初始化位置,重新对粒子初始化;否则进入下一步。

5)保存现存的结构化粒子并根据下文讲述的渲染技术进行渲染,绘制出云的图形。

最终算法实现过程如图1所示。

图片

图1结构化粒子系统流程

3云粒子渲染

3.1光照模型

粒子系统建立了云的模型,但是云粒子的最终色彩还需要进一步处理。其中光照对云的颜色起到了关键性的作用。光照模型能够表现出云与光之间的物理过程,对整个模型的绘制后的真实性和渲染的速度方面影响很大。那么要增强模拟云的真实感,必须要考虑云与阳光之间的相互关系,要考虑光的吸收、散射以及消失。

因为云中的辐射传输方程式已知的,那么最直接的做法就是对这些方程进行数值求解,但是求解方程的计算非常复杂,而且直接求解方程还会影响到整个系统的实时性,所以要对其进行简化。针对云本身的特性,找出那些对最终的渲染效果没有影响或者影响不大的因素,并在模拟过程中忽略掉,以达到简化计算的目的。

Dobshi等[11]提出的光的单一散射光照模型,这个方法成功地简化了辐射传输方程。后来Harris[12]对其模型又进行了改进,提出了多重前向散射光照模型,即只计算发生在光源方向的散射,简化后的公式[12]如式(4):

上一篇:移动数据库缓存模型研究 下一篇:宣纸上的墨水扩散模拟