火焰模拟综合课程设计报告文档格式.docx

上传人:b****6 文档编号:21542752 上传时间:2023-01-31 格式:DOCX 页数:23 大小:454.01KB
下载 相关 举报
火焰模拟综合课程设计报告文档格式.docx_第1页
第1页 / 共23页
火焰模拟综合课程设计报告文档格式.docx_第2页
第2页 / 共23页
火焰模拟综合课程设计报告文档格式.docx_第3页
第3页 / 共23页
火焰模拟综合课程设计报告文档格式.docx_第4页
第4页 / 共23页
火焰模拟综合课程设计报告文档格式.docx_第5页
第5页 / 共23页
点击查看更多>>
下载资源
资源描述

火焰模拟综合课程设计报告文档格式.docx

《火焰模拟综合课程设计报告文档格式.docx》由会员分享,可在线阅读,更多相关《火焰模拟综合课程设计报告文档格式.docx(23页珍藏版)》请在冰豆网上搜索。

火焰模拟综合课程设计报告文档格式.docx

4

陈明辉

2014220901014

5

易怀晨

2014220901030

6

杨海霞

2014220901032

 

目录

摘要3

第一章绪论6

1.1选题背景及意义6

1.2国内外研究现状6

1.3主要内容与章节安排10

1.4本章小结10

第二章火焰模拟的设计11

2.1总体设计11

2.2功能模块设计11

2.3本章小结12

第三章火焰模拟的实现12

3.1开发环境介绍12

3.1.1OpenGL简介12

3.1.2OpenGL绘图过程13

3.2主要功能模块的实现14

3.3本章小结21

第四章测试及成果展示21

4.1测试环境21

4.2测试用例和结果21

4.3成果展示25

4.4本章小结26

第五章总结与展望26

参考文献27

摘要

用计算机生成真实感图形一直是计算机图形学中最具有挑战性的研究方向之一,特别是对不规则模糊物体的模拟十分困难。

在火焰、烟、云等不规则模糊物体中,由于火焰的复杂特性,虽然当前计算机的计算能力和存储能力有了很大的进步,但还不能完整的再现火的所有的细节,因此根据不同的应用方向,研究火焰及其动态行为具有重要的意义。

首先,对目前国内外模拟火焰的各种算法进行了分析和总结,接着介绍了火焰粒子系统的基本原理及应用。

其次,针对火焰模拟的真实性和实时性的关键问题,设计了一种新的模拟火焰的粒子系统模型,在初始化新的火焰粒子的位置属性时,首先采用正态分布赋值,为了加快系统的运行速度,又采用连续帧的关系方程来生成下一帧的位置;

为了增加粒子系统的灵活性,引入空气速度场模拟火苗跃动现象;

为了增强绘制结果的真实感并缩短系统的运行时间,结合纹理映射技术,采样实际火焰燃烧视频记录中的连续关键帧作为纹理进行渲染;

由于粒子系统中粒子数量很多,为便于对粒子系统的管理,使其更具灵活性和可控性,引入高级粒子系统的思想,为了进一步提高系统的可控性,对结构进行了改善,由三层扩展到四层,在粒子系统与管理层之间增加了粒子系统族层,使得改进后的火焰粒子系统由粒子类、粒子系统类、粒子系统族、粒子系统管理类组成,提高了系统的交互性和可控性。

Abstract

Generatingavisuallyconvincingimageespeciallyforthoseirregularfuzzyobjectsisoneofthemostchallenginganddifficultproblemsincomputergraphics.Inirregularfuzzyobjectssuchastheflame,smoke,cloud,etc.,thesimulationoffireisofagreatchallengebecausethecompletenessoffire.Thoughcomputingcapabilityofthecomputerandmemoryabilityhavebeengreatlyimprovedatpresent,reproducingalldetailsoffirethatcan'

tbeintactyet,soaccordingtodifferentapplicationdirections,studyfireanditsdynamicbehaviorhaveimportantmeanings.

