应用粒子系统构建云雾模型

2012-08-08 09:51郭烨旻
长春师范大学学报 2012年12期
关键词:粒子系统透明度纹理

郭烨旻

(吉林省国际商务学校,吉林长春 130012)

粒子系统(Particle System)是Reeves在1983年提出的利用粒子模拟自然场景的一种技术,多用于模拟雨、雪、水流、爆炸、烟雾等场景[1]。由于这些场景都是根据物理模型计算出来的,也可以说,粒子系统是基于物理原理的一种建模方法。在本文中首先使用粒子系统建立云雾的三维框架模型,在形成的框架中使用过程纹理函数对云模型进行纹理映射,最后应用公告板技术完成云模型的绘制。

1 使用粒子系统建立云的3D框架

应用粒子系统将景物定义为由成千上万个不规则并且是随机分布的粒子组成,每个粒子都有一定的生命周期,每时每刻都在不断地运动和改变形态,由诸多粒子的集合而不是个别粒子形成了景物的整体形态和特征以及动态变化[2]。

通过控制粒子的运动将云的扩散以及气流对云的作用表示出来,在这一变化发生的过程中由粒子的分布规律以及浓度属性得到总的粒子分布浓度场。其中粒子的主要属性为:粒子的速度、位置、加速度、作用半径以及浓度函数。粒子的作用半径和浓度函数之间的关系如图1所示。

图1 半径和浓度函数之间的关系

其中粒子的作用半径为R,通过系统设置浓度域值p,通过解方程f(R,t)=p,得以确定粒子的作用范围R。现实生活中,自然界的云其实是由无数个液态的小水珠集合在一起形成的,所以在进行云模型架构时使用粒子代替小水珠,模型的构建过程如图2所示。

图2 模型的构建过程

2 过程纹理函数对纹理的映射

应用根据云的物理模型制作的纹理贴片代替生成的粒子,该纹理具有云粒子的大小、形状、透明度、颜色等特性。而且根据场合和云精细程度的需要,使用过程纹理贴片代替一个或多个粒子,用稍微复杂的贴片可以减小粒子的数目而达到相同的效果,以提高性能。粒子纹理可以根据算法生成,也可以使用现有的图像[5]。在构建云内的粒子时,由于粒子过多,不能采用OpenGL提供的点或者三维型体来代表微小的粒子,因为系统性能无法承受,而且alpha混合的时候也不美观。本文采用纹理映射和Billboard技术来实现云的绘制。

在具体的云纹理采样过程中应用二维高斯正态分布函数公式:

生成的云雾纹理定义在水平直角坐标系[-1.0,1.0]×[-1.0,1.0]区间内,G(u,v)用来计算点(u,v)处的灰度值,σ为高斯分布的方差。在公式中引入中心峰值调制系数ρ,其取值范围是[0,2πσ],根据实际模拟经验当峰值为0.4时最为接近自然效果,同时ρ=σ。

3 使用公告板技术完成绘制

公告板 (Billboard)技术是一项非常实用的技术,它可以用一种简单的方式来完成很多特别的效果。公告板技术的原理其实很简单,就是使用两个三角形组成的矩形来显示一个位图,在显示过程中这个矩形面板根据摄像机的观察角度和位置而变化。粒子在三维的空间中运行,其位置分布也是三维的,但是由于通常的纹理映射技术都是二维的,所以当视点在场景当中运动时,可能由于相互角度的关系而发生失真现象,当视线平行于纹理映射平面时,甚至完全看不到物体的存在。我们应用公告板技术使生成的过程纹理跟随视角变化,利用二维的纹理函数模拟三维的渲染效果[5]。

在粒子填充完以后,根据云图可以进一步调整云的效果。因为粒子的属性直接影响到云的效果,粒子的大小直接关系到云的分辨率,当视点较近时,粒子尺寸应该较小,而当视点较远时,粒子尺寸较大。粒子的密度直接影响到云的厚度和颜色,而颜色和透明度则间接反映了光照程度,因此通过调整粒子的密度和、颜色及透明度就可表现出光照的影响。在绘制过程中,可以通过随机地控制与粒子有关的这些参数来增加真实感。为了更好地模拟云彩效果,我们还可控制云团边缘的半透明度比中心的半透明度高,这样,在云粒子集中的地方,会呈现出亮白色;还可采用色彩融和的技术,把云粒子本身的颜色和天空面的背景颜色很好地融和起来,在云粒子分散的地方,会略微呈现出天空的背景面,这样就能得到较为真实的效果。

4 算法实现

使用java构建粒子系统,应用OpenGL对生产的系统进行渲染具体步骤如图2所示:

图2 粒子系统生成步骤

5 结论

本文应用粒子系统与纹理过程函数相结合的方法对自然景物中的云雾模型进行模拟,在具体的模型绘制过程中应用纹理映射和Billboard技术来实现,从而提出了一种多种建模方式相结合的模拟不规则物体的全新方法。

[1]Reeves T.Particle systems—a technique for modelinga class offuzzyobjects[J].ACMTransactions on Graphics,1983,2(2):91-108.

[2]Harris MJ.Real-time cloud simulation and rendering[D].Carolina:UniversityofNorth Carolina,2003.

[3]袁霞,张玉啄.粒子系统方法及其应用[J].云南师范大学学报:自然科学版,2003(3):14-16.

[4]张芹,吴慧中,张健.基于粒子系统的建模方法研究[J].计算机科学,2003(8):144-146.

[5]马继峰,彭晓源,冯勤,等.三维特殊效果库的研究与实现[J].光电技术应用,2003(4):34-38.

[6]罗玉玲.粒子系统与纹理映射相结合模拟礼花的研究[J].电脑知识与技术,2004(20):70-72.

[7]魏海燕.虚拟制造技术的相关概念及其应用[J].机械工程师,1999(9):1-2.

猜你喜欢
粒子系统透明度纹理
利用GPU加速的粒子系统全球流场可视化系统设计与实现
基于BM3D的复杂纹理区域图像去噪
使用纹理叠加添加艺术画特效
中国FTA中的透明度原则
UE 4粒子系统与外部数据通信研究
TEXTURE ON TEXTURE质地上的纹理
消除凹凸纹理有妙招!
股权结构与信息透明度相关性的实证研究
提高上市公司会计信息透明度的对策
提高基金会透明度 促进慈善事业发展