OpenGL论文粒子系统论文
XNA环境下粒子系统特效集成程序的实现

XNA环境下粒子系统特效集成程序的实现摘要:本文介绍了粒子系统的基本原理,针对视景特效进行分析建模,而后利用面向对象技术与广告板技术使视景特效模块化,形成了一个简单易用、容易扩展的粒子系统视景特效模块,可方便地与游戏引擎模块整合。
文中给出了粒子系统视景特效层次结构关系的建模实现,通过面向对象技术,对粒子系统视景特效进行集成与封装,最后使用XNA Game Studio对一些具体视景特效(如,雨水、雪花、喷洒等)进行生成并组件化。
关键词:XNA 粒子系统游戏引擎视景特效近年来,随着计算机硬件性能的不断提高,人们已经不再满足于简单的二维视景,三维视景因其逼真的显示效果、虚幻的立体场景画面,已逐步取代了二维视景的地位,成为市场上的主流。
目前,已有许多基于不同平台且利用粒子系统模拟自然现象的研究工作。
例如,OSG的粒子特效仿真[1]、基于OGRE粒子系统及供用户选择虚拟特效的实现[2]、基于OpenGL的3D粒子特效系统设计与实现[3],也有XNA中基于GPU的太阳风粒子系统的模拟[4]、XNA中基于素材管道的粒子系统设计与实现[5]和XNA环境下粒子系统的飘雪仿真[6]。
OSG和OGRE均是使用OpenGL技术开发的应用程序接口(API),OpenGL技术是基于C++平台的。
相对于.net平台下XNA技术来说,其开发周期比较长,程序比较复杂,难于掌握。
在XNA环境下也曾有利用粒子系统来模拟自然现象,但其大多数都是针对某一种自然现象进行仿真模拟,本文在XNA环境下利用C#语言面向对象的继承和多态特性,实现了雨、雪和喷射等多种自然现象综合模拟仿真的实现。
粒子系统是目前游戏引擎研究领域的热点之一,也在军事模拟仿真视景系统得到了重要应用。
粒子特效系统是游戏引擎的重要组成部分,而创建特定的粒子系统是一个比较复杂的过程,不仅要考虑如何让粒子更真实地反映现实,而且需要对大量的粒子属性进行管理。
本文基于粒子系统的基本原理,使用面向对象的方法与XNA Game Studio 开发工具,利用XNA框架设计了一套基本的粒子系统引擎,其中定义了基本的数据结构、用于高级着色语言(High Level Shader Language,HLSL)的顶点格式等,并将其封装成一个动态链接库(Dynamic Link Library,DLL),从而达到简单易用、管理简便和快速生成粒子特效的目的。
基于OpenGL的离散粒子系统显示方法及其改进

( 昌 大 学信 息 工 程 学 院 , 西 南 昌 3 0 3 ) 南 江 30 1
摘要 : 离散 粒子 系统 中的 粒 子 显 示 一般 是 用 单 一 的 球 模 型 , 样 有 利 于 采 用 O eG 这 p n L显 示 列 表 技 术 而 获 得 良好 的 显 示性 能 。 O eG 自带 的球 显 示 模 型是 对球 进 行 经 纬 度 划 分 , 样 的 划 分 是 不 均 匀 的 , pn L 这 它在 两 极 密 而 赤 道 疏 , 且 单 元 数 偏 而 多。 本 文 采 用 现 有 有 限 元 前 处 理 软 件 生 成 一 系列 均 匀的 三 角形 网格 球 模 型 , 用较 少 的单 元 构 造 球 模 型 , 合 多个 显 示 列 结 表, 获得 良好 的 显 示 效 果 。 实例 表 明该 方 法 可行 , 在 不 能 采 用显 示 列表 的情 况 下 性 能 有 较 大 提 升 。 且 关键 词 : 子 系 统 ;O eG ; 模 型 ;显 示 列 表 粒 pn L 球
p o c fOp n sa o t d frh g ip a e fr n e h p e e mo e fO e GL i e e ae y d vd n h p ee In r a h o e GL i d p e o ih d s ly p r ma c .T e s h r d l p n sg n r td b ii i gt e s h r o - o o
t tte me h d i r c ia l n h s a e o a e i nh n e infe nd nd rt icu t n e ta h ip a iti ha h t o sp a tc be a d te diply p r r nc se a c d sg i a y u e hec r msa c h tte d s l y l s f m i s un b et e u e a l o b s d. K e o d pa tce s tm ;Op n y w r s: ri l yse e GL; s hee mo l p r de ;diply ls s a it
计算机科技与应用专业毕业论文--基于Opengl的3D游戏设计