Firstly,thispaperanalyzedandsummarizedvariousalgorithmsofthedomesticandinternationalsimulationfireatpresent,thenintroducedthebasictheoryandapplicationoffireparticlesystem.Secondly,accordingtothekeyproblemofrealtimeandrealityinfiresimulationbasedonparticlesystem,anewfiremodelbasedonparticlesystemwasproposedinthispaper.Thepositionofnewparticlesareinitializedwithnormaldistributing,thenusetherelationfunctionofcontinuingframetogeneratethenextframepositioninordertodecreasetheimplementationtime.Toincreasethecontrollability,wealsointroducevelocityfieldtosimulatetheflickeringoffire.Inordertoincreasetherealityanddecreasetheimplementationtime,weusedthetexturemappingtechnologytoimprovetheeffectandefficiencyofrendering,andthetextureweresequencekeyframesampledfromrealfirevideorecord.Thenumberofparticleswasverylarge.Weintroduceadvancedparticlesystemtomangetheparticlesystem,andletitcontrollableandflexible.Theexitingthree-layerhierarchyoftheparticlesystemwasextendedtoafour-layerhierarchy.Theimprovedfiresystemwascomposedofparticleclass,particlesystemclass,particlesystemfamilyclassandparticlesystemmanager.Itimprovedtheinteractionandcontrollability.

第一章绪论

1.1选题背景及意义

火焰是自然界最常见的现象之一,火焰现象的模拟可以提高三维场景的真实感,在计算机游戏、三维动画及广告中有着广泛的应用,但是火焰所具有的动态性和随机性使其很难用常用的三维建模方法来模拟,一般的渲染技术也难以实现其真实感并且实时性差。

火、烟和云等自然现象的模拟也有着广泛的应用途径。

如一杯热气腾腾的咖啡、窗外林子里弥漫的薄雾和战场中熊熊燃烧的大火可以让虚拟社区和游戏的玩家身临其境;

海啸来临时几十米高的海浪席卷而来的画面和星球相撞时爆炸产生的大火、碎片迎面扑来的场景会让坐在电影院观众席中的你惊心动魄、无比震撼;

还有,在现实社会中,准确的预测大火在不同的建筑物和森林中的蔓延方式,无疑会帮助消防人员正确的指导火灾中的人群如何疏散;

飞行师训练时,在模拟飞行机中真实的再现周围的飞行环境,可以避免不必要的伤亡和减少高额的训练开支。

国内外学者一直在努力探索,先后提出了表示火、烟、云等不规则模糊物体的粒子系统模型、细胞自动机模型、分形模型、扩散过程模型、光照模型及纹理映射模型等。

其中“粒子系统”是迄今为止被认为模拟不规则模糊物体最为成功的一种图形生成算法。

在火、烟和云这些气体现象中,因为人们对火的理解的不完全性,火的模拟显得尤其困难。

火的物理化学性质复杂、运动规律随时间变化难以预测,虽然当前计算机的计算能力和存储能力有了很大的进步,但是还是不能完整的再现火的所有的细节,因此根据不同的应用方向,研究恰当的方法用计算机图形学技术描述火及其动态行为具有重要的意义。

1.2国内外研究现状

关于火焰模拟的方法基本上可以分为三类:

基于纹理的方法、基于物理的方法和基于细胞自动机的方法。

1.2.1国外火焰建模研究现状

基于纹理的火焰模拟方法

基于纹理的方法就是采用纹理模拟火焰。

Watt采用图像纹理模拟火焰,他先创建一个标准的火焰形状(原始图像),然后,采取某种方法干扰取样点,扭曲标准的火焰形状,从而得到运动的火焰外形。

在干扰取样点时,通常采用某种噪音(Noise)干扰,如果只是简单地采用随机数干扰,得到的效果将不会很理想。

除了图像纹理时,还可以采用实体纹理(SolideTextures)来模拟火焰,实体纹理的概念最早由Peachey和Perlin提出,Perlin采用实体纹理的方法模拟了2D和3D的火,用分形扰动(FractalPerturbation)模拟火的湍流运动。

1989年Inakage用纹理映射的方法实现了二维火焰的简单模型,即需要绘制出表面上一点时,通过将三维点转换为二维纹理图案中的点来确定此点的颜色,此点的纹理颜色被输入阴影模型来确定表面交点处的颜色。

这种方法模拟出来的火焰人工痕迹很大,难以获得具有真实感的运动图像,只适用于图像真实感要求不高的场合。

King等采用“TextureSplat”作为基本的图元来模拟火、烟和尘土等不规则物体。

Wei等在此基础上,通过采用流体力学中的LBM模型(LatticeBoltzmannModel)使“Splats”图元遵循一些简单的物理法则,提出了一种可以让“Splats”与周围环境相交互的方法。

因为“TextureSplat”的运动简单,所需的“Splat”图元数目有限,所以,相对粒子系统的方法来说,这种方法具有较好的时间性能。

Neyret提出了一种模拟真实流体的方法,这种方法不需要求解大量流体力学公式,它通过模拟一个低流动性并使它输送一个特殊纹理来实现模拟流体的整体运动以及小规模的漩涡。

