当前位置: 首页 > 专利查询>南昌大学专利>正文

基于改进的半拉格朗日法的烟雾仿真计算方法技术

技术编号:37158760 阅读:32 留言:0更新日期:2023-04-06 22:22
本发明专利技术提出基于改进的半拉格朗日法的烟雾仿真计算方法,包括:一、构建改进的烟雾模型:该改进模型包括改进物理方程组、离散烟雾仿真空间;二、求解烟雾物理模型:提出MacCormack法求解平流项,提出预条件共轭梯度法对扩散项和投影项的求解泊松方程;三、基于改进的光线投射算法对烟雾进行渲染。本发明专利技术针对传统烟雾物理模型仿真过程中出现的数值扩散问题提出改进的模型,提升结果准确度同时很好地解决数值扩散问题;在渲染精度问题上,通过三线性插值法对采样点进行重采样,产生的图像质量较高。本发明专利技术提出的算法比传统物理模型模拟烟雾效果上有很大的提升,解决了欧拉法在时间步长过大导致的不稳定性以及拉格朗日法在粒子数量多导致的模拟效率差问题。在粒子数量多导致的模拟效率差问题。在粒子数量多导致的模拟效率差问题。

【技术实现步骤摘要】
基于改进的半拉格朗日法的烟雾仿真计算方法


[0001]本专利技术属于流体模拟
,具体涉及一种基于改进的半拉格朗日法的烟雾仿真计算方法。

技术介绍

[0002]烟雾模拟在游戏和影视特效等方面应用十分广泛,随着虚拟现实技术的进步,烟雾仿真的研究在虚拟手术中也成为了一大热点。形象而逼真的烟雾能给医护人员带来良好的术中模拟效果以此获得手术经验从而增加手术成功几率,而且能防止烟雾有害物质的入侵,对医护人员的健康提供了保障。
[0003]烟雾流体的仿真研究一直是计算机图形学研究领域的难点,流体由于没有固定的形状又使得经典的欧几里得几何学不能很好地描述其运动过程,且运动过程极易受到外力的影响,运动的不确定性较大。国内外学者们一直在努力探索模拟烟雾等流体现象的新方法。
[0004]基于物理的模拟由于其是从烟雾流体内部的运动规律出发,故在模拟效果方面更加逼真的同时又可以表现出烟雾运动过程中丰富的细节,从而逐渐成为研究的热点。当前的流体模拟在实时性方面已经难以适应它们的要求,如何提高流体模拟的实时性,已成为一个亟需解决的问题。
[0005]基于物理模型的方法是模拟流体现象的另外一种基本方法,经过近几年的发展它已成为计算机图形学中模拟流体现象的一种主流方法。尽管该方法比基于粒子系统的方法在计算复杂度上要高得多但它是基于流体运动的内在物理特性所以能逼真地模拟各种自然流体现象。直到1996年,Foster和Metaxas对三维空间的流体进行了模拟,并取得了较好的效果,但他们在求解动量方程时采用显式的方法这种方法只有在时间步长很小时才能保持稳定。
[0006]后来,Stam提出了一种无条件稳定的模型求解对流项时采用半拉格朗日方法求解动量方程时采用隐式求解方法。半拉格朗日方法大大地减少了计算时间,提高了运算速度,但是它会带来大量数值耗散,从而会导致一些典型的小尺度漩涡消失得太快。
[0007]Stam通过使用半拉格朗日方法解决了在求解N

S方程组时条件稳定性问题,该法可使用大的时间步长,减少了计算的频率,故提升了求解速度且保持无条件稳定。为其他学者提供了重要的模拟思路。
[0008]而Fedkiw等在模拟烟雾时采用“漩涡约束”技术把数值耗散引起的能量损失补回到流场同时采用高阶的插值方法来增加计算精度,从而提升烟雾模拟的真实感。但由于高阶插值的带来的时间成本导致效率跟不上,实时性达不到要求。

技术实现思路