摘要随着时代进步,从简单的色块堆砌而成的画面到数百万多边形组成的精细人物,游戏正展示给我们越来越真实且广阔的世界。
对于近几年游戏的发展来说,老式2D游戏的画面、游戏性、互动性已经无法满足各类玩家的需要,而3D游戏无论是在游戏画面的真实程度、操作的流畅程度、以及故事背景方面的优越性都非常突出。
在这种发展趋势下,2D游戏所占领的市场将会变得微乎其微,3D游戏的开发将会成为整个游戏制作领域的一种趋势。
针对于3D游戏开发,OpenGL作为一个3D的应用程序编程接口(API)来说,是非常合适的。
OpengGL作为与硬件无关的软件接口,只要操作系统使用了OpengGL适配器就可以打到相同的效果。
它又是一个开放图形库,在跨平台领域上非常便利。
并且它具有优良的移植性,是广大3D游戏开发者的首选。
本论文为利用OpengGL进行3D射击游戏的设计与开发,采用碰撞检测、粒子系统、MD2模型绘制、3D声效等技术,最终实现一个射击游戏。
关键词:游戏, 基于OpengGL,三维, 射击游戏Abstract: Along with the progress of the times,fine characters from simple color swatch built the picture to the millions of polygons, the game is to show us more and more real and the wide world.For the development of the game in recent years, the old 2D games' screen ,games andinteractive have been unable to meet all kinds of game player needs, while 3D regardless of the game on the game screen reality, smooth operation, and the background of the story of the superiority is very prominent.In this trend, 2D game occupied market will become very little, the development of 3D games will become the game made a trend in the field.For 3D game development, OpenGL as the application programming interface of a 3D (API), is a very suitable. OpengGL as the interface of the software and hardware independence, as long as the operating system uses the OpengGL adapter can reach the same effect. It is also an open graphics library, cross-platform in areas very convenient. And it has good transplantation, is the 3D game developer's choice.In this paper, the design and development of 3D shooting game is to use OpengGL, the collision detection, particle system, MD2 model, 3D sound rendering technology, the ultimate realization of a shooting game.Keywords game, OpengGL, 3D, shooting game目录1 引言 (1)1.1 课题的背景及意义 (1)1.2 毕业设计的任务 (1)1.3 国内外现状的研究 (2)1.4 开发技术与开发平台 (3)1.4.1 开发技术 (3)1.4.2 开发平台 (3)2 OpenGL简介与3D图形学相关 (5)2.1 OpenGL简介 (5)2.1.1 OpenGl特点 (5)2.1.2 OpenGL功能 (6)2.1.3 OpenGL渲染 (7)2.2 3D图形学相关 (8)2.2.1 向量与矩阵 (8)2.2.2 变换 (8)2.2.3 投影 (8)2.2.4 3D裁剪 (9)3 游戏设计 (11)3.1 游戏的组成 (11)3.2 游戏的结构 (11)3.3 本游戏设计 (12)4 关键技术 (15)4.1 摄像机漫游 (15)4.2 碰撞检测 (16)4.3 粒子爆炸 (19)4.4 云雾效果 (20)4.5 简易AI (21)4.6 3D模型 (23)4.7 3D音效 (26)4.8 游戏场景随机地形 (28)5 运行游戏 (30)结论 (36)参考文献 (37)致谢 .................................................................................................................................. 错误!未定义书签。
基于粒子系统和纹理映射的烟花动画模拟研究