难点是维持特定范围的纹理统计性在空间和时间上连续性。

基于物理的火焰模拟方法

基于物理的方法就是从自然界中的基本物理法则出发建立火的模型。

Perry和Picard从燃烧学出发,提出了用速度传播模型生成火焰的方法,Chiba等计算了燃烧物体的热交换,JosStam在他们基础上,从热力学定律出发提出了用扩散过程描述火和其它气体现象及其传播的方法。

JosStam的基本思想是认为气体的物理特征需要用随时间和空间变化的物理量来表示,这些物理量包括气体粒子的密度、扩散的速度、温度以及辐射性能,各个物理量之间的关系由一系列的N-S(Navier-Stokes)方程表示。

因为求解N-S方程的计算量非常大,因此假定气体不可压缩,在给定风向的条件下,就可以引入扩散方程来计算密度和温度的变化。

近些年来,一些研究者越来越关注火的具体的、准确的动态行为,它们的目标是准确的预测火势的发展以及火与周围环境的交互作用,然后将其应用研究于科学研究、消防火势预测和飞行员飞行环境模拟等方面。

这种准确的物理火焰模型通常分为两类:

地带模型(ZoneModel)和域模型(FieldModel)。

Andersson的地带模型使用有限个地带描述了火在一个封闭的房间内造成的影响。

域模型通常也被称作CFD模型(ComputationalFluidDynamicsModel),它把空间分成许多相似的单元。

如Carlsson模型将三维空间分成若干个可控制的体元(Voxel),即小的立体空间,然后运用一系列物理方程确定每个体元的质量、温度和压力等性质,然后由这些体元性质的变化来表现火焰及其运动。

虽然域模型可以得到非常精确的结果,但是,它的计算量是非常大的,而且会产生一大堆难以解释的输出数据。

Govindarajan等给出了一种可视化的方法解释CFD模型产生的结果。

L系统(LindenmayerSystem)通常用于模拟单独的植物或者整个生态系统,2003年Zaniewski和Bangay用扩展的L系统模拟了封闭的建筑物内火势的蔓延。

这个模型还可以用来预测火的蔓延速度,因此可以用来帮助确定建筑物内最安全的地带。

基于物理的方法还有一类是从图像的真实感出发建立火的模型。

研究者们使用一些物理方程或者简化的物理方程来模拟火的外观形态和动态行为,他们的目的是得到真实感强的动画,并将其应用于电影、电视和游戏等娱乐性的虚拟场景中。

1983年Reeves提出了粒子系统的方法来模拟自然界中的不规则景物,粒子系统的方法是采用某种图元来定义物体的体积而不是采用多边形来定义物体的表面的方法在电影《StarTrekII:

TheWrathofKhan》中,Reeves采用两级粒子系统来模拟火墙。

最近,一部分研究者开始采用复杂的“元球(Blob)造型”来代替简单的粒子。

“元球”由空间中的某点及环绕该点的密度域组成,“元球”的密度可以随时间被力场(如风场)改变,“元球”的形状也可以任意的扭曲,因此它更适合于描述气态物体的细节。

Stam和Fiume用“元球”来描述火焰等气态现象,并给出了一种扭曲“元球”的算法,使模拟的气态景物的外形更加不规则,从而更加真实。

Beaudoin等采用单独的火苗作为基本的元素来描述火。

整个描述火的过程可以分为三个部分:

传播、火苗的变化和绘制。

火苗由一串相连的粒子构成,靠近燃烧物体表面的粒子是根部,剩余的粒子链根据用户定义的参数运动。

因为Beaudoin等采用单独的火苗作为基本的元素,这种简化不仅加快了系统运行的速度,还使整个模拟过程的控制变得更加直观。

Nguyen等结合物理原理和图形技术得到了目前视觉效果最真实的火焰。

他们的火焰模型由三个部分组成:

蓝色的焰心、黑体辐射(BlackbodyRadiation)和烟尘(或者烟灰)。

此外,Nguyen等还绘制了火发出的光线,通过描述火的辐射和散射等现象,他们还解决了人眼的色适应问题。

Nguyen等的模型非常成功地模拟了气态燃料产生的火,但是相对于Beaudoin等的模型,它没有很好的模拟固体物体的燃烧产生的火。

基于细胞自动机的火焰模拟方法

