一种用湍流方程丰富火焰模拟细节的方法技术

技术编号:16285647 阅读:25 留言:0更新日期:2017-09-24 11:32
本发明专利技术涉及一种用湍流方程丰富火焰模拟细节的方法,(1)采用基于网格的欧拉方法,使用CUDA加速求解Navier-Stokes方程,得到火焰的速度场、密度场和温度场;(2)采用粒子方法简化标准k-e湍流方程,并利用CUDA加速求解得到粒子的湍动能和能量耗散率;(3)生成窄带随机纹理场,进而求旋度得到速度场,然后根据粒子的位置在随机速度场中采样,得到粒子所在处的速度;(4)合成粒子的扰动速度,然后利用该速度以高斯衰减的权重扰动粒子邻域内的网格节点处的速度,驱动密度场和温度场的运动;(5)利用CUDA和OpenGL的缓冲区映射,直接渲染CUDA计算出来的数据场,得到火焰面片。

A method of simulating flame detail with turbulent equation

The invention relates to a method for turbulent flame simulation equation of rich details, (1) the Euler method based on grid, accelerate the use of CUDA to solve the Navier-Stokes equations, get the flame velocity field, density field and temperature field; (2) using the particle method to simplify the standard k-e turbulent flow equation, and the calculated turbulent kinetic energy the particle and energy dissipation rate CUDA; (3) generating narrow-band random field texture, which can be obtained according to the rotation velocity field, then the position of the particles in random sampling in the velocity field, where the particle velocity; (4) the disturbance velocity synthetic particles, and then use the weight speed to Gauss attenuation disturbance at grid the nodes in the neighborhood of the particle velocity, driving movement density field and temperature field; (5) the use of buffer mapping of CUDA and OpenGL, calculated the number of CUDA direct rendering According to the field, get flame patches.

【技术实现步骤摘要】

本专利技术涉及一种用湍流方程丰富火焰模拟细节的方法,属于虚拟现实科学

