APP下载

基于通用粒子系统模型的虚拟战场特效设计

2014-07-13徐才云乔有金孔俊

电脑知识与技术 2014年5期
关键词:粒子系统仿真

徐才云 乔有金 孔俊

摘要:该文总结了基于粒子系统的战场特效仿真方法,通过对粒子系统建模过程的分析,抽取战场特效的共同特性,设计了一个由粒子发射器、粒子、属性修改器和渲染器组成的通用粒子系统模型。并通过该模型对虚拟战场的常见特殊效果进行仿真。

关键词:粒子系统;虚拟战场;特效;仿真

中图分类号:TP18 文献标识码:A 文章编号:1009-3044(2014)05-1119-03

The Designation for Virtual Battlefield Special Effect Based on General Particle System Model

XU Cai-yun, QIAO You-jin, KONG Jun

(Armored Force Institute of PLA, Bengbu 233050, China)

Abstract: Simulation methods of virtual battlefield special effect base on general particle system model are concluded in this article. Through analyzing process of particle system modeling and extracting common characters of particle system, an particle system model composed of particle emitter, particle, attribute modifier and renderer. Some special effects of virtual battlefield are simulated through this model.

Key words: particle system; virtual battlefield; special effect; simulation

粒子系統用一套完全不同于以往造型、绘制系统的方法来构造和绘制场景,能够充分体现不规则物体的动态性、随机性和离散性,被公认为是模拟不规则物体最为成功的一种图形生成算法。烟雾、爆炸、火焰、闪光等战场特效,都可以很方便的粒子系统来模拟。然而,如果对每一种战场特效都使用粒子系统单独建模实现,会造成大量的人力物力和资源的浪费。为此,该文设计了一种基于虚拟战场特效的通用粒子系统模型,对虚拟战场环境中的多种战场特效,只需要简单地修改和设置相关的参数,就能够实现对多种特效的仿真。

1 粒子系统相关定义

用状态空间法对粒子、粒子映射和粒子系统描述如下[1]:

1)粒子:一个实数域内具有n个属性的向量。用符号表示为:

[Pn={A1,A2...Ai...An|n>2,n∈I}]

其中[Pn](Particles)表示粒子,[A1,A2...Ai...An](Attributes)表示粒子的n个属性,如:粒子的大小、形状、位置、颜色、透明度、速度、加速度、生命周期等。

2)粒子映射:鉴于粒子的索引存储,每个粒子有且只有一个索引,需要把粒子逆映射到一个正整数集里,即从[It]到[Pn]的映射,用符号可以表示为:

[Q(t)={Pt:It→Pn|It?M,n>2,n∈I,t∈R},ω(i)=Pn ]

其中[ω(i)]为索引i所对应的粒子的属性和状态,M为索引集,[Pt]为t时刻所有粒子的映射集合,[Q(t)]为粒子映射。

3)粒子系统:一个粒子系统就是大量粒子在生命周期里不同时刻的表现的综合,可以由一个粒子映射集的有限集合来表示。转化为符号语言就是:

[S(t)={Q(t)|t∈{t0,t1,t2 ...ti...tm}} ]

其中[S(t)]为粒子系统在[t0,t1,t2 ...ti...tm]时刻的状态集,表现一个粒子系统在生命周期里的动态变化,[S(t0)]则为粒子系统的初始状态。

2 粒子系统建模过程

粒子系统始终处于动态的变化之中,即不断有新的粒子产生和旧的粒子消亡。在某一给定帧图像,产生的粒子数量可以通过方程来确定,该方程包括一帧上生成粒子的平均数量和方差,或者是屏幕每单位区域上粒子的数量和方差,而粒子消亡是由于生命值耗尽或者其它特殊情况[2]。粒子系统建模过程如图1所示:

图1 粒子系统建模过程

粒子系统在生命周期中,先后主要经历四个阶段,分别为:产生粒子、更新粒子、删除死亡粒子和绘制粒子[3]。粒子的产生是在某一特定的空间范围内,按照既定规律产生一定数量和初始属性的粒子。粒子的更新就是粒子属性和状态变化的实现。它是模拟不规则物体物理特性的关键,物理的形态变化和运动都是通过粒子的更新来表现的。删除死亡粒子是指将生命值为0或者超出观察距离的粒子删除。粒子的产生、更新和死亡形成了一幅动态的画面,粒子的绘制就是把这幅画面在显示设备上表示出来。

3 通用粒子系统模型设计

以往人们对运用粒子系统模拟特殊效果的研究大致可以分为两种方法,即特例法和属性参数法。特例法就是对某一种特殊效果进行单独建模、仿真,如基于粒子系统的火焰模拟、基于粒子系统的爆炸模拟等。这种方法重用性和开放性差,会造成大量的人力和物力的浪费。属性参数法就是通过设置和改变属性参数来控制粒子系统的外形和状态,从而模拟出不同类型的特殊效果。这种方法的变化不够灵活,对不规则模糊物体的随机性模拟的真实感不够强。

