火焰的快速模拟
- 格式:pdf
- 大小:325.28 KB
- 文档页数:6
第19卷第1期 2007年1月 计算机辅助设计与图形学学报
JOURNAL 0F COMPUTER—AIDED DESIGN&COMPUTER GRAPHICS Vo1.19.No.1 Jan.,2007
火焰的快速模拟 王继州 顾耀林 (江南大学信息工程学院无锡214122) (yylb99@163.corn)
摘 要 在粒子系统方法的基础上,比较了近年来的最新研究成果和实际应用方法,提出了基于纹理片的快速的火 焰模拟方法.选用合适的纹理片,设置较小的透明度,以纹理叠加方式来演示燃烧的过程;给出了具体的模拟步骤, 并且通过不同的设置来构造不同的燃烧场景.对比分析显示,纹理片方法在很多方面都具有一定的优势,也具有一 定的扩展空间和应用前景.最后给出了实际的计算机模拟效果.
关键词 火焰模拟;粒子系统;纹理片;气体现象 中图法分类号TP391
A Method for Efficient Flame Simulation
Wang Jizhou Gu Yaolin (College of Information Engineering,Southern Yangtze University,Wuxi 214122)
Abstract On the theoretical basis of the particle system with an investigation of various new research results and application methods in recent year,this paper presents an efficient flame simulation method based on the texture slice.The method USeS suitable texture slices with less transparency,to render the flame procedure by a rotation loop.Furthermore,the simulation steps and different flame environment constructions have been given.The analysis shows that the texture slice method possesses advantages in various aspects and has potential in many application fields.Finally,the actual computer simulation results are presented in the paper.
Key words flame simulation;particle system;texture slice;gaseous phenomena 随着计算机技术的飞速发展,火焰燃烧等自然 现象越来越多地出现在计算机动画、影视制作和战 场模拟的场景之中.火焰同云、烟、雾一样,具有实 时的多变性和无规则性,无法进行准确的数学描述. 如何生成具有真实感的火焰效果是计算机图形学中 有挑战性的工作之一.计算机火焰模拟的方法可以 分为三大类:基于纹理技术的、基于粒子系统的_1之 和基于数学物理模型的火焰模拟l3 j. 基于数学物理模型方法的主要思想是把火焰看 成一种特殊的流体或特殊的物理过程,通过求解 Navier-Stokes(NS)方程实现对火焰发展变化的控 制.该方法能够比较精确地求解流体过程,对于流体 运动变化的描述较为准确;但其计算非常复杂、计算 量比较大,难以满足计算机图形学对模拟效果实时 性的要求.2004年,Wei等 把Lattice—Boltzmann 方法应用于气体及自然现象的模拟,取得了一定的 效果,该算法在多处理器的计算机上计算优势比较 明显.近年来出现的以几何特征为出发点的模拟方 法【8-1oj把火焰从一定的几何角度进行规划,增加了 计算的复杂度、制约了应用的灵活性. 基于粒子系统的方法是把火焰等无规则外形的 物体看作是由无数的微小颗粒(称为粒子)所组成 的,每一个粒子都有其固有的属性,如粒子的位置、 颜色、大小、形状,粒子的透明度、生命期,以及粒子 的速度、加速度等.随着模拟的进行,其属性值不断 发生变化,这种变化使粒子经历了从产生、发展变化
收稿日期:2006—03—24;修回日期:2006-06-13.王继州,男,1975年生,硕士研究生。主要研究方向为计算机图形学、不规则物体的建模、 计算机动画等.顾捆林,男,1948年生,教授。硕士生导师,主要研究方向为计算机图形学、虚拟现实等.
维普资讯 http://www.cqvip.com l期 王继州等;火焰的快速模拟 103 到消亡的全过程.粒子的属性大多是由随机函数进 行控制的,因此模拟的效果随意性比较强.另外,随 着模拟场景的逐渐扩展和粒子数目的不断增加,它 所消耗的计算资源也给人们带来了一定的压力,基 于粒子系统方法最大的优点是实现简单、应用的范 围比较广.目前人们仍然在对这种方法进行研究和 扩展,不断加以改进和完善. 基于纹理的火焰模拟是在整体和局部上采用纹 理贴图的方法进行模拟.文献[11]用少量的粒子确 定出一条变化的轮廓中心线,然后向两边进行扩展; 大致确定了燃烧的范围之后,进行一定规则的划分 并填充纹理.该方法模拟出的是二维结构的燃烧火 焰,人工痕迹较明显,难以表现动态火焰燃烧的真实 情景.2002年,Wei等【1 用微小纹理片的方法进行 火焰的模拟,它是在Lattice—Boltzmann方法计算的 基础上对火焰的细节部分加以丰富和美化,模拟效 果比较理想,但是Lattice—Boltzmann方法本身的计 算过程却比较复杂.2001年,Harris等¨3_采用纹理 片的方法模拟天空中的云,对其中纹理片的属性进 行了合理的设置和控制,取得了较好的模拟效果. 本文以粒子系统的基本思路为出发点,以模拟 的视觉效果为主要目的,结合近年来比较受关注的 相关纹理技术,扩充了文献[13]中的应用领域,提出 了直接采用二维纹理片进行火焰等模拟的新思路, 并在个人计算机上加以实现,取得了较好的模拟效 果和比较理想的模拟速度.
1算法描述 本文从当前影视制作和广告设计等的视觉角度 出发,考察算法中数据结构的设置依据和完整的实 现过程. 1.1数据结构 基于纹理片的火焰模拟与传统的粒子系统有相 似之处,主要区别是把传统的大量粒子更换为具有 一定大小的纹理片.由于任意一张纹理片都代替了 数目众多的粒子,因而能够节省大量的存储空间和 计算控制时间.单个纹理片的数据结构如下: Street Texture{ float z, , ;//纹理片的中心坐标值 float size;//纹理片的绘制边长(纹理片的大小) float ffj白;//纹理片的生命期 float n;//纹理片的绘制透明度 *char Text“Ires;//该纹理片所采用的纹理图片
float rot-x,rot y,rot-z;//gt理片的显不旋转角度 …}TextureP 在实际模拟的场景中,不断地产生新的纹理片, 并不断地变化其属性值,直到其消亡为止. 1.1.1纹理片的位置 场景中每一个要绘制的纹理片都经历了产生、 变化、最后消亡的全过程.为了描述火焰燃烧的具 体位置,通常把火焰的着火点定义为简单特征的空 间几何体,如空间球面或平面.本文算法中,以球面 作为纹理片产生的源泉,纹理片从球面产生后,沿着 某一特定方向进行运动变化.为了改善粒子系统的 随机性,我们采用理论轮廓加随机扰动的方法,火焰 的理论轮廓表现为“类二次指数函数曲线”,相应的 推导过程见文献[14].为便于描述,设置纹理片的 中心坐标和边长两大属性,即表示为 Text“ P— =C1e(Texture ̄y) +rand(). 其中,c,e 就是火焰的理论轮廓所采用的类二次 指数函数曲线;C.是整体调节常数;rand()产生随 机的扰动. £“ P— 从燃烧位置处开始计算, 沿一定步长进行运动.为了简化计算,本文采用均 匀的y坐标步长: £“ P— +=STEP.其中, STEP是模拟过程中设置的常数,对于Z轴而言, 它对人们的视觉效果影响并非至关重要.可以保留 随机的运动方式n “ P— +=rand(). 1.1.2纹理图片的选择与纹理片的大小 纹理图片的选择与纹理片本身的大小对于整体 的模拟场景是非常重要的.本文算法总共采用了30 张纹理图片,分为起始类、燃烧类和扩展类3大类, 分别有8,10,12张纹理图片,代表着火焰燃烧的3 个阶段.各种类型的图片具有相似性,也有必要的 互补性.如果在火焰的上端,既有燃烧边界在左、右 侧的。也有燃烧边界在上、下侧的.在纹理片发展变 化的各个时期,可以随机地从中挑选相应类型的图 片作为纹理来使用,如果在计算机自动挑选纹理图 片的过程中出现了左右或上下颠倒的情况,那么场 景中就会意外地呈现出火焰的涡旋和翻滚效应,这 是人们在实际的模拟过程中所希望的.所有图片都 是从实际燃烧的照片中经过细心挑选制作的,具有 很强的代表性.必要时人们可以根据具体的要求对 图片库进行扩充与修改. 分析实际燃烧情况可知:火焰刚开始的时候亮 度比较弱、燃烧的范围比较小,可采用较小的纹理片 (控制其边长值),并挑选低亮度的纹理图片进行贴 图操作,如图1 a所示的纹理图片序列.
维普资讯 http://www.cqvip.com