1991年Pakeshi等提出了基于细胞自动机的火焰模型,在Pakeshi的火焰模型中,用一些简单的初始值和简单的状态转换规则来描述火焰的动态变化,每一个细胞单元有三个状态变量,即温度燃料密度气体流向,通过改变细胞变量的初始值,就可以得到不同的图像,但是Pakeshi等的火焰模型很难明确火焰温度、燃料密度和气体流向间的关系。

另外,浙江大学也使用细胞自动机的方法模拟了实时的海洋波浪。

1.2.2国内火焰建模研究现状

基于粒子系统的方法

2001年南京理工大学的张芹针对虚拟战场中的特殊需求,研究了火焰效应的建模理论,引入了火苗粒子,建立了基于结构化粒子系统的火焰模型,将粒子系统建模方法和分形几何的建模方法相结合,提出了分形粒子理论。

2002年王治刚等人分析了结合粒子系统和纹理映射对火焰模拟的过程,以及在对火焰模拟实践中,为求达到实时性和真实感效果要注意控制的因素。

2003年武汉理工大学周丽琨基于粒子系统理论建立自然界中不规则模糊物体的模型,采用粒子系统生成火焰、烟云等不同种类模糊物体的三维模型,根据各物体自身的物理及几何特点,调整粒子系统产生时的参数,通过软件实验,摸索出对上述每种物体合适的参数值,以及粒子系统在外界作用力(如风或者磁场等)的作用下,如何适当地对其参数进行调整。

2004年北京理工大学的赵春霞等人设计了粒子系统火焰模型,详细讨论了模型中粒子的属性及其变化,实现了具有较强真实感的颜色变化和动态摇曳等火焰特性,采用纹理映射和视线跟踪技术进行三维火焰渲染。

湖南大学的周洁琼在2005年提出了基于粒子系统的火焰模拟,通过对火焰外观的分析,采用高斯随机数为新的火焰粒子的初始位置赋值,这样,火焰粒子在生成时密度满足高斯分布,燃点中心的粒子密集,边界稀疏,体现出了火焰的团簇性。

基于纹理的方法

2003年中国民用航空学院的丁维才定位火焰是一种湍流现象,为了避免基于物理过程模型得到湍流函数带来的大量数学计算,使用了经验模型,通过Noise函数得到湍流函数值的结果。

在此基础上,给出了采用体过程建模技术模拟火焰的方法,特别是火焰柱的形成过程以及一片火焰苗的生成过程。

浙江大学的林夕伟在2004年先用少量粒子勾勒火焰的外轮廓线,再用纹理绘制的方法填充火焰纹理。

这样既利用了粒子系统形成轮廓线的真实感,又避免大量的粒子状态运算,并能体现动态火焰纹理的一致性和连续性。

基于细胞自动机的方法

2001年哈尔滨工业大学的唐好选提出了基于细胞自动机的火焰生成算法,同时向其它类型的气流场模拟进行了扩展;

对于有滚团效果的火焰现象(简称火团),提出了粒子系统和旋涡场相结合的火团生成算法,为具有旋涡现象的可变形气流场提供了有效的模拟方法。

1.3主要内容与章节安排

火焰模拟是以例子系统为基础,模拟火焰产生、运动和消失的过程,而该过程的研究往往涉及到物理学、数学、统计学、化学研究。

在国内外有很多种实现火焰模拟的方法,有的基于物理方法,有的基于纹理方法。

这次实验是用C++语言,以Opengl为底层图形库,基于粒子系统来实现火焰模拟的。

本文中主要内容和章节安排如下:

第二章描述了火焰模拟的设计,包括定义粒子类、视角控制、部分其他功能的添加等;

第三章描述了火焰模拟的实现,包括开发环境的介绍、主要功能模块的实现以及粒子的初始化参数设置;

第四章给出了测试及成果展示,以及本实验最终的成果展示。

1.4本章小结

火焰模拟是一种较为复杂的系统,它对于动画、消防、科学等多方面具有很重要的意义。

而国内外研究该模拟的方法具有很多种,每种都有各自的特点,但大部分都会使用粒子系统为基础,该方法简单、有效、模拟较为真实。

第二章火焰模拟的设计

2.1总体设计

本文实现的火焰模拟的总体设计如下:

1.在空间中生成两张30X30的平行网格,上下相聚一定距离。

2.从上面的网格随机生成粒子,向下面的网格运动,设置粒子的颜色使得看上去向雪花下落的样子。

这部分为雪花粒子系统。

3.在下面网格中心部分生成火焰粒子系统。

2.2功能模块设计

我们知道计算机本身只能处理数字和显示二维的图形,因此如果我们想要在

