一种基于二维图像的楼房倒塌模拟方法

文档序号:6369276阅读:205来源:国知局
专利名称:一种基于二维图像的楼房倒塌模拟方法
技术领域
本发明涉及一种基于ニ维图像的楼房倒塌模拟方法。
背景技术
基于ニ维图像的楼房倒塌模拟方法属于虚拟场景生成技术,在动画和电影产业有着巨大的应用前景。楼房倒塌模拟是个具有挑战性的难题,传统的模拟方法,需要对楼房进行建模,且需要进行大量复杂计算。

发明内容
本发明所要解决的技术问题是提供一种基于ニ维图像的楼房倒塌模拟方法,它是ー种高效并且相对直接的方法,输入ー张带有楼房的图片,即可实时生成整个楼房倒塌的视频。为此,本发明采用以下技术方案它包括以下步骤
(1)图像预处理选取ー张带有完整楼房的ニ维图像,将楼房从所述ニ维图像中枢取出来,之后用空洞填补算法将背景补全;
(2)楼房网格生成对于抠取出来的楼房,将它划分成N*M的网格,在这个网格基础上,将楼房按照网格线划分成多个楼房块,所述N和M为大于I的自然数;
(3)倒塌过程模拟及烟雾模拟通过在楼房网格的不同位置施加不同大小的力,使楼房网格发生不同方式的破裂以模拟不同方式的倒塌过程,所述楼房块根据所述网格的破裂生成更小的楼房块,然后将所有楼房块加入到粒子系统中进行管理,用轴向包围盒AABB加速其碰撞检测,使楼房块之间的运动更加真实,所述粒子以网格格子为单位;
运用粒子系统来模拟烟雾,并使烟雾的产生、扩散、消散与楼房倒塌过程相适应;
(4)保存、生成楼房倒塌的视频。 在采用上述技术方案的基础上,本发明还可采用以下进ー步的技术方案
步骤(I)中,如果预处理后背景中仍有不和谐的像素,则对背景进行进一歩的平滑滤波;在步骤(2)中,划分方法通过手工交互方式完成,或通过水平和纵向的随机线进行划分。在步骤(2)中,对于划分出来的每每相邻楼房块之间添加一个锁值lock,锁值初始化为第一锁值,表示所述每每相邻楼房块在粒子系统中的运动相同,即作为ー个整体进行考虑;
当楼房网格发生破裂,ー个楼房块与其它楼房块发生碰撞后,这个楼房块分解成更小的楼房块,将这个楼房块和与其碰撞的其它楼房块之间的锁值设为第二锁值,之后这些发生碰撞的楼房块将按照各自的运动方式进行运动;
每个楼房块的质量由每个楼房块所包含的粒子数来表示。在步骤(3)的楼房倒塌模拟过程中,将现实中的爆破理解成从ー个点向四周辐射的一群力,通过设置カ的个数、最小力和最大力的范围、力的方向范围,模拟出不同类型的瀑破。
在步骤(3)的楼房倒塌模拟过程中,将现实中的爆破理解成从多个不同点向四周辐射的一群力,从而模拟出现实中的二次以上的多次爆破。在步骤(3)的楼房倒塌模拟过程中,引入层次包围盒来加速楼房块之间的碰撞数据处理,对于每个楼房块添加一个轴向包围盒AABB,并将层次包围盒建成ー个树状结构,每个分支节点都是其子节点包围盒子的并;当要检测ー个楼房块是否和另ー个楼房块发生碰撞时,遍历层次包围盒树,如果与ー个分支节点没有交集,那么和其所有的子节点同样也不会有交集,就可以迅速排除那些没有碰撞 的楼房块,从而保证楼房倒塌的实时模拟。检测到楼房块碰撞之后,采用理想碰撞模型,根据动量守恒和能量守恒算出碰撞后各楼房块的速度;然后引入随机因子去修正碰撞后各楼房块的速度的大小和方向,使之符合现实中的碰撞。在步骤(3)的楼房倒塌模拟过程中还加入了速度阈值,当两个楼房块的相対速度超过速度阈值后,楼房块就会因碰撞而发生破碎,生成新的更小的楼房块。 烟雾模拟与楼房倒塌模拟同步进行。在步骤(3)的烟雾模拟中,设定烟雾粒子系统中每秒产生的粒子数与落地粒子数成正比,烟雾粒子的初始速度随着倒塌过程先増加,当倒塌最剧烈的时候到达峰值,随后减速。由于采用本发明的技术方案,本发明是ー种高效并且相对直接的方法,输入ー张带有楼房的图片,即可实时生成整个楼房倒塌的视频。