根据实际需要,该文在对经典粒子系统理论归纳总结的基础上,抽取战场特效的共同特性,建立战场特效的通用粒子系统模型,用于实现通用的、开放的、可扩充的、可交互的粒子系统,完成对多种战场特效仿真。

3.1 通用粒子系统框架设计

虚拟战场特殊效果的种类很多,表现各异,为每一種特效都进行编程实现需要大量的代码。为了简化模型的实现和增加通用性,该文按照粒子系统战场特效仿真的一般过程,通过对各种战场特殊效果的具体分析,抽取不同特效的共同特性,根据其功能将通用粒子系统划分成五个基本模块,如图2所示。其中粒子系统类模块是最主要的控制模块,它提供对所有特效的共性的控制,而各种特效的特性根据其它模块来实施控制。粒子发射器控制特效的外形,属性修改器控制特效的随时间的运动变化,粒子渲染器控制特效的最终显示效果。

图2 粒子系统结构图

系统首先设计好了多种粒子发射器,如:点粒子发射器、圆形粒子发射器、方形粒子发射器、柱形粒子发射器等。当仿真特效需要的时候直接使用相应的发射器即可,如果某一中新的特效仿真确实需要用到一种新的发射器时,开发者可以根据需求设计好后添加进发射器类中。属性修改器是根据一定的规则设计好用来对粒子属性进行修改的模块,如:颜色修改器、速度修改器、位置修改器等。渲染器是基于GPU的可编程着色器设计的,各个着色器都有相应的功能[4]。

3.2 系统模型详细设计

通用粒子系统,要满足粒子系统的管理、粒子的产生、更新、渲染等需求,需要使用大量的代码,而且对渲染部分的控制使用的编程语言还不同,在一个程序中实现显然困难较大[5]。如果把通用粒子系统模型分成粒子系统模块、粒子发射器模块、属性修改器模块以及渲染器模块,分别对各模块进行编程实现,编程的难度要小多了。而且这种做法还可以提升代码的重用性以及方便属性和功能的扩充。比如粒子系统中的发射器模块,若只设计了圆形、线性、球形发射器等,当新的特效仿真需要用到柱形发射器时,就只需要在模块下,添加一个继承于发射器类、又具有柱形特征的柱形发射器的类就可以实现了,操作起来十分简便。

通过以上分析,该文设计了通用粒子系统模型类结构图,如图3所示。

图3 通用粒子系统模型类图

模型中各个类的功能如下:

粒子系统管理类,负责管理场景中所有的粒子系统,这些粒子系统实现了战场中所有对仿真要求较高的特殊效果。

粒子系统类:管理本系统中的所有粒子。

粒子发射器类:发射满足不同效果的具有一定初始值和特定变化规律的粒子。

属性修改器类:根据粒子属性的变化规律动态地更新粒子形状和状态。

粒子渲染器类:就是综合实现粒子的各种效果,把系统模拟的最终效果渲染出来。

4 实验效果

通用粒子系统可以完成对一个场景中多个不同精度不同种类战场特殊效果的同时仿真实现,关键是要通过判定视点距离来区分仿真方法,分析各个常用战场特殊效果的特征确定相应的粒子发射器和属性的更新规则。利用本文的通用粒子系统模型构建的爆炸特效如图4所示,火焰特效如图5所示。

图4 爆炸特效

图5 火焰特效 (下转第1125页)

(上接第1121页)

5 小结

本文从粒子系统的相关定义入手,通过对粒子系统建模过程的分析,抽取虚拟战场特效中的共同特性,建立了战场特效的通用粒子系统模型,对其结构及功能进行了深入的研究,并使用该模型实现了多种常见的战场特效,具有很好的应用价值。

参考文献:

[1] 华泽玺,王迎春,孙建顺.基于粒子系统的爆炸效果仿真研究[J].计算机科学,2012.39(4):278-281.

[2] 罗军.基于流的粒子系统的设计与实现[D].成都:四川师范大学,2007.

[3] 张芹等.基于粒子系统的建模方法研究[J].计算机科学,2003.30(8):144-146.

[4] 曹阳勇.真实感通用粒子系统的实时渲染研究与实现[D].成都:电子科技大学,2011.

[5] 吴继承,江南.虚拟现实中粒子系统的设计与应用[J].计算机仿真,2004,11(21):137-140.

猜你喜欢

粒子系统仿真
利用GPU加速的粒子系统全球流场可视化系统设计与实现
UE 4粒子系统与外部数据通信研究
一种帮助幼儿车内脱险应急装置的仿真分析
Buck开关变换器的基本参数设计及仿真分析
试析PLC控制下的自动化立体仓库仿真情况分析
基于MADYMO的航空座椅约束系统优化设计
中国体态假人模型与FAA Hybrid Ⅲ 型假人模型冲击差异性分析
机械加工仿真技术研究
粒子系统在航海应用上的展望*
基于粒子系统的建模与仿真综述