发明名称 一种基于热力学模型的固体燃烧过程模拟方法
摘要 本发明提供一种基于热力学模型的固体燃烧过程模拟方法,包括了四个步骤:预计算阶段,用于处理模型表面的几何信息以及模型燃烧后的纹理颜色等细节变化;物体表面的火焰扩散计算阶段,主要根据当前的模型燃烧状态,按照热力学模型迭代计算出下一个时刻火焰在模型表面的燃烧范围;燃烧物体的形变计算阶段,根据火焰扩散范围和燃烧状态,结合模型表面的材质特点计算出模型的形变程度;真实感绘制阶段,根据虚拟场景中物体的燃烧状态,对火焰和模型进行真实感绘制。本发明可完全基于GPU来模拟燃烧过程中火焰在物体表面的扩散、物体因燃烧而发生形变的过程,并可对火焰自身进行逼真渲染,具有实时性好,物理真实感强的特点。
申请公布号 CN102867336B 申请公布日期 2015.03.11
申请号 CN201210333657.0 申请日期 2012.09.10
申请人 北京航空航天大学 发明人 李帅;冉蛟;郝爱民;杨丽鹏
分类号 G06T19/00(2011.01)I;G06T17/30(2006.01)I 主分类号 G06T19/00(2011.01)I
代理机构 北京科迪生专利代理有限责任公司 11251 代理人 杨学明;李新华
主权项 一种基于热力学模型的固体燃烧过程模拟方法,其特征在于包括以下四个步骤:步骤(1)、燃烧模拟预计算:通过由Normal Map所描述的固体表面细节几何特征,对漫反射纹理进行预处理,计算出燃烧以后固体表面的漫反射纹理,并根据三维网格模型的几何结构,预计算后续仿真所需的三角面片面积;具体的,该方法结合预计算和过程纹理(Procedural Texture)来模拟火焰燃烧时固体表面的特殊效果,在固体燃烧时,模型表面的细小起伏会导致表面颜色发生一些细节上的变化;燃烧细节纹理通过仿真计算得到,在绘制的时候,根据模型表面的燃烧状态将燃烧细节纹理和漫反射纹理进行混合可得到最终的颜色:<img file="FDA0000623289840000011.GIF" wi="520" he="82" />其中的<img file="FDA0000623289840000012.GIF" wi="46" he="81" />表示燃料消耗的比例,T<sub>Diffuse</sub>表示未燃烧时的漫反射颜色、T<sub>Detail</sub>表示燃烧细节颜色得到的颜色,在预计算阶段,会通过使用γ粒子来对模型纹理进行预处理,并算出燃烧过程中模型表面不同位置在燃烧细节上的差异,进而得到燃烧导致的细节颜色变化,而T<sub>Detail</sub>的计算则主要来自于预计算结果;预计算的整体思路是:通过Bump Map/Normal Map来表示模型表面的细节起伏,并构造出模型表面的细节网格,具体步骤为:将整个漫反射纹理看作一个平面,从Bump Map/Normal Map中读取模型表面的起伏信息,构造出一个只具有模型细节几何信息的表面;然后从半球空间内发射粒子,并模拟粒子在这个细节表面上的运动传播过程,每一个粒子对其落脚的地方都产生一定的灼烧效果;最终将所有粒子对灼烧效果的贡献保存到一张细节纹理中,即燃烧细节纹理;预处理阶段是一个循环迭代的计算过程,每一次迭代都会发射出数千个粒子,并跟踪这些粒子在场景中的传播,粒子在和固体表面发生碰撞后,可能会被反射、反弹、甚至被吸收,具体会进入哪种状态取决于粒子当时的运动状态、碰撞表面的材质和输入的参数;每一个粒子主要包含两类属性:传播属性和燃烧属性,传播属性决定了该粒子在循环中的运动行为;燃烧属性则决定了当粒子最终被模型表面吸收时对固体表面所带来的影响,所具体使用的粒子属性请参见表1;表1  粒子属性<img file="FDA0000623289840000013.GIF" wi="2059" he="231" /><img file="FDA0000623289840000021.GIF" wi="2064" he="357" />粒子的运动轨迹完全由表1中的传播属性决定,该方法限定一个粒子只能处于以下四种状态之一:反射、反弹、滑动和被吸收;传播属性中的各个概率代表了一个粒子的能量分配比率,当一个粒子还具有能量时,它总是会在反射、反弹和滑动这三种状态之间切换;当它的能量耗尽时才会进入到最后一种状态,被材质表面吸收;如果粒子没有和材质表面发生碰撞,那么它的传播属性不会发生变化;如果发生了碰撞,可根据粒子属性和碰撞点的属性计算出新的传播属性的值;模型表面也具有两种属性:反射属性和材质属性,具体请参见表2;表2  模型表面预计算属性<img file="FDA0000623289840000022.GIF" wi="2064" he="562" />反射属性决定了当一个粒子与固体表面发生碰撞并且进入到反射、反弹和滑动三种状态之一时对应的粒子传播属性的变化量,Δs、Δp和Δf都是负数,即粒子在碰撞以后能量会减少,并且最终会被模型表面的某一点吸收,当粒子与固体表面发生碰撞但并没有在该处被吸收时,它所携带的能量也会发生衰减;步骤(2)、固体表面的火焰扩散计算:通过将热力学模型与三维网格模型表面的测地距离计算模型相结合,迭代计算火焰在三维网格模型表面的燃烧扩散状态,并将其以纹理形式储存到显存中,以便于GPU加速计算使用;步骤(3)、燃烧固体的形变计算:根据步骤(2)中计算得到的火焰在三维网格模型表面的燃烧扩散状态,通过使用弹簧质点模型和描述燃烧形变的物理模型来计算三维网格模型的形变;弹簧质点模型用于计算形变时三维网格模型顶点间的相互作用力,基于可移动欧拉网格的烟雾模拟和描述燃烧形变的物理模型则主要用于计算燃烧分解导致的形变作用力,计算结果以纹理形式存储到显存中;步骤(4)、火焰和燃烧固体的真实感绘制:使用步骤(1)中预计算得到的漫反射纹理和步骤(2)、步骤(3)中得到的火焰在三维网格模型表面的燃烧扩散状态和所述的形变对虚拟场景中的固体和火焰进行真实感绘制。
地址 100191 北京市海淀区学院路37号