掌桥专利:专业的专利平台
掌桥专利
首页

技术领域

本发明涉及计算机图形虚拟仿真的技术领域,尤其涉及一种酒精灯火苗接触不规则表面燃烧模拟方法。

背景技术

火焰模拟在教育教学、游戏开发、电影制作、军事仿真训练等多个领域有着广泛的应用,特别是在中学教育领域中,其化学、物理以及生物等实验,广泛使用到了酒精灯。

酒精灯火苗作为燃烧火焰的一种,对它的模拟有其独特的应用价值和特殊的要求,主要体现在视觉效果的“精细化”和“微观化”上。虽然现有的火焰模拟方法获得不错模拟效果,但若再引入障碍物与火焰进行交互,则将会大大增加模拟的难度,依赖单一的模拟方法很难兼顾火焰模拟的细节和时间效率。

发明内容

本部分的目的在于概述本发明的实施例的一些方面以及简要介绍一些较佳实施例。在本部分以及本申请的说明书摘要和发明名称中可能会做些简化或省略以避免使本部分、说明书摘要和发明名称的目的模糊,而这种简化或省略不能用于限制本发明的范围。

鉴于上述现有存在的问题,提出了本发明。

因此,本发明提供了一种酒精灯火苗接触不规则表面燃烧模拟方法,能够解决酒精灯火苗接触不规则表面燃烧模拟中存在难以兼顾模拟的细节和时间效率的难题。

为解决上述技术问题,本发明提供如下技术方案:包括,

根据非燃烧接触物的形状,分别利用包围球策略和AABB包围盒策略对火苗粒子与所述不规则表面进行碰撞检测;根据碰撞检测结果并利用MAC网格提取所述火苗粒子与所述非燃烧接触物的交互边界面,而后在碰撞点处通过牛顿运动学原理分析所述火苗粒子接触所述非燃烧接触物时的受力情况;将所述受力情况存储至网格单元,而后通过遍历所述网格单元获取火苗粒子的属性值;利用所述火苗粒子发生碰撞前的速度与法线方向的关系,计算所述火苗粒子与所述非燃烧接触物碰撞后的速度,从而获得火苗的运动状态;根据所述属性值和所述运动状态对所述火苗与所述非燃烧接触物进行动态模拟。

作为本发明所述的酒精灯火苗接触不规则表面燃烧模拟方法的一种优选方案,其中:所述碰撞检测包括,当所述非燃烧接触物为球体时,利用所述包围球策略进行所述碰撞检测;当所述非燃烧接触物为长方体时,利用所述AABB包围盒策略进行所述碰撞检测。

作为本发明所述的酒精灯火苗接触不规则表面燃烧模拟方法的一种优选方案,其中:所述碰撞检测还包括,所述包围球策略根据所述非燃烧接触物和所述火苗粒子的两个包围球球心之间的距离与半径之和的距离关系进行所述碰撞检测,若所述两个包围球球心之间的距离小于等于两个包围球的半径之和,则所述非燃烧接触物与火苗粒子发生碰撞;否则,则非燃烧接触物与所述火苗粒子未发生碰撞;所述AABB包围盒策略根据AABB包围盒在各坐标系平面的投影的位置关系进行所述碰撞检测,若所述AABB包围盒在所述各坐标系平面的投影均相交,则所述非燃烧接触物与所述火苗粒子发生碰撞;否则,则所述非燃烧接触物与所述火苗粒子未发生碰撞。

作为本发明所述的酒精灯火苗接触不规则表面燃烧模拟方法的一种优选方案,其中:提取所述交互边界面包括,在所述MAC网格中以当前位置的Y方向上的上平面和下平面对所述非燃烧接触物进行切片;将所述切片正交投影到下平面的网格内,并定义所述网格中非零值的为所述非燃烧接触物的内部,零值的为火苗的轮廓,两者之间的部分为所述交互边界面。

作为本发明所述的酒精灯火苗接触不规则表面燃烧模拟方法的一种优选方案,其中:分析所述受力情况包括,当所述火苗粒子与所述非燃烧接触物接触时,对所述火苗粒子的受力情况利用所述牛顿运动学原理进行分析,如下式:

F=F

其中,F

作为本发明所述的酒精灯火苗接触不规则表面燃烧模拟方法的一种优选方案,其中:所述压力包括,依据下式计算所述非燃烧接触物对所述火苗粒子的压力:

A*F

其中,

作为本发明所述的酒精灯火苗接触不规则表面燃烧模拟方法的一种优选方案,其中:获取所述粒子属性值包括,假定非燃烧接触物位置不发生变化的情况下,当所述火苗粒子与所述非燃烧接触物接触后提取所述火苗粒子与所述非燃烧接触物的交互边界,从而可以通过遍历所述网格单元获得所述粒子属性值。

作为本发明所述的酒精灯火苗接触不规则表面燃烧模拟方法的一种优选方案,其中:所述火苗粒子发生碰撞前的速度与法线方向的关系包括,

v

其中,v