技术介绍
火焰是自然界的基本元素之一,与人类的生存和生活有着密切的联系,在虚拟世界中对火焰进行真实重现,可以帮助人类增强认知,把握规律,改善人类行为,更好地按照规律办事。火焰的真实感模拟,在消防训练、军事仿真、影视特效、虚拟现实等领域有着重要的科学价值和经济效益,同时也是计算机图形学中最具有挑战性的研究方向之一。燃烧是一种快速的带化学反应的流体动力学过程,受众多的因素影响。几乎所有的燃烧过程都伴随着流动过程,而燃烧所产生的火焰与这种流动相互作用,进而对火焰的结构、稳定性产生影响。通常,根据火焰的形态、稳定性,可将其分为两类:层流火焰和湍流火焰。根据流体力学的相关理论,当雷诺数较小的时候,黏性力对流场的作用大于惯性力,导致流速因受黏滞力的影响而衰减,流体流动趋于稳定状态,形成层流,层流火焰是最简单的一种火焰,火焰锋面光滑稳定;而当雷诺数较大时,惯性力对流场的作用超过黏性力,流体运动趋于不稳定,流速的微小变化容易发展和增强,形成紊乱、不规则的流场,成为湍流,湍流火焰结构复杂,其锋面出现许多褶皱和小漩涡。在实际生活中,由于燃烧环境的不稳定,所产生的火焰多数都具有湍流现象,所以对于湍流火焰的模拟可以获得更为逼真的、实际的效果,尤其是可以在影视、动画中产生更为生动的特效提供帮助。传统的基于物理的火焰模拟方法是使用Navier-Stokes方程,通过求解Navier-Stokes方程得到火焰的密度场和温度场,再对求解所得的数据场进行渲染得到火焰面片。火焰作为一种低粘度的特殊流体,在实际的燃烧过程中是会呈现出丰富的细节特征的,然而由于求解方程过程中存在数值耗散的问题,火焰的许多细节特征丢失,造成所模拟的火焰真实感较差。本专利技术引入流体力学中的湍流方程,对火焰燃烧过程中的湍流进行建模,使得火焰呈现出湍流细节,增强真实感。
技术实现思路
本专利技术解决的技术问题是:针对目前火焰模拟中湍流细节丢失、真实感不强的现状,提出了一种湍流细节增强的火焰模拟方法,对三维火焰的湍流运动进行建模模拟,使得火焰的三维模拟效果更加逼真。本专利技术提出一种模拟火焰湍流方法,包括以下步骤:(1)、基于CUDA加速的Navier-Stokes方程求解,采用的是基于网格的欧拉法,对Navier-Stokes方程进行离散,并利用CUDA加速对离散后的方程进行数值求解,得到火焰的速度场、密度场和温度场,从而获取火焰的主体形态轮廓;(2)、基于标准k-e湍流方程,使用粒子方法简化标准k-e湍流方程,然后使用第(1)步求得的速度驱动粒子运动,并利用CUDA加速求解简化后的方程,到粒子的湍动能和能量耗散率;(2.1)利用求解Navier-Stokes方程得到的速度场计算应变量;(2.2)由应变量计算能量产生项;(2.3)将能量产生项带入粒子简化后的标准k-e湍流方程求解得到湍动能和能量耗散率;(3)、由窄带随机纹理场生成随机速度场;(3.1)创建一张由随机噪声点组成的随机纹理场R;(3.2)对这张随机纹理场向下采样,得到尺寸减半的纹理场R↓;(3.3)再将纹理场R↓向上采样,得到原尺寸大小的纹理场R↓↑;(3.4)将原始纹理场R减去经过采样处理的纹理场R↓↑,得到具有窄带性质的随机纹理场;(3.5)由随机纹理场R↓↑生成速度场;(4)由随机速度场和湍动能合成具有高频特征的扰动速度场;(4.1)在第(2)步得到的速度场中进行多频段采样,得到粒子所在位置处的速度;(4.2)与第(1)步中的湍动能合成粒子的扰动速度;(4.3)利用该速度高斯衰减地扰动粒子邻域内的网格节点处的速度,然后驱动密度场和温度场运动;(5)对粒子进行分组,从前往后分别绘制每一组粒子,并利用CUDA和OpenGL的缓冲区映射,加速渲染,得到具有湍流细节的火焰面片;(5.1)以视点和光源的半角方向为基准,将空间划分为垂直于该半角方向的均匀间隔的切片,然后将相邻切片之间的粒子分为一组;(5.2)对于每一组粒子,分别以视点方向和光源方向进行绘制,然后从前往后将绘制结果进行混合,得到最终的火焰面片。本专利技术的有益效果是:(1)本专利技术针对目前火焰模拟湍流细节缺失的现状,提出了一种基于湍流方程的火焰湍流细节增强的模拟方法,是所模拟的火焰更加逼真。(2)本专利技术采用GPU加速物理方程的求解过程,并且采用CUDA和OPENGL的缓冲区映射,使得计算和渲染都在GPU上进行,避免了CPU和GPU之间每帧数据的传输,提高了计算和渲染的效率附图说明图1为本专利技术的技术方案图;图2为本专利技术的火焰渲染的说明图。具体实施方式下面结合附图对本专利技术作进一步的描述。步骤1采用基于网格的欧拉方法,使用CUDA加速求解Navier-Stokes方程,得到火焰的速度场、密度场和温度场。▽u=0∂u∂t=-(u▿)u-1ρ▿p+v▿2u+f]]>∂ρ∂t=-(u·▿)ρ]]>∂T∂t=-(u·▿)T]]>其中,u是速度,ρ是密度,p是压强,ν是粘性系数,f是外力,T是温度。步骤2采用粒子方法,使用CUDA加速求解标准k-e湍流方程,得到湍动能和能量耗散率:步骤2.1利用步骤1所得的速度场计算应变量:Sij=12(∂Ui∂xj+∂Uj∂xi)]]>其中,U是速度。步骤2.2由应变量计算能量产生项:P=2vTΣijSij2]]>其中,νT是粘性系数。步骤2.3在OpenGL中定义顶点缓冲区,存储粒子的速度、位置、颜色和纹理坐标,利用CUDA和OpenGL的缓冲区映射,在CUDA中读取该缓冲区,根据步骤2.2的结果计算粒子简化后的标准k-e湍流方程求解得到湍动能和能量耗散率:DkDt=P-ϵ]]>DϵDt=ϵk(C1P-C2ϵ)]]>其中,k是湍动能,ε是能量耗散率,P是步骤2.2得到的能量产生项,C1、C2、是常数。步骤3生成随机纹理速度场,然后根据粒子的位置在随机速度场中采样,得到粒子所在本文档来自技高网
...

