一种基于数据分块及并行处理的碰撞检测方法技术

技术编号:13986921 阅读:81 留言:0更新日期:2016-11-13 04:24
本发明专利技术公开了一种基于数据分块及并行处理的碰撞检测方法,通过构建虚拟物体的包围盒树,以各节点的包围盒为数据库,根据计算机流程数将数据库进行分块;通过数据分块,可以有效减少每个处理器处理的任务数,避免数据分配不均匀造成的延误。流水线方法为一种典型的并行处理方法,将问题分为若干个解决步骤,各步骤由独立的处理器执行,通过加速各处理器从而提高整条流水线速度。

【技术实现步骤摘要】

本专利技术涉及一种碰撞检测方法,具体是一种基于数据分块及并行处理的碰撞检测方法
技术介绍
碰撞检测是虚拟现实技术的重要组成部分,其主要任务是检测各种物体模型之间是否发生碰撞,如果发生碰撞则给出碰撞信息,同时指导系统进行下一步的操作。碰撞检测的基础是现实生活中两个不可穿透的对象不能同时共享同一片空间区域的事实。目前,按照检测对象的性质,碰撞检测可以分为基于时间域和基于空间域的检测算法,在此基础上又可以进一步划分为不同的种类。随着网络技术的发展和虚拟现实技术的兴起,碰撞检测问题再一次成为研究的热点。虚拟场景的规模不断扩大,模型的精度也越来越高,通过减少碰撞检测的次数来加快算法成为研究的重点方向。
技术实现思路
针对上述现有技术存在的问题,本专利技术提供一种基于数据分块及并行处理的碰撞检测方法,数据分块和并行技术引入碰撞检测中,提高了物体碰撞检测速度,快速识别碰撞结果。为了实现上述目的,本专利技术采用的技术方案是:该种基于数据分块及并行处理的碰撞检测方法,包括以下步骤:(1)以虚拟物体几何全集的包围盒作为根节点,根据与分裂平面的位置将所有元素分为数量相当的两部分,分别建立包围盒;其中,以包围盒在此方向上最长轴为方向轴选择分裂平面;(2)以上述这两部分为根节点自顶向下进行递归分治,叶节点的个数满足条件2m≤M,m为包围盒层数,M为处理器数;(3)采用数据分块技术分割包围盒树,以每个叶节点的包围盒为一个数据块组成数据 库,各层的每个数据块由计算机对应的一个处理器负责,将各物体的碰撞问题细分为数据块中几何元素的碰撞检测;(4)检测环境中两虚拟物体几何全集的包围盒,若发生碰撞,对物体的边界进行预处理,以各自叶节点为当前节点;(5)取两物体的当前结点的包围盒逐一配对进行碰撞测试,若不发生碰撞,则停止遍历,若发生碰撞,则将当前节点存入链表中,链表中各数据相互独立,由各处理器并行进行访问调用,并作为下次碰撞检测的初选范围;(6)以当前节点的上层根节点为当前结点,递归执行步骤(5)。进一步,所述包围盒为轴对齐包围盒AABB或者方向包围盒OBB或者k-dop包围盒。进一步,所述各叶节点包围盒的碰撞测试均为相互独立,无直接相关联,存储在数据链表中,各处理器并行进行访问。进一步,所述步骤(5)中根据物体运动的连续性,下次检测链表中的各节点,由各节点碰撞状态变化确定检测范围;可避免后续的冗余检测。与现有技术相比,本专利技术采用数据分块和并行处理相结合的方式,通过数据分块,可以有效减少每个处理器处理的任务数,避免数据分配不均匀造成的延误。流水线处理为一种典型的并行处理方法,将问题分为若干个解决步骤,各步骤由独立的处理器执行,通过加速各处理器从而提高整条流水线速度。附图说明图1是本专利技术的流程图;图2是本专利技术中包围盒树的示意图。具体实施方式下面将对本专利技术作进一步说明。如图1和图2所示,本专利技术包括以下步骤:(1)以虚拟物体几何全集的包围盒作为根节点,根据与分裂平面的位置将所有元素分为数量相当的两部分,分别建立包围盒;其中,以包围盒在此方向上最长轴为方向轴选择 分裂平面;(2)以上述这两部分为根节点自顶向下进行递归分治,叶节点的个数满足条件2m≤M,m为包围盒层数,M为处理器数;(3)采用数据分块技术分割包围盒树,以每个叶节点的包围盒为一个数据块组成数据库,各层的每个数据块由计算机对应的一个处理器负责,将各物体的碰撞问题细分为数据块中几何元素的碰撞检测(碰撞检测即为检测各包围盒是否有交集);(4)检测环境中两虚拟物体几何全集的包围盒,若发生碰撞,对物体的边界进行预处理,以各自叶节点为当前节点;(5)取两物体的当前结点的包围盒逐一配对进行碰撞测试,若不发生碰撞,则停止遍历,若发生碰撞,则将当前节点存入链表中,链表中各数据相互独立,由各处理器并行进行访问调用,并作为下次碰撞检测的初选范围;(6)以当前节点的上层根节点为当前节点,递归执行步骤(5)。进一步,所述包围盒为轴对齐包围盒AABB或者方向包围盒OBB或者k-dop包围盒。进一步,所述各叶节点包围盒的碰撞测试均为相互独立,无直接相关联,存储在数据链表中,各处理器并行进行访问。进一步,所述步骤(5)中根据物体运动的连续性,下次检测链表中的各节点,由各节点碰撞状态变化确定检测范围。整个检测过程中,需要多次执行操作各数据块,各节点包围盒的碰撞测试是相互独立、算法相同的,没有直接相关联,应用流水线技术动态划分总任务进程,避免数据分配不均匀造成的延误,操作同步执行,不需要对任务加锁,加速检测速度。算法如下:。本文档来自技高网...