作为本发明所述的酒精灯火苗接触不规则表面燃烧模拟方法的一种优选方案,其中:计算所述火苗粒子与非燃烧接触物碰撞后的速度包括,

将所述火苗粒子与所述非燃烧物碰撞后的速度用v

v=v

其中,v为所述火苗粒子与所述非燃烧接触物碰撞后的速度。

本发明的有益效果:本发明实现了不规则接触物表面与酒精灯火苗的交互算法研究与模拟,最终能够满足对实时性的要求,并在真实性上也能够与实际生活保持一致。

附图说明

为了更清楚地说明本发明实施例的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其它的附图。其中:

图1为本发明第一个实施例所述的一种酒精灯火苗接触不规则表面燃烧模拟方法的流程示意图;

图2为本发明第一个实施例所述的一种酒精灯火苗接触不规则表面燃烧模拟方法的包围球结构示意图;

图3为本发明第一个实施例所述的一种酒精灯火苗接触不规则表面燃烧模拟方法的包围球碰撞检测示意图;

图4为本发明第一个实施例所述的一种酒精灯火苗接触不规则表面燃烧模拟方法的AABB包围盒结构示意图;

图5为本发明第一个实施例所述的一种酒精灯火苗接触不规则表面燃烧模拟方法的非燃烧接触物与火苗粒子交互边界提取示意图;

图6为本发明第一个实施例所述的一种酒精灯火苗接触不规则表面燃烧模拟方法的非燃烧接触物与酒精灯火苗粒子碰撞时的受力分析示意图;

图7为本发明第一个实施例所述的一种酒精灯火苗接触不规则表面燃烧模拟方法的不规则表面为凹凸面的物体接触火苗的形状示意图;

图8为本发明第二个实施例所述的一种酒精灯火苗接触不规则表面燃烧模拟方法的火苗与凹凸不平的平面接触模拟效果示意图;

图9为本发明第二个实施例所述的一种酒精灯火苗接触不规则表面燃烧模拟方法的火苗填满凹凸物体凹陷部位示意图。

具体实施方式

为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合说明书附图对本发明的具体实施方式做详细的说明,显然所描述的实施例是本发明的一部分实施例,而不是全部实施例。基于本发明中的实施例,本领域普通人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明的保护的范围。

在下面的描述中阐述了很多具体细节以便于充分理解本发明,但是本发明还可以采用其他不同于在此描述的其它方式来实施,本领域技术人员可以在不违背本发明内涵的情况下做类似推广,因此本发明不受下面公开的具体实施例的限制。

其次,此处所称的“一个实施例”或“实施例”是指可包含于本发明至少一个实现方式中的特定特征、结构或特性。在本说明书中不同地方出现的“在一个实施例中”并非均指同一个实施例,也不是单独的或选择性的与其他实施例互相排斥的实施例。

本发明结合示意图进行详细描述,在详述本发明实施例时,为便于说明,表示器件结构的剖面图会不依一般比例作局部放大,而且所述示意图只是示例,其在此不应限制本发明保护的范围。此外,在实际制作中应包含长度、宽度及深度的三维空间尺寸。

同时在本发明的描述中,需要说明的是,术语中的“上、下、内和外”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本发明和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本发明的限制。此外,术语“第一、第二或第三”仅用于描述目的,而不能理解为指示或暗示相对重要性。

本发明中除非另有明确的规定和限定,术语“安装、相连、连接”应做广义理解,例如:可以是固定连接、可拆卸连接或一体式连接;同样可以是机械连接、电连接或直接连接,也可以通过中间媒介间接相连,也可以是两个元件内部的连通。对于本领域的普通技术人员而言,可以具体情况理解上述术语在本发明中的具体含义。

实施例1

参照图1~图7,为本发明的第一个实施例,该实施例提供了一种酒精灯火苗接触不规则表面燃烧模拟方法,包括:

S1:根据非燃烧接触物的形状,分别利用包围球策略和AABB包围盒策略对火苗粒子与不规则表面进行碰撞检测。

(1)当非燃烧接触物为球体时,利用包围球策略进行碰撞检测:

包围球策略根据非燃烧接触物和火苗粒子的两个包围球球心之间的距离与半径之和的距离关系进行碰撞检测,若两个包围球球心之间的距离小于等于两个包围球的半径之和,则非燃烧接触物与火苗粒子发生碰撞;否则,则非燃烧接触物与火苗粒子未发生碰撞。