算机图形设备上生成三维场景,首先需要在给定的参考坐标里选择三维空间合适的位置绘制三维火焰以及其他三维物体,由此构成场景,并且为了方便用户观察,我们还需要设定所要期望的观察场景的视点、视方向、视域等。

在初始化场景模块中,我们将根据三维场景视图显示的原理,设定合适的参数。

1.雪花粒子系统

在particles.h中定义粒子类,包括初始位置、速度、加速度、颜色、透明度等属性等属性。

在textures.cpp中对雪花粒子使用tga方式贴图,在main.cpp中设置雪花粒子的初始值,生成雪花粒子系统。

2.火焰粒子系统

在textures.cpp中对雪花粒子使用tga方式贴图,在main.cpp中设置火焰粒子的初始值,并生成火焰粒子系统。

该火焰系统分为两成结构,底部一层的粒子范围较宽,但生命周期较短。

中间一层的初始位置在底部偏上,范围就在中心位置周围,且生命周期要长。

两层结构中间部分会有部分粒子重合,所以中间的火焰较为明亮。

并且伴随着粒子生命周期的进行,粒子旋转上升,粒子的透明度和颜色会改变,形成渐变的情况。

除了最简单的火焰系统的实现,我们还增加了按键控制,如qe按键控制火势的大小,zc键控制了风向。

3.Camera模块

在camera.h中定义了camera类,包括移动camera,旋转camera等函数。

在main.cpp中,使用了鼠标左键来控制camera的旋转,wasd按键控制camera的移动。

2.3本章小结

本章给出了全部功能模块及实现。

通过初始化场景设立合适的视点,然后通过编写的particle类生成火焰及雪花的效果模拟,并且在火焰上加上火势的按键控制,为火焰和雪花共同增加吹风效果。

第三章火焰模拟的实现

3.1开发环境介绍

3.1.1OpenGL简介

经过多年来对计算机三维可视化技术的研究,目前研究者已经开发出许多优秀的可视化工具,尤其是由著名的SGI公司研发的GL三维图形库。

GL三维图形库使用起来简便而且具有强大的功能,因此获得许多三维应用软件开发者的青睐,开发出的三维软件在医学、产品设计、建筑设计及流体力学研究方面以获得广泛的应用。

随着计算机技术的继续发展,GL已经进一步发展成为OpenGL,

OpenGL规范由ARB(OpenGLarchitecturereviewboard)负责管理,SGIMicrosoft(微软)、Intel(英特尔)、IBM、Sun、Compaq和HP等公司都已经加入OpenGLARB成为成员。

OpenGL独立于硬件设备、窗口系统和操作系统,因此以OpenGL为基础开发库的应用程序可以在各种平台之间移植,如Windows95、WindowsNT、Unix、Linux、MacOS、OS/2。

OpenGL包括了120个图形函数,开发者可以用这些函数来建立三维模型和进行三维实时交互。

OpenGL提供了一种比较直观的编程环境,三维图形开发的技术人员可以方便的借助OpenGL的图形处理能力以及图形函数很快地设计出三维图形以及三维交互软件。

OpenGL可以用各种编程语言调用。

各种流行的编程语言如C、C++、FORTRAN、Ada和Java等都可以调用OpenGL中的库函数。

OpenGL可以绘制各种简单的三维物体,也可以高效地生成交互的复杂动态场景,它有如下主要功能:

(1)建模:

OpenGL图形库除了提供基本的点、线、多边形的绘制函数外,还提供了复杂的三维物体(球、锥、多面体、茶壶等)以及复杂曲线和曲面绘制函数。

(2)变换:

OpenGL图形库的变换包括基本变换和投影变换。

基本变换有平移、旋转、变比和镜像四种变换,投影变换有平行投影(又称正射投影)和透视投影两种变换。

其变换方法有利于减少算法的运行时间,提高三维图形的显示速度。

(3)颜色模式设置:

OpenGL颜色模式有两种,即RGBA模式和颜色索引基于OpenGL的真实感三维海面模拟(ColorIndex)。

(4)光照和材质设置:

OpenGL光有辐射光(EmittedLight)、环境光(AmbientLight)、漫反射光(DiffuseLight)和镜面光(SpecularLight)。

材质是用光反射率来表示。

场景(Scene)中物体最终反映到人眼的颜色是光的红绿蓝分量与材质红绿蓝分量的反射率相乘后形成的颜色。

(5)纹理映射(TextureMapping)。

利用OpenGL纹理映射功能可以十分逼真地表达物体表面细

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 成人教育 > 电大

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1