[0009]为了解决现有技术中真实感和实时性的平衡问题,本专利技术提出了一种提升求解效率和优化渲染真实感的烟雾仿真方法。实验证明该专利技术在视觉和指标上都有比较优秀的效
果。
[0010]本专利技术采用的技术方案为:
[0011]一种基于改进的半拉格朗日法的烟雾仿真计算方法,包括以下步骤:
[0012]S1、构建改进的烟雾模型:所述改进的物理模型包括改进物理方程组、离散烟雾仿真空间;首先为简化数值模拟计算量,且考虑到烟雾流体的粘性效果在粗糙网格下可忽略,提出使用不可压缩无粘性形式的欧拉方程组来表示烟雾的基本物理模型;然后基于半拉格朗日法的思想,先将烟雾仿真空间离散成若干个网格,再将这若干个网格设为单个粒子,使用逆时跟踪法来计算得到粒子上一时刻的位置。
[0013]S2、求解烟雾物理模型:将以上方程组分解为四个部分:平流项,外力项,投影项和扩散项,其中平流项的求解提出MacCormack法,对投影项和扩散项的泊松方程的求解提出预条件共轭梯度法得出在不同时刻欧拉网格空间中烟雾的运动状态;
[0014]S3、基于改进的光线投射算法对烟雾进行渲染,可视化烟雾的运动状态,从而得到随时间烟雾的运动效果。
[0015]所述步骤S2中,所述求解烟雾物理模型的具体方法中对平流项的求解,提出MacCormack方法涉及具体步骤:
[0016](1)对BFFCC方法进行修正,执行两次中间半拉格朗日对流。先利用前向算子A求出
[0017](2)再利用反向算子A
R
求出
[0018](3)评估误差结果最后把前向算子A得到的初始值进行修正。假定前向算子A为线性,则成立。则可得到成立。则可得到
[0019]式中,为进行对流的速度分量,A为求解对流项的前向欧拉方法,A
R
为反向对流逆运算,为对流前的量,为经过对流后的量,都为中间变量,ε是评价误差结果。
[0020]所述步骤S2中,所述求解烟雾物理模型的具体方法中对投影项和扩散项的泊松方程的求解,提出预条件共轭梯度法涉及具体步骤:
[0021](1)选择一个实对称矩阵N为预条件矩阵,使得原方程A为系数矩阵,为迭代方程组的解,x为结果向量;
[0022](2)不断搜索向量确定搜索方向,更新结果向量x使其快速逼近精确解;
[0023](3)根据剩余向量的大小确定与精确解的误差,若误差小于给定阈值则将作为问题的解。
[0024]所述步骤S3中,所述基于改进的光线投射算法在重采样阶段提出三线性插值法涉及具体步骤:
[0025](1)第一次线性插值,根据邻近八个体素点的值,首先对z方向进行插值得到点P
a
,P
b
,P
c
,P
d
的值;
[0026](2)第二次线性插值,根据第一步得到的P
a
,P
b
,P
c
,P
d
,对x方向进行插值得到点P1和P2的值;
[0027](3)第三次线性插值,根据第二步得到的P1和P2,对y方向进行插值得到点P的值;
[0028]其中,P
a
,P
b
,P
c
,P
d
分别为邻近八个体素点在Z方向上的插值点,P1和P2分别为P
a
,P
b
,P
c
,P
d
在X方向上的插值点,P为最终P1和P2在Y方向得到的插值点。
[0029]本专利技术与现有技术相比所具有的有益效果为:
[0030]本专利技术通过使用MacCormack方法解决了半拉格朗日法求解平流项复杂度高且数值耗散问题,求解泊松方程时使用预条件共轭梯度法,减少额外的矩阵存储空间;渲染部分,对数据进行三线性插值重采样,使得到的数据更加准确,有效的提高了精度。实验结果显示本文的方法有效降低运算复杂度,提升模拟效率和真实感。
附图说明
[0031]图1为本专利技术中的求解改进的N

S方程流程图;
[0032]图2为本专利技术对计算空间网格的划分;
[0033]图3为本专利技术烟雾速度场在各个项下作用的流程图;
[0034]图4为MacCormack方法和BFECC求解平流项对比图;
[0035]图5为本专利技术使用的光线投射算法示意图;
[0036]图6为本专利技术提出的三线性插值法示本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.基于改进的半拉格朗日法的烟雾仿真计算方法,其特征在于,所述计算方法包括以下步骤:S1、构建改进的烟雾模型:所述改进的烟雾模型包括改进物理方程组、离散烟雾仿真空间;首先为简化数值模拟计算量,且考虑到烟雾流体的粘性效果在粗糙网格下可忽略,提出使用不可压缩无粘性形式的欧拉方程组来表示烟雾的基本物理模型;然后基于半拉格朗日法的思想,先将烟雾仿真空间离散成若干个网格,再将这若干个网格设为单个粒子,使用逆时跟踪法来计算得到粒子上一时刻的位置;S2、求解烟雾物理模型:将所述改进物理方程组分解为平流项,外力项,投影项和扩散项四个部分,其中平流项的求解提出MacCormack法,对投影项和扩散项的泊松方程的求解提出预条件共轭梯度法得出在不同时刻欧拉网格空间中烟雾的运动状态;S3、基于改进的光线投射算法对烟雾进行渲染,可视化烟雾的运动状态,从而得到随时间烟雾的运动效果。2.根据权利要求1所述的基于改进的半拉格朗日法的烟雾仿真计算方法,其特征在于:所述步骤S2中,所述求解烟雾物理模型的具体方法中对平流项的求解,提出MacCormack方法涉及具体步骤:(1)对BFFCC方法进行修正,执行两次中间半拉格朗日对流;(2)先利用前向算子A求出再利用反向算子A
R
求出评估误差结果最后把前向算子A得到的初始值进行修正;(3)假定前向算子A为线性,则成立;则可得到式中,为进行对流的速度分量,A为求解对流项的前向欧拉方法,A
R
为反向对流逆运算,为对流前的量,为经过对流后的量,都为中间变量,ε是评价误差结果。3.根据权利要求1或2所述的基于改进的半拉格朗日法的烟雾仿真计算方法,其特征在于,所述步骤S2中...

【专利技术属性】
技术研发人员:邹艳妮谌文强刘小平
申请(专利权)人:南昌大学
类型:发明
国别省市:

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

1