具体的:如图2所示的包围球,将场景中物体的中心位置坐标作为最小外接球的球心,记作C(c

R={(x,y,z)|(x-c

其中,(c

X、Y、Z坐标轴上的最大值和最小值。

当非燃烧接触物为球体形状时,假设非燃烧障碍物包围(c

包围球碰撞检测程序如下:

(2)当非燃烧接触物为长方体时,利用AABB包围盒策略进行碰撞检测:

如图4所示,AABB包围盒是与场景中物体的每一个平面和坐标轴都平行的长方体,一个AABB包围盒由六个标量构成,如下式所示:

R={(x,y,x)|p

其中,p

因为AABB包围盒的六个平面均平行于坐标轴,所以构建AABB包围盒比较简单,AABB包围盒相碰撞检测的具体算法如下所示:

AABB包围盒策略根据AABB包围盒在各坐标系平面的投影的位置关系进碰撞检测,若AABB包围盒在各坐标系平面的投影均相交,则AABB包围盒相交,即发生碰撞;若在三维坐标系中坐标平面内的投影有一个没有相交,则AABB包围盒不相交,即没有发生碰撞;在最坏的情况下,最多要进行六次相交运算,来判断是否发生碰撞。

S2:根据碰撞检测结果并利用MAC网格提取火苗粒子与非燃烧接触物的交互边界面,而后在碰撞点处通过牛顿运动学原理分析火苗粒子接触非燃烧接触物时的受力情况。

为了更好的模拟动态不规则表面与火苗交界面的变化,使用内外体素化来表示不规则表面接触物(非燃烧接触物),如图5所示,其主要思想是在MAC网格中以当前位置的Y方向上的上下两个平面对接触物进行切片,将切片正交投影到下平面的网格内,网格平面中非零值的为非燃烧接触物的内部,零值的为火苗的轮廓,两者之间的部分为交互边界面;因此可以将场景中非燃烧接触物与火苗的边界面找到,并记录下来。

进一步的,当火苗粒子与非燃烧接触物接触时,如图6所示,火苗粒子会受到自身重力、浮力、非燃烧接触物的压力、风力等力的影响,对火苗粒子的受力利用牛顿运动学原理进行分析,如下式:

F=F

其中,F

依据下式计算非燃烧接触物对火苗粒子的压力:

A*F

其中,

由于计算过程比较复杂,本实施例采用共轭梯度求解器计算得到压力F

S3:将受力情况存储至网格单元,而后通过遍历网格单元获取火苗粒子的属性值。

假定不规则表面位置不发生变化的情况下,当火苗与凹凸不平的表面接触后提取火苗与非燃烧物交互边界,从而可以通过遍历网格单元获得粒子属性值(几何属性值:形状、大小、位置等;非几何属性值:数量、寿命、颜色和透明度等)。

S4:利用火苗粒子发生碰撞前的速度与法线方向的关系,计算火苗粒子与非燃烧接触物碰撞后的速度,从而获得火苗的运动状态。

在非燃烧接触物位置不发生变化的情况下,由于火苗粒子不能穿透非燃烧物,所以火苗粒子的速度与法线方向的关系,如下式所示:

v

其中,v

为了满足上式,将火苗粒子与非燃烧物碰撞后的速度用v

v=v

其中,v为火苗粒子与非燃烧接触物碰撞后的速度。

火苗与凹凸不平非燃烧物交互的具体算法如下:

S5:根据属性值和运动状态,并通过openGL对火苗与非燃烧接触物进行动态模拟。

如图7所示,对接触面为凹凸不平的非燃烧物与酒精灯火苗交互进行模拟,非燃烧物的横截面积远远大于火苗的横截面积,与火苗内焰接触的非燃烧物的凹凸表面会被火苗粒子填满,由牛顿力学方程和热力学原理可知接触面给火苗粒子的压力会使火苗粒子向周围扩散,若火苗粒子在运动的过程中再与凹凸的接触面发生碰撞,又会再次被反弹使得火苗粒子的运动轨迹再次发生变化;与此同时,火苗外焰的粒子一方面会受到接触面的压力的影响向周围扩散,也会受到内焰部分的火苗粒子向外运动挤压的作用而向周围运动,直到粒子的生命结束。此外,若非燃烧物的横截面积小于火苗的横截面积,火苗会基于以上描述的基础上,继续沿着非燃烧物的侧面继续向上运动,直到经历完整的生命周期。

实施例2

对本方法中采用的技术效果加以验证说明,本实施例通过仿真模拟以验证本方法所具有的真实效果。

测试环境:操作系统:win10-64bit;处理器:Intel Core i5-4590 3.3GHz四核;显卡:NVIDIA Geforce gtx 750Ti(2GB);内存:8GB;固态硬盘:240GB;开发工具:MicrosoftVisual Studio 2019、OpenGL。

通过Microsoft Visual Studio 2019进行模拟程序的编译,运行结果如图8、图9所示。

参照图8,第10帧时火苗未与凹凸面物体接触;第14帧时火苗刚与凹凸面物体接触;第25帧时火苗受到凹凸物体的阻碍,使得火苗向周围扩散产生形变;第35帧时火苗上升运动的过程中基本充满凹凸物体的凹陷的部分(如图9所示),模拟结果符合实际情况,验证了算法的可行性。

应说明的是,以上实施例仅用以说明本发明的技术方案而非限制,尽管参照较佳实施例对本发明进行了详细说明,本领域的普通技术人员应当理解,可以对本发明的技术方案进行修改或者等同替换,而不脱离本发明技术方案的精神和范围,其均应涵盖在本发明的权利要求范围当中。

相关技术
  • 一种酒精灯火苗接触不规则表面燃烧模拟方法
  • 一种改进的复杂表面和不规则物体体积的非接触光学测量方法
技术分类

06120112900500