发明名称 一种基于二维图像的楼房倒塌模拟方法
摘要 本发明提供了一种基于二维图像的楼房倒塌模拟方法,它包括以下步骤:(1)选取一张带有完整楼房的二维图像,将楼房从所述二维图像中抠取出来,之后用空洞填补算法将背景补全;(2)对于抠取出来的楼房,将它划分成N*M的网格,在这个网格基础上,将楼房按照网格线划分成多个楼房块;(3)通过在楼房网格的不同位置施加不同大小的力,使楼房网格发生不同方式的破裂以模拟不同方式的倒塌过程,所述楼房块根据所述网格的破裂生成更小的楼房块,然后将所有楼房块加入到粒子系统中进行管理,用轴向包围盒AABB加速其碰撞检测;运用粒子系统来模拟烟雾。本发明是一种高效并且相对直接的方法,输入一张带有楼房的图片,即可实时生成整个楼房倒塌的视频。
申请公布号 CN102708584B 申请公布日期 2014.06.04
申请号 CN201210141942.2 申请日期 2012.05.09
申请人 浙江大学 发明人 卞刚峰;童若锋
分类号 G06T13/80(2011.01)I 主分类号 G06T13/80(2011.01)I
代理机构 浙江杭州金通专利事务所有限公司 33100 代理人 刘晓春
主权项 一种基于二维图像的楼房倒塌模拟方法,其特征在于它包括以下步骤:(1)图像预处理:选取一张带有完整楼房的二维图像,将楼房从所述二维图像中抠取出来,之后用空洞填补算法将背景补全;(2)楼房网格生成:对于抠取出来的楼房,将它划分成N*M的网格,在这个网格基础上,将楼房按照网格线划分成多个楼房块,所述N和M为大于1的自然数;对于划分出来的每每相邻楼房块之间添加一个锁值,锁值初始化为第一锁值,表示所述每每相邻楼房块在粒子系统中的运动相同,即作为一个整体进行考虑;当楼房网格发生破裂,一个楼房块与其它楼房块发生碰撞后,这个楼房块分解成更小的楼房块,将这个楼房块和与其碰撞的其它楼房块之间的锁值设为第二锁值,之后这些发生碰撞的楼房块将按照各自的运动方式进行运动;每个楼房块的质量由每个楼房块所包含的粒子数来表示;(3)倒塌过程模拟及烟雾模拟:通过在楼房网格的不同位置施加不同大小的力,使楼房网格发生不同方式的破裂以模拟不同方式的倒塌过程,所述楼房块根据所述网格的破裂生成更小的楼房块,然后将所有楼房块加入到粒子系统中进行管理,用轴向包围盒AABB加速其碰撞检测,使楼房块之间的运动更加真实,所述粒子以网格格子为单位; 对于每个楼房块添加一个轴向包围盒AABB,并将层次包围盒建成一个树状结构,每个分支节点都是其子节点包围盒子的并;当要检测一个楼房块是否和另一个楼房块发生碰撞时,遍历层次包围盒树,如果与一个分支节点没有交集,那么和其所有的子节点同样也不会有交集,就可以迅速排除那些没有碰撞的楼房块,从而保证楼房倒塌的实时模拟;运用粒子系统来模拟烟雾,并使烟雾的产生、扩散、消散与楼房倒塌过程相适应;(4)保存、生成楼房倒塌的视频。
地址 310027 浙江省杭州市浙大路38号