基于粒子系统和纹理映射的烟花动画模拟研究摘要:为了更好地模拟烟花动画,通过分析粒子系统和烟花燃放的原理,采用VC++和OpenGL的纹理映射技术,建立了烟花模拟模型。
通过控制烟花爆炸后烟花粒子的运动轨迹,对不同形状的烟花进行模拟,并成功模拟了笑脸烟花、奇形四叶玫瑰形烟花等。
实验结果表明,该算法具有简单、实时性等优点,实现了对特殊形状烟花效果的逼真性模拟。
关键词:烟花动画;粒子系统;纹理映射;动画模拟0 引言近年来,计算机技术和动画技术的快速发展,为自然景物的模拟提供了一定的条件。
然而,由于自然景物构造的复杂性,对它们进行实时性和真实性的模拟一直是我们追求的目标。
特别是对于云、水、雾、烟花等不规则物体的模拟,在计算机图形学和虚拟现实中一直备受关注。
1983年,W.T.Reeves[1]首次提出了粒子系统模型,并用其对许多不规则自然景物进行了成功的模拟。
它的优点是可以利用非常简单的体素来构造复杂的物体,即一个粒子系统有大量称为粒子的简单体素构成。
每个粒子都有一组属性,如位置、速度、形状、颜色和生命周期等。
一个粒子究竟有什么样的属性,主要取决于具体的应用。
因此,粒子系统为自然景象如火焰、雨、雪、烟花等的模拟提供了强有力的技术支持。
目前,国内外已经有很多学者采用粒子系统对自然景物进行成功的模拟。
万华根等[4]通过对NS方程的求解并结合粒子系统来模拟喷泉,同时利用圆球实现水滴,采用光线跟踪算法绘制。
1985年,WilliamT.Reeves 和Blau R.[4]采用“volume filling”基本单元模拟了随风飘动的花草树木,很好地发展了粒子系统。
目前,在模拟烟花方面,国内外已有一系列的研究成果。
1992年T.Loke等人[5]提出一种用粒子衍生法来表现烟花粒子轨迹的绘制算法,同时采用链表数据结构的存储方式,实现了多种烟花的特殊效果。
陈利平[6]、甘露等人[7]通过深入研究烟花燃放过程的特点,给出了不同状态下的烟花的具体算法。
基于OpenGL与粒子系统的实时降雪模拟

现 代 商 贸 工 业 M o enB s es rd n ut dr ui s T a eId s y n r
21 年第 6 01 期
基于 O e G p n L与粒 子 系 统 的 实时 降 雪模 拟
王彦 林 郝 梅
( 汉 商 _  ̄ 务 学 院信 息 工 程 系 , 北 武 汉 4 0 0 ) 武 , g I L k 湖 3 0 0
关 键 词 : e GI 子 系 统 ; 实 感 图形 绘 制 ;虚 拟 现 实 Op 识码 : A
文 章 编 号 :6 23 9 (0 10 —2 20 17 —1 8 2 1 ) 60 9—2
使 用 计 算 机 模 拟 自然 景 物 , 云 、 流 、 等 一 直 是 虚 如 水 树 拟现实 中真实 感 图形 绘 制 领 域 具 有 挑 战性 的研 究 课题 之 签 于 自然 景 物 和 复 杂 性 和 随 意 性 , 统 的 几 何 建 模 工 传 具 一 般 难 以对 其 进 行 逼 真 的 模 拟 。 目前 主 要 有 两 种 方 法 实 现 自然 景 物 模 拟 : 是 基 于 物 理 建 模 技 术 的方 法 , 是 基 于 一 二 粒 子 系统 的 方 法 。前 者 通 过 对 Na i — S ok s 程 求 解 , ve r tc e 方 求 出 流体 过 断 面 时 的平 均 流 速 , 由于 N—S方 程 组 是 非 线 但 性 的, 算较 为 复 杂 , 而难 以达 到 实 时要 求 ; 者 是 , 计 因 后 由 R e e 等人 于 1 8 ev s 9 3年 提 出 的 至 今 为 止 模 拟 不 规 则 模 糊 景 物 最 成 功 的一 种 图 形 算 法 。粒 子 系 统 的 主 要 优 点 是 可 以利 用 非 常 简单 的 体 素 来 构 造 复 杂 物 体 , 自然 现 象 的 造 型 提 为 供 了强 有 力 的 技 术 手 段 。 粒 子 系 统 从 应 用 的角 度 可 分 为 三 类 , 随 机 粒 子 系 统 、 即 结 构 化 粒 子 系 统 、 向 粒 子 系 统 。 随 机 粒 子 系 统 主 要 通 过 方 可控制 的随 机过 程 控 制 粒 子 属性 的变 化 , 用 来 生 成 火 、 可
基于粒子系统的自然环境特效仿真