【技术保护点】
一种用湍流方程丰富火焰模拟细节的方法,是通过求解湍流方程得到湍动能,再结合随机速度场,对火焰的速度场进行扰动,得到具有高频湍流特征的速度场,然后驱动火焰的密度场运动,得到具有湍流细节的火焰。该方法的特征在如下步骤: (1)使用CUDA加速求解Navier‑Stokes方程,得到火焰的速度场、密度场和温度场,从而得到火焰的主体形态; (2)使用粒子方法对标准k‑e湍流方程进行简化,然后使用第(1)步求得的速度场驱动粒子运动,并利用CUDA加速求解简化后的方程,到粒子的湍动能和能量耗散率; (3)生成具有窄带特征的随机纹理场,再由窄带随机纹理场生成随机速度场,根据粒子位置采样得到粒子所在处的速度; (4)根据第(2)步得到的采样速度和第(1)步中的湍动能合成粒子的扰动速度,在该粒子的邻域内以高斯衰减的权重扰动粒子邻域内的网格节点处的速度,使网格节点的速度有了更多的高频细节特征,然后以该速度驱动火焰密度场、温度场的运动; (5)对粒子进行分组,从前往后分别绘制每一组粒子,并利用CUDA和OpenGL的缓冲区映射,加速渲染,得到具有湍流细节的火焰面片。

【技术特征摘要】
1.一种用湍流方程丰富火焰模拟细节的方法,是通过求解湍流方程得到湍动能,再结合随机速度场,对火焰的速度场进行扰动,得到具有高频湍流特征的速度场,然后驱动火焰的密度场运动,得到具有湍流细节的火焰。该方法的特征在如下步骤:
(1)使用CUDA加速求解Navier-Stokes方程,得到火焰的速度场、密度场和温度场,从而得到火焰的主体形态;
(2)使用粒子方法对标准k-e湍流方程进行简化,然后使用第(1)步求得的速度场驱动粒子运动,并利用CUDA加速求解简化后的方程,到粒子的湍动能和能量耗散率;
(3)生成具有窄带特征的随机纹理场,再由窄带随机纹理场生成随机速度场,根据粒子位置采样得到粒子所在处的速度;
(4)根据第(2)步得到的采样速度和第(1)步中的湍动能合成粒子的扰动速度,在该粒子的邻域内以高斯衰减的权重扰动粒子邻域内的网格节点处的速度,使网格节点的速度有了更多的高频细节特征,然后以该速度驱动火焰密度场、温度场的运动;
(5)对粒子进行分组,从前往后分别绘制每一组粒子,并利用CUDA和OpenGL的缓冲区映射,加速渲染,得到具有湍流细节的火焰面片。
2.根据权利要求1所述的一种用湍流方程丰富火焰模拟细节的方法,其特征在于:所述步骤(2)中使用粒子方法简化标准k-e湍流方程并加速求解的方法如下:
(2.1)标准k-e湍流方程为:
其中,k是湍动能,ε是能量耗散率,u是速度,νT是粘性系数,C1、C2、σ1、σ2是常数,P是能量产生项,计算公式为:
将标准k-e湍流方程用粒子方法简化为:
(2.2)在OpenGL中定义顶点缓冲区,存储粒子的速度、位置、颜色和纹理坐标,利用CUDA和OpenGL的缓冲区映射,在CUDA中读取该缓冲区,根...

【专利技术属性】
技术研发人员:周忠高宏昌伍朝辉吴威
申请(专利权)人:北京航空航天大学
类型:发明
国别省市:北京;11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1