【技术保护点】
一种基于数据分块及并行处理的碰撞检测方法,其特征在于,包括以下步骤:(1)以虚拟物体几何全集的包围盒作为根节点,根据与分裂平面的位置将所有元素分为数量相当的两部分,分别建立包围盒;(2)以上述这两部分为根节点自顶向下进行递归分治,叶节点的个数满足条件2m≤M,m为包围盒层数,M为处理器数;(3)采用数据分块技术分割包围盒树,以每个叶节点的包围盒为一个数据块组成数据库,各层的每个数据块由计算机对应的一个处理器负责,将各物体的碰撞问题细分为数据块中几何元素的碰撞检测;(4)检测环境中两虚拟物体几何全集的包围盒,若发生碰撞,对物体的边界进行预处理,以各自叶节点为当前节点;(5)取两物体的当前结点的包围盒逐一配对进行碰撞测试,若不发生碰撞,则停止遍历,若发生碰撞,则将当前节点存入链表中,链表中各数据相互独立,由各处理器并行进行访问调用,并作为下次碰撞检测的初选范围;(6)以当前节点的上层根节点为当前节点,递归执行步骤(5)。

【技术特征摘要】
1.一种基于数据分块及并行处理的碰撞检测方法,其特征在于,包括以下步骤:(1)以虚拟物体几何全集的包围盒作为根节点,根据与分裂平面的位置将所有元素分为数量相当的两部分,分别建立包围盒;(2)以上述这两部分为根节点自顶向下进行递归分治,叶节点的个数满足条件2m≤M,m为包围盒层数,M为处理器数;(3)采用数据分块技术分割包围盒树,以每个叶节点的包围盒为一个数据块组成数据库,各层的每个数据块由计算机对应的一个处理器负责,将各物体的碰撞问题细分为数据块中几何元素的碰撞检测;(4)检测环境中两虚拟物体几何全集的包围盒,若发生碰撞,对物体的边界进行预处理,以各自叶节点为当前节点;(5)取两物体的当前结点的包围盒逐一配对进行碰撞测试,若不发生碰撞,则停止遍历,若发生碰撞...

【专利技术属性】
技术研发人员:许启金于启万别长报吴翔叶辉郑浩吴伟廖志斌
申请(专利权)人:国网安徽省电力公司宿州供电公司国家电网公司
类型:发明
国别省市:安徽;34

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

1