基于粒子系统的自然环境特效仿真摘要:基于粒子系统的特效仿真是虚拟自然环境可视化仿真中的一个重要环节。
阐述了粒子系统原理,根据粒子系统原理为虚拟自然环境中爆炸、火焰、烟雾、雨雪等不规则景物建立了粒子系统模型,分析了基于粒子系统特效仿真中的动态链表、三角函数链表、实时性等关键技术。
关键词:自然环境;粒子系统;特效仿真0 引言虚拟自然环境是场景仿真的重要基础。
在计算机仿真中,虚拟自然景物能否更好地可视化直接影响用户的使用反馈。
仿真不规则物体,是可视化计算机仿真的难点,因其外观特征极不规则,表面不光滑,而且具有复杂与随意变化过程,这使得用经典的欧几里德几何学对其描述显得无能为力。
尽管如此,国内外学者先后提出了粒子系统模型、细胞自动机模型、分形模型等表示不规则模糊物体的理论,其中W.T.Reeves 提出的粒子系统理论较为成功。
粒子系统就是由大量粒子集合在一起表现不规则物体的计算机模拟系统[1]。
如今,粒子系统已经应用在可视化虚拟环境仿真的各个方面,虚拟的雨雪、烟雾等特效是实现逼真的虚拟自然环境中不可或缺的一部分,也是粒子系统运用的主要领域。
1 粒子系统原理粒子系统对景物的绘制不同于以往造型、绘制系统的方法,它不是一个静态模型,而是一种过程模型。
如果可以找到有效的物理或生理过程,不规则物体的行为分析和建模将变得很简单,只要实现实时的物理几何模型即可。
一个粒子系统可由多个称为粒子的元素组成,每个粒子均具有形状、大小、运动方向、生存周期等属性,而一个粒子具有的属性取决于粒子系统所模拟的物体。
粒子系统是一个动态变化的系统,每时每刻都有新粒子产生以及旧粒子死亡。
系统中的粒子的各类信息都随时间而改变,粒子的初始状态、运动规律影响粒子的正确运行。
我们可以通过控制粒子的属性和变化过程来模拟一些动态自然物体。
粒子系统的实现需要以下5个步骤:①新粒子产生并具有新属性后进入系统;②结合粒子的动态特征对粒子进行诸如移动和变换之类的操作,同时改变粒子属性;③判断活动粒子的实时生命值;④删除超过其生命周期的粒子;⑤绘制并显示由系统中粒子所组成的图形。
基于OpenGL的礼花粒子系统模拟研究
1 引言
近年来 , 计算 机游戏和动画等各种领域的不断发展 , 要求 对动态 自然景物 , 如云、 、 、 、 、 雾 烟 火 雨 水等 的运动进 行模拟 , 这已经成为计算机 图形 学领域 的研究 热点 。由于云 、 、 、 雾 烟 火等具有不规则的几何形状 , 并且其运动还具有不确定性 , 容 易受 到周 围环境的影响而时时改变 , 动态性 和随机性非 常强 , 进而导致很难用常用的几何 建模和数学建模方法来对其进行 有效 的模拟 。18 9 3年 , evs 出了粒 子系统 【 , 用许 多 R ee 提 1采 ] 形状简单的微 小粒 子作 为基本元 素来表示 不规则模糊 物体 , 充分体现 了不规则模糊 物体 的动态性和 随机性 , 被公认 为模 拟模糊物体最为成 功 的一种 图形生成 方法[ 。目前 , 2 ] 已有许 多利用粒子系统方 法模 拟 自然 现象的研究 工作 , 能够很好 地 模拟雨 、 、 雪 云等三维复杂 自然景物 。如 P ahy[ 和 F u ec e 3 ] o m— ig 等人 运 用粒 子 系 统 模 拟 了风 吹 海 浪 所 形 成 的 水 花 ; e r] G s[ 运用粒 子系统实 时地模拟 了船行驶时所形成 的轨迹 ; os_ I 万华根【 等采 用 粒子 系统 , 过求 解 流体 力学 中的 Nai - 6 ] 通 ve r Srks t e 方程的特例 , o 模拟 了喷泉的水流运动 ; i n 等人从 Smo E 光线在海水 中的传播规律 出发 , 引入一个 复杂的光照 模型来 模拟海面 。但在模拟礼 花的运动方 面 , 国内鲜见相关 的研究 成果 。王静秋【 和丁纪 云[ 等通 过分 析 礼花燃 放 过程 的特 8 ] 9 点, 建立 了模拟礼花的模 型。可是利用这种方法生成的礼花 ,
OpenGL中基于粒子系统的喷泉模拟实现
F u t i i u a i n Ba e n Pa tce S s e i e GL o n a n S m l to s d o r i l y t m n Op n
X AO H , E Mig—y n B I h n I eH n u , A o g—j n Z J a
( co l f o ue Sin eadE g er go E T C e guSc un6 05 C ia S ho o mp t cec n n i ei f S C, hnd ih a 104, hn ) C r n n U
ABS TRACT: h fe t o o n a n c n o s me l n a c h i T e e c f fu t i a c n u d y e h n e t e mme s o c a a trsi o i u l e l y r i n h r c e it c f v r a r ai t t s se ,w i h h s b e d l s d i i u l smua i n s se ,c mp t r g me ytm h c a e n wi e y u e n v s a i lto y t m o u e a ,3 n ma i n a d S n D ai t n Oo . o P ril y t m sa f c i e me h d i o n an smua i n a t e s se i n e f t t o n f u t i i lto .Atp e e t o o n an smu a i n meh d r c e v r s n ,s me f u t i i l t t o s a e o c n r n e t h h n me as c sc mp e a c l t n i mp e n ai n, u e n mb r f a t l s i o fo t d wi t ep e o n u h a o lx c l u ai n i l me tto h g u e so r c e ,t h o p i me— c n u n o e l y i ma e T e b sc i e ft e me h d i t i l y t e sa e o to n e d r o s me a d l w r a i n i g . h a i d a o h t o s o smp i h t t f mo i n a d r n e t f meh d f h a t ls By u i g e u b y a c l r t d mo in wh n a p y n h h sc rn i l s t i l t t o s o e p ri e t c s n q a l c e e a e t e p l i g t e p y is p i c p e o smu a e o
OpenGL论文
OpenGL的polygon实验摘要:本文阐述了OpenGl的基本概念和内容,主要以OpenGL为背景,编写介绍了polygon 的小程序实现函数代码以及方法。
关键词:OpenGl,Polygon;1 前言随着电子信息时代的到来,电脑越来越多的成为我们日常生活中所必不可少的工作和学习工具,而在大家所使用和见到的最常见的软件中,使用OpenGL的交互软件占大多数,而且绝大多数游戏的开发也是使用的OpenGL技术,所以本文主要介绍OpenGL。
2什么是OpenGLOpenGL的英文全称是“Open Graphics Library”即“开放的图形程序接口”,它是计算机工业标准应用程序接口,主要用于定义二维三维图形。
OpenGL是一套底层三维图形API,之所以称之为底层API,是因为它没用提供几何实体图元,不能直接用以描述场景。
但通过一些转换程序,可以很方便的将AutoCAD、3DS等图形设计软件制作的DFX和3DS模型文件转换成OpenGL的顶点数据。
OpenGL是与硬件无关的软件接口,使用它图形软件生产厂商再不用为各种不同的机型开发设计不同的软件,主要操作系统使用了OpenGL适配器就可以达到相同的效果,它是一个开放图形库,目前在Windows、MacOS、OS/2、Unix/X-Windows等系统下均可使用,且仅在窗口相关部分(系统相关)略有差异,因此具有良好的可移植性,同时调用方法简介明了,深受好评,应用广泛。
OpenGL能在网络环境下以客户机/服务器模式工作,充分发挥集群运算的威力,是专业图形处理、科学计算等高端应用领域的标准图形库。
将OpenGL称之为SGI的OpenGL毫不为过,它源于SGI公司为其图形工作站开发的IPIS GL,在跨平台移植过程中发展成为OpenGL。
SGI在1992年7月发布1.0版,后成为工业标准,由成立于1992年的独立财团OpenGL Architecture Review Board(ARB)控制。
基于OSG的粒子系统仿真实现
基于OSG的粒子系统仿真实现作者:张慧来源:《科技风》2017年第17期摘要:OSG就是一款高效实时的三维图形开发包,它构建于OpenGL图形函数库之上,全部采用标准C++语言开发, OSG图形系统[1]主要应用于游戏、虚拟现实和科学计算可视化与仿真领域中的高性能图形程序的开发。
在构建虚拟场景后,为了增加虚拟场景的真实度,加入自然现象能使场景更加的逼真,而在OSG中给我们提供了粒子系统能很好的完成这部分设计,本文着重讨论基于粒子系统仿真的雪效和雨效,实践证明OSG的粒子系统能满足仿真的要求。
关键词:OSG;粒子系统;雪效1 粒子系统简介1.1 粒子系统概念粒子系统(particlesystem)是迄今为止被认为模拟不规则模糊物体最为成功的一种图形生成算法[2]。
它构建场景的方法与以往不同,传统的方法是通过绘制和造型系统的算法来实现,而粒子系统采用的是计算模型,动态的表示物体的运动。
因此,粒子系统采用微小粒子图元作为基本单位,这些粒子图元具有颜色、透明度、大小形状及生命周期等属性,粒子的生命周期分为产生到活动到消亡几个阶段,因此,在粒子系统创建过程中,考虑的因素要包括真实的物理模型,还要考虑粒子的各项属性规定[34],在建立好的场景当中也要考虑动力学规律对粒子的影响。
1.2 OSG粒子系统数学模型在OSG环境中,粒子系统产生的新生粒子位于屏幕上方的圆形区域内。
对于每个粒子而言,在粒子出生时就会有不用的随机参数,但实际上每个粒子的真实意义在于其每帧的位置和速度。
在粒子运动过程中要受到很多外界因素的影响,比如重力、风力和空气阻力等,按照物体的运动规律,设V0为粒子初始速度,S0为粒子的初始位置,粒子的速度V、位置S和加速度a有一下关系:1.3 OSG粒子系统的工作过程在OSG中,osgParticle类是专门定义用来模拟粒子系统的,它不但能高效地模拟粒子系统,而且效果生成得非常逼真。
在OSG中使用粒子系统,首先要确定意图。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
OpenGL论文粒子系统论文
基于OpenGL与粒子系统的实时降雪模拟
摘要:为了增强虚拟现实系统的沉浸感,自然景物模拟一直是学者研究的热点之一。
利用OpenGL函数包和粒子系统相关原理,模拟了自然降雪过程。
整个降雪系统通过限制雪粒子初始化区域,大大减少了粒子数量,降低了算法的时间复杂度;通过宏定义每秒产生雪粒子数及雪粒子大小,模拟了不同情景的降雪过程,保证了系统模拟的多样性。
关键词:OpenGL 粒子系统; 真实感图形绘制; 虚拟现实
使用计算机模拟自然景物,如云、水流、树等一直是虚拟现实中真实感图形绘制领域具有挑战性的研究课题之一。
签于自然景物和复杂性和随意性,传统的几何建模工具一般难以对其进行逼真的模拟。
目前主要有两种方法实现自然景物模拟:一是基于物理建模技术的方法,二是基于粒子系统的方法。
前者通过对Navier-Stockes方程求解,求出流体过断面时的平均流速,但由于N-S方程组是非线性的,计算较为复杂,因而难以达到实时要求;后者是,由Reeves等人于1983年提出的至今为止模拟不规则模糊景物最成功的一种图形算法。
粒子系统的主要优点是可以利用非常简单的体素来构造复杂物体,为自然现象的造型提供了强有力的技术手段。
粒子系统从应用的角度可分为三类,即随机粒子系统、结构化粒子系统、方向粒子系统。
随机粒子系统主要通过可控制的随机过程控制粒子属性的变化,可用来生成火、烟、灰尘、爆炸等场景图像;结构化粒子系统主要用来模拟具有一定结构的物体或现象,如树、草、
云、彩虹等;方向粒子系统因为考虑到粒子间的相互影响,粒子除了具有速度和位置等动态属性外,还必须有方向属性,可用来模拟织物、可变形物体和刚体等。
降雪现象没有一定的结构,模拟时无需考虑雪粒子间的相互作用,宜采用随机粒子系统进行模拟。
随机粒子系统采用大量的、具有一定生命和属性的微小粒子图元作为基本元素,绘制不规则的模糊物体对象,其中,粒子图元的形状可以是小球、立方体、正四面体或其它的形体。
粒子系统把物体定义为许多不规则、随机分布的粒子,且每个粒子均有一定的生命周期。
随着时间的住移,旧的粒子不断死亡,新的粒子不断加入。
粒子的这种出生、成长、衰老和死亡的过程,能够较好地反映模糊物体的动态特性。
本文依据粒子系统的仿真方法,对降雪进行了模拟。
用大量雪粒子来描述降雪的形状属性及运动属性。
降雪粒子系统是不断进化的,在生命期的每一刻,都要完成如下四步:第一步,系统产生新的雪粒子;第二步,更新雪粒子属性;第三步,删除“死”雪粒子;第四步,绘制雪粒子。
本文降雪粒子系统中采用四边形来描述雪粒子几何特征,并给雪粒子加上纹理,进而逼真描述雪的自然现象。
1 雪粒子系统初始化
雪粒子系统由大量的雪粒子构成,雪粒子系统初始化需包含雪粒子初始化算法。
对于雪粒子系统需要考虑的属性有雪粒子链表、雪粒子总数目、当前渲染的雪粒子数目,雪粒子系统的中心位置、消逝时间;对雪粒子则要考虑当前位置、上次位置、速度、加速度、生命期、尺寸大小等属性。
雪粒子产生区域是一个覆盖地面场景的长方体,并与水平面平行。
在雪粒子密度相同的情况下,较大的产生区域需要较多的粒子,因此产生区域在满足视觉效果的前提下应尽可能小,这里,仅用视图体顶部的外接长方体作为产生区域。
随着视点位置、视线方向的变化,视图体在空间移动,产生区域也作相应移动。
本文雪粒子系统中雪粒子的初始化和发射被控制一个长、宽、高分别为mheight、mwidth、mdepth的长方体内。
初始化时雪粒子x、y、z坐标分别由如下表达式确定:mheight、morigin.x+FRAND*mwidth、morigin.z+FRAND*mdepth。
其中morign表示雪粒子系统场景的中心点。
用自然语言描述雪粒子初始化、雪粒子系统初始化算法如下:算法名称:雪粒子初始化;
算法参数:雪粒子索引号。
算法开始:
①初始化雪粒子的位置;
②设置雪粒子大小;
③设置雪粒子的初始速度为随机值;
算法结束。
算法名称:雪粒子系统初始化;
算法开始:
①判断是否存在雪粒子,若有,则雪粒子链表设为空,并设置头指针为空,否则转入第②步;
②调用“雪粒子初始化”算法;
③系统雪粒子总数、消逝时间均置为0;
算法结束。
2 雪粒子系统的更新
随着视点的不断变化,及雪粒子的不断运动,雪粒子的空间坐标也在不断改变。
当某一粒子运动到视口长方体分布区外时,则认为该是雪粒子寿命结束,系统停止对其计算和绘制。
本文具体算法通过当前粒子的y轴坐标与场景的中心位置的y轴来判断雪粒子是否超出视口长方体,即:若mparticle[i].mpos.y<=morigin.y,则雪粒子到达场景外。
此外,雪粒子的数量直接影响场景的真实感,改变每一帧新粒子产生的数量,新产生的粒子较多时雪下的较大,反之,新粒子产生较少时雪下的较小。
雪粒子数量选择太多或太少都会使下雪的图像失真。
本文具体算法产生宏定义的方式获得,即:newParticles= SNOWFLAKES_PER_SEC * maccumulatedTime。
其中SNOWFLAKES表示每秒新产生的雪粒子数,maccumulatedTime 表示雪粒子系统消逝时间。
雪粒子系统更新算法描述如下:算法名称:雪粒子系统更新;
算法参数:(消逝时间)。
算法开始:
①判断当前雪粒子数目是否小于降雪粒子系统所容纳的雪粒子总数,若小于,则进行第②步;
②结合加速度与消逝时间参数计算当前雪粒子的新位置;
③判断当前雪粒子是否超出场景,若是,则删除当前粒子,并将
最后一个粒子移到当前位置,否则,当前雪粒子索引加1,并返回第①步继续执行;
④累加并保存消逝时间;
⑤计算雪粒子新产生的数目,若此时新数目少于雪粒子系统所容纳的粒子总数,则转到第⑥步,否退出;
⑥调用“雪粒子初始化”算法;
算法结束。
3 雪粒子系统渲染
OpenGL是美国SGI公司开发的三维图形库,可以集成到各种操作系统中。
利用OpenGL函数库可以创建动画的三维彩色图形交互式程序,并能控制计算机图形技术来产生真实感图形。
本文利用它的基本图形绘制、变换、着色技术得到了粒子系统的基本模型。
OpenGL在计算机屏幕上渲染绘三维图形景观的基本骤步如下:第一步,根据基本图形单元建立景物模型,并且对所建立的模型进行数学描述,其中点、线、多边形、图像和位图都可作为基本图形单元;第二步,把景物模型放在三维空间中的合适位置,并且设置视点以观察所感兴趣的景观;第三步,计算模型号中所有物体的色彩,其中的色彩根据应用要求来确定,同时确定光照条件、纹理方式等;第四步,把景物模型的数学描述及其色彩信息转换至计算机屏幕上的像素,即光栅化。
当然在如上四步中也可执行一些其他操作,如自动消隐等。
本文中具体算法首先通过雪粒子大小来反映透视效果,并为了增强雪粒子系统的实时性,尽量减少系统所绘制的多边形数量,将雪粒子简
化为二维四边形,然后采用OpenGL的纹理融合技术将降雪的纹理图片映射到二维四边形上。
雪粒子渲染算法描述如下:
算法名称:雪粒子系统渲染;
算法开始:
①设置OpenGL视点位置;
②绘制天空盒;
③构造显示列表,绘制一个白色地形;
④开启混合模式,并设置混合因子;
⑤将雪花纹理绑定;
⑥定义变量用于代表雪粒子的位置和大小;
⑦通过绘制四边形方式渲染雪粒子;
⑧关闭混合模式;
算法结束。
4 结语
本文按照粒子系统相关原理与结合OpenGL函数包,使用Visual C++6.0模拟了自然界中降雪的自然过程。
降雪粒子系统将雪粒子初始化区域限制在场景顶部长方体内,大大减少所需粒子数量,进而保证了算法的实时性。
通过宏定义调整系统每秒产生雪粒子数及雪粒子大小,可以产生不同程度、不同效果的降雪效果。
为了更好地反映自然现象,系统实时性和真实性需进一步加强。
因此,雪粒子重用技术、视景体优化技术及雪粒子受力情况是今后需努力的研究方向。
参考文献
[1]王宏伟,刘越,王涌天面向对象的通用粒子系统设计[D]系统仿真学报,2006,(8)
[2]罗维佳,都金康,谢顺平基于粒子系统的三维场地降雨实时模拟[D]中国图象图形学报,2004,9(4).
[3]蒋恒恒,汤宝平,章国稳基于OpenGL与粒子系统实现三维喷泉模拟[J]计算机测量与控制,2009,17(9)
[4 ]何亮,巴力登.基于粒子系统的动态雪景拟[J]西北大学学报(自然科学版),2010,(8).。