图I为本发明所提供的方法的总体流程图。图2表示本发明步骤Iー图像预处理的过程。(a)是所述的ニ维图像,以ー张包含比萨斜塔的图像作为输入。(b)是用快速选取工具抠取出来的斜塔。(C)是对背景补齐后的效果。图3主要了描述了步骤2、3如何对楼房网格进行划分。(a)是先将抠取出来的楼房网格化。(b)在(a)的基础上用随机线进行了划分。(c)是爆破力的表示。图4和图5为利用本发明所提供的方法制作的楼房倒塌过程多帧演示图,图4中没有烟雾,图5中伴随着烟雾的生成。
具体实施例方式首先定义在接下来说明中要用到的缩写轴向包围盒(Axisaligned BoundingBoxes)缩写为 AABB,层次包围盒(Bounding Volume Hierarchy),缩写为 BVH。图I是本发明的总体流程图,本发明以ー张带有楼房的图像作为输入,通过本发明方法流程,输出一段楼房倒塌过程的视频,下面对本发明的各个流程进行详细说明
I.图像预处理
选择ー张带有楼房的ニ维图像,利用快速选取工具将楼房从图像抠取出来,同时用空洞填补算法将背景补齐。如果处理后背景中仍有不和谐的像素,则通过平滑滤波使背景更加平滑。具体过程如图2所示。2.楼房网格生成对于抠取出来的楼房,用N*M的网格将其划分为N*M个等大的粒子,作为后面粒子系统中运动的基本颗粒,每个楼房块的质量由每个楼房块所包含的粒子数来表示。如图3 (a)所示。然后在这个网格基础上,将楼房划分成多个楼房块。划分方法可以通过手工交互方式完成,也可以通过水平和纵向的随机线进行划分。图3 (b)显示了用随机线划分出网格后的效果,其中颜色相同的相邻颗粒用来表示ー个楼房块。之后对两两相邻的楼房块増加一个锁值lock,锁值初始化为第一锁值,表示所述每每相邻楼房块在粒子系统中的运动相同。3.倒塌过程模拟
(I).爆破表示将现实中的爆破理解成从ー个点向四周辐射的一群力,通过设置力的个数、最小力和最大力的范围、力的方向范围,从而模拟出不同类型的爆破。图3 (c)表示在比萨斜塔底部施加了ー个爆破力。当爆破力施加到楼房上时,解锁爆破力时间点周围的楼房块,即将锁值射为第二锁值,这样这些楼房块在カ的作用将开始运动。(2).碰撞检测引入层次包围盒来加速楼房块之间的碰撞数据处理,对于每个楼房块添加一个轴向包围盒AABB,同时将包围盒建成ー个树状结构,每个分支节点都是其子节点包围盒子的井。当要检测ー个楼房块是否和另ー个楼房块发生碰撞,只要遍历层次包围盒树,如果与ー个分支节点没有交集,那么和其所有的子节点同样也不会有交集,就可以迅速排除那些没有碰撞的楼房块,从而保证倒塌的实时模拟。(3).碰撞响应米用理想碰撞模型,根据动量守恒和能量守恒采用以下公式算出碰撞后各楼房块的速度。公式中
Wl0和TW1分别表不楼房块的质量,1%和! i则是碰撞前的速度,和1则是碰撞后的速度。
权利要求
1.一种基于二维图像的楼房倒塌模拟方法,其特征在于它包括以下步骤 (1)图像预处理选取一张带有完整楼房的二维图像,将楼房从所述二维图像中抠取出来,之后用空洞填补算法将背景补全; (2)楼房网格生成对于抠取出来的楼房,将它划分成N*M的网格,在这个网格基础上,将楼房按照网格线划分成多个楼房块,所述N和M为大于I的自然数; (3 )倒塌过程模拟及烟雾模拟通过在楼房网格的不同位置施加不同大小的力,使楼房网格发生不同方式的破裂以模拟不同方式的倒塌过程,所述楼房块根据所述网格的破裂生成更小的楼房块,然后将所有楼房块加入到粒子系统中进行管理,用轴向包围盒AABB加速其碰撞检测,使楼房块之间的运动更加真实,所述粒子以网格格子为单位; 运用粒子系统来模拟烟雾,并使烟雾的产生、扩散、消散与楼房倒塌过程相适应; (4)保存、生成楼房倒塌的视频。
2.根据权利要求I所述的一种基于二维图像的楼房倒塌模拟方法,其特征在于步骤(1)中,如果预处理后背景中仍有不和谐的像素,则对背景进行进一步的平滑滤波;在步骤(2)中,划分方法通过手工交互方式完成,或通过水平和纵向的随机线进行划分。
3.根据权利要求I所述的一种基于二维图像的楼房倒塌模拟方法,其特征在于在步骤(2)中,对于划分出来的每每相邻楼房块之间添加一个锁值,锁值初始化为第一锁值,表示所述每每相邻楼房块在粒子系统中的运动相同,即作为一个整体进行考虑; 当楼房网格发生破裂,一个楼房块与其它楼房块发生碰撞后,这个楼房块分解成更小的楼房块,将这个楼房块和与其碰撞的其它楼房块之间的锁值设为第二锁值,之后这些发生碰撞的楼房块将按照各自的运动方式进行运动; 每个楼房块的质量由每个楼房块所包含的粒子数来表示。
4.根据权利要求1、2或3所述的一种基于二维图像的楼房倒塌模拟方法,其特征在于在步骤(3)的楼房倒塌模拟过程中,将现实中的爆破理解成从一个点向四周辐射的一群力,通过设置力的个数、最小力和最大力的范围、力的方向范围,模拟出不同类型的爆破。
5.根据权利要求1、2或3所述的一种基于二维图像的楼房倒塌模拟方法,其特征在于在步骤(3)的楼房倒塌模拟过程中,将现实中的爆破理解成从多个不同点向四周辐射的一群力,从而模拟出现实中的二次以上的多次爆破。
6.根据权利要求1、2或3所述的一种基于二维图像的楼房倒塌模拟方法,其特征在于在步骤(3)的楼房倒塌模拟过程中,弓I入层次包围盒来加速楼房块之间的碰撞数据处理,对于每个楼房块添加一个轴向包围盒AABB,并将层次包围盒建成一个树状结构,每个分支节点都是其子节点包围盒子的并;当要检测一个楼房块是否和另一个楼房块发生碰撞时,遍历层次包围盒树,如果与一个分支节点没有交集,那么和其所有的子节点同样也不会有交集,就可以迅速排除那些没有碰撞的楼房块,从而保证楼房倒塌的实时模拟。
7.根据权利要求6所述的一种基于二维图像的楼房倒塌模拟方法,其特征在于检测到楼房块碰撞之后,采用理想碰撞模型,根据动量守恒和能量守恒算出碰撞后各楼房块的速度;然后引入随机因子去修正碰撞后各楼房块的速度的大小和方向,使之符合现实中的碰撞。
8.根据权利要求6所述的一种基于二维图像的楼房倒塌模拟方法,其特征在于在步骤(3)的楼房倒塌模拟过程中还加入了速度阈值,当两个楼房块的相对速度超过速度阈值后,楼房块就会因碰撞而发生破碎,生成新的更小的楼房块。
9.根据权利要求I所述的一种基于二维图像的楼房倒塌模拟方法,其特征在于烟雾模拟与楼房倒塌模拟同步进行。
10.根据权利要求9所述的一种基于二维图像的楼房倒塌模拟方法,其特征在于在步骤(3)的烟雾模拟中,设定烟雾粒子系统中每秒产生的粒子数与落地粒子数成正比,烟雾粒子的初始速度随着倒塌过程先增加,当倒塌最剧烈的时候到达峰值,随后减速。
全文摘要
本发明提供了一种基于二维图像的楼房倒塌模拟方法,它包括以下步骤(1)选取一张带有完整楼房的二维图像,将楼房从所述二维图像中抠取出来,之后用空洞填补算法将背景补全;(2)对于抠取出来的楼房,将它划分成N×M的网格,在这个网格基础上,将楼房按照网格线划分成多个楼房块;(3)通过在楼房网格的不同位置施加不同大小的力,使楼房网格发生不同方式的破裂以模拟不同方式的倒塌过程,所述楼房块根据所述网格的破裂生成更小的楼房块,然后将所有楼房块加入到粒子系统中进行管理,用轴向包围盒AABB加速其碰撞检测;运用粒子系统来模拟烟雾。本发明是一种高效并且相对直接的方法,输入一张带有楼房的图片,即可实时生成整个楼房倒塌的视频。
文档编号G06T13/80GK102708584SQ20121014194
公开日2012年10月3日 申请日期2012年5月9日 优先权日2012年5月9日
发明者卞刚峰, 童若锋 申请人:浙江大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1