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

一种基于包围盒与空间划分的虚拟物体碰撞检测方法技术

技术编号:13114941 阅读:86 留言:0更新日期:2016-04-06 07:25
本发明专利技术提供一种基于包围盒与空间划分的虚拟物体碰撞检测方法,包括以下步骤:对两个不规则的虚拟物体进行虚拟物体碰撞预检测;对待检测区域进行区域分割;在待检测区域划分好的各个子区域中进行相交测试;利用代表移动中的虚拟物体的点向量集合以及代表当前不需要装配的虚拟物体的三角面,进行虚拟物体碰撞检测:若相交,则两个虚拟物体发生碰撞,否则不发生碰撞。本发明专利技术利用虚拟物体的空间相关性来缩小空间的碰撞检测范围来减少时间消耗,同时也大大提升了方法的检测效率和碰撞检测的几何精度。采用将包围盒还原成三角面以及点的方式减少碰撞检测误判的发生。将碰撞检测过程细化到三角面和点之间的干涉,分步检测的方式将大大提高检测效率。

【技术实现步骤摘要】

本专利技术属于虚拟现实中的虚拟装配领域,具体涉及一种基于包围盒与空间划分的虚拟物体碰撞检测方法
技术介绍
虚拟现实(virtualreality)技术是一种可以在虚拟环境中完成一系列动作的计算机技术,随着计算机软硬件的不断发展,虚拟环境的搭建越发完整,功能越发完善。虚拟装配技术是虚拟现实技术在设计与制造领域的重要应用之一,它已经引起了企业和研究机构的广泛关注。虚拟装配技术的发展与计算机技术、虚拟现实技术的发展紧密相关,近年来也取得了较好的发展,有些虚拟装配系统已经走出实验室,走进了企业。虚拟装配利用计算机工具,而不需产品或者支持过程的物理实现,通过分析、预建模、可视化、数据表示等进行或者辅助进行装配相关的工程决策。基于虚拟现实的产品虚拟拆装技术在新产品开发、产品的维护以及操作培训方面具有独特的作用,在操作过程中系统提供实时的碰撞检测、装配约束处理、装配路径与序列处理等功能,从而使得用户能够对产品的可装配性进行分析、对产品零部件装配序列进行验证和规划、对装配操作人员进行培训等。利用虚拟装配,可以验证装配设计和操作的正确与否,以便及早的发现装配中的问题,对模型进行修改,并通过可视化显示装配过程。碰撞检测是虚拟现实,特别是虚拟装配中所涉及的一项关键技术,碰撞检测就是检测虚拟环境中虚拟物体是否发生穿透现象,所以碰撞检测对虚拟环境的真实性和实时性起到关键作用。就碰撞检测中检测较为精确的方法而言,目前研究较成熟的方法为层次包围盒和空间分割法等,其中基于包围盒的碰撞检测方法是目前世界范围内研究和应用较多的碰撞检测方法,但包围盒之间的检测会增加碰撞检测误判的可能性,就检测较为准确的AABB层次包围盒二叉树方法来说,由于引入的检测结点数过多,在一定情况下会导致检测效率的下降。空间分割法在要求高精确度的碰撞检测中常用,但这些较成熟的方法大都不能满足在实时检测的情况下提供较精确的检测结果。目前,相关的碰撞检测方法已经比较丰富,但是随着虚拟现实技术的发展,工业应用上对碰撞检测从真实性和实时性两方面的要求也越来越高。国内外学者对虚拟现实技术方面的碰撞检测方法研究比较多,但是真正能让虚拟装配技术应用到工业上的碰撞检测方法却较少。
技术实现思路
针对现有技术存在的问题,本专利技术提供一种基于包围盒与空间划分的虚拟物体碰撞检测方法。本专利技术的技术方案是:一种基于包围盒与空间划分的虚拟物体碰撞检测方法,包括以下步骤:步骤1:对两个不规则的虚拟物体进行虚拟物体碰撞预检测;步骤1.1:采用构建AABB包围盒的方法来查找两个不规则的虚拟物体之间的可能相交区域,即待检测区域;步骤1.2:根据两个虚拟物体在待检测区域中的点集,判断当前两个虚拟物体产生碰撞的可能性;步骤2:对待检测区域进行区域分割;步骤2.1:根据虚拟物体的移动方向确定分割平面;步骤2.2:根据分割平面将待检测区域分割成K个子区域;步骤3:在待检测区域划分好的各个子区域中进行相交测试;步骤3.1:将移动的虚拟物体表面视为由多个极小的点构成,各点定义为点向量;将当前不需要装配的虚拟物体视为由无数个三角面包围而成;步骤3.2:利用代表移动中的虚拟物体的点向量集合以及代表当前不需要装配的虚拟物体的三角面,检测移动前后的点向量集合与三角面所在平面的位置关系;步骤3.3:利用点向量移动前后所形成的空间线段与三角面相交状态,进行虚拟物体碰撞检测:若相交,则两个虚拟物体发生碰撞,否则两个虚拟物体不发生碰撞。所述步骤1.1具体步骤如下:步骤1.1.1:构建两个虚拟物体的AABB包围盒,该AABB包围盒被定义为包含虚拟物体且各边平行于坐标轴的最小六面体;所述构建两个虚拟物体的AABB包围盒的方法如下:通过遍历虚拟物体中的每一个顶点并找出顶点X坐标的最小值Xmin、X坐标的最大值Xmax、Y坐标的最小值Ymin、Y坐标的最大值Ymax、Z坐标的最小值Zmin、Z坐标的最大值Zmax,用这六个值构成最小六面体的八个顶点,构建出给定虚拟物体的AABB包围盒。步骤1.1.2:利用构建出的虚拟物体的AABB包围盒在X、Y、Z轴上的最大值和最小值,分别确定虚拟物体在3个坐标轴上的投影区间;步骤1.1.3:判断两个虚拟物体的AABB包围盒在3个坐标轴上的投影区间是否都重叠:若是,则两个虚拟物体的AABB包围盒相交,对两个相交的AABB包围盒的轴向坐标求交集,包括两个相交的AABB包围盒的在X轴上投影的交集、两个相交的AABB包围盒的在Y轴上投影的交集、两个相交的AABB包围盒的在Z轴上投影的交集,执行步骤1.1.4;否则,两个虚拟物体的AABB包围盒不相交,两个虚拟物体不可能发生碰撞,结束检测;步骤1.1.4:利用两个相交的AABB包围盒的在X轴上投影的交集、两个相交的AABB包围盒的在Y轴上投影的交集、两个相交的AABB包围盒的在Z轴上投影的交集,构成待检测区域。所述步骤1.2的具体步骤如下:步骤1.2.1:分别确定两个虚拟物体在待检测区域中的点集;步骤1.2.2:若两个点集中至少一个为空集,则表明当前两个虚拟物体中至少有一个在待检测区域中不存在点,则两个虚拟物体不可能产生碰撞;步骤1.2.3:若两个点集均非空,则表明当前两个虚拟物体在待检测区域中都存在点,则两个虚拟物体可能产生碰撞,执行步骤2。所述步骤2.1中确定分割平面的方法如下:取待检测区域中任一点,利用其移动前后两位置所形成的线段投影到X、Y、Z坐标轴上,选取投影最短的坐标轴,以该坐标轴正方向为法向量确定分割平面。所述步骤3.2的具体步骤如下:步骤3.2.1:将三角面点化;步骤3.2.2:判断移动前后点向量集合的位置是否分布在三角面所在平面的两侧:是,则点向量移动可能会与三角面产生碰撞,否则点向量移动不会与三角面产生碰撞。所述步骤3.2.2的具体步骤如下:步骤3.2.2.1:利用三角面的两条边向量,求得三角面所在平面法向量N;V1=b-aV2=c-aN=Normalize(V1×V2)其中,a、b、c分别为三角面的三个顶点,V1、V2分别是三角面的两条边向量,Normalize是将两条边向量单位化处理;步骤3.2.2.2:利用三角面所在平面法向量N及移动前后点向量的位置坐标,求得三角面所在平面距离原点的距离、移动前后点向量在三角面所在平面法向量N上的投影;D=N·aDq1=N·Q1Dq2=N·Q2其中,D表示顶点a在三角面所在平面法向量N上的投影,即三角面本文档来自技高网
...
一种基于包围盒与空间划分的虚拟物体碰撞检测方法

【技术保护点】
一种基于包围盒与空间划分的虚拟物体碰撞检测方法,其特征在于,包括以下步骤:步骤1:对两个不规则的虚拟物体进行虚拟物体碰撞预检测;步骤1.1:采用构建AABB包围盒的方法来查找两个不规则的虚拟物体之间的可能相交区域,即待检测区域;步骤1.2:根据两个虚拟物体在待检测区域中的点集,判断当前两个虚拟物体产生碰撞的可能性;步骤2:对待检测区域进行区域分割;步骤2.1:根据虚拟物体的移动方向确定分割平面;步骤2.2:根据分割平面将待检测区域分割成K个子区域;步骤3:在待检测区域划分好的各个子区域中进行相交测试;步骤3.1:将移动的虚拟物体表面视为由多个极小的点构成,各点定义为点向量;将当前不需要装配的虚拟物体视为由无数个三角面包围而成;步骤3.2:利用代表移动中的虚拟物体的点向量集合以及代表当前不需要装配的虚拟物体的三角面,检测移动前后的点向量集合与三角面所在平面的位置关系;步骤3.3:利用点向量移动前后所形成的空间线段与三角面相交状态,进行虚拟物体碰撞检测:若相交,则两个虚拟物体发生碰撞,否则两个虚拟物体不发生碰撞。

【技术特征摘要】
1.一种基于包围盒与空间划分的虚拟物体碰撞检测方法,其特征在于,包括以下步骤:
步骤1:对两个不规则的虚拟物体进行虚拟物体碰撞预检测;
步骤1.1:采用构建AABB包围盒的方法来查找两个不规则的虚拟物体之间的可能相交
区域,即待检测区域;
步骤1.2:根据两个虚拟物体在待检测区域中的点集,判断当前两个虚拟物体产生碰撞
的可能性;
步骤2:对待检测区域进行区域分割;
步骤2.1:根据虚拟物体的移动方向确定分割平面;
步骤2.2:根据分割平面将待检测区域分割成K个子区域;
步骤3:在待检测区域划分好的各个子区域中进行相交测试;
步骤3.1:将移动的虚拟物体表面视为由多个极小的点构成,各点定义为点向量;将当
前不需要装配的虚拟物体视为由无数个三角面包围而成;
步骤3.2:利用代表移动中的虚拟物体的点向量集合以及代表当前不需要装配的虚拟
物体的三角面,检测移动前后的点向量集合与三角面所在平面的位置关系;
步骤3.3:利用点向量移动前后所形成的空间线段与三角面相交状态,进行虚拟物体碰
撞检测:若相交,则两个虚拟物体发生碰撞,否则两个虚拟物体不发生碰撞。
2.根据权利要求1所述的基于包围盒与空间划分的虚拟物体碰撞检测方法,其特征在
于,所述步骤1.1具体步骤如下:
步骤1.1.1:构建两个虚拟物体的AABB包围盒,该AABB包围盒被定义为包含虚拟物体且
各边平行于坐标轴的最小六面体;
步骤1.1.2:利用构建出的虚拟物体的AABB包围盒在X、Y、Z轴上的最大值和最小值,分
别确定虚拟物体在3个坐标轴上的投影区间;
步骤1.1.3:判断两个虚拟物体的AABB包围盒在3个坐标轴上的投影区间是否都重叠:
若是,则两个虚拟物体的AABB包围盒相交,对两个相交的AABB包围盒的轴向坐标求交集,包
括两个相交的AABB包围盒的在X轴上投影的交集、两个相交的AABB包围盒的在Y轴上投影的
交集、两个相交的AABB包围盒的在Z轴上投影的交集,执行步骤1.1.4;否则,两个虚拟物体
的AABB包围盒不相交,两个虚拟物体不可能发生碰撞,结束检测;
步骤1.1.4:利用两个相交的AABB包围盒的在X轴上投影的交集、两个相交的AABB包围
盒的在Y轴上投影的交集、两个相交的AABB包围盒的在Z轴上投影的交集,构成待检测区域。
3.根据权利要求1所述的基于包围盒与空间划分的虚拟物体碰撞检测方法,其特征在
于,所述步骤1.2的具体步骤如下:
步骤1.2.1:分别确定两个虚拟物体在待检测区域中的点集;
步骤1.2.2:若两个点集中至少一个为空集,则表明当前两个虚拟物体中至少有一个在
待检测区域中不存在点,则两个虚拟物体不可能产生碰撞;
步骤1.2.3:若两个点集均非空,则表明当前两个虚拟物体在待检测区域中都存在点,
则两个虚拟物体可能产生碰撞,执行步骤2。
4.根据权利要求1所述的基于包围盒与空间划分的虚拟物体碰撞检测方法,其特征在
于,所述步骤2.1中确定分割平面的方法如下:取待检测区域中任一点,利用其移动前后两
位置所形成的线段投影到X、Y、Z坐标轴上,选取投影最短的坐标轴,以该坐标轴正方向为法
向量确定分割平面。
5.根据权利要求1所述的基于包围盒与空间划分的虚拟物体碰撞检测方法,其特征在
于,所述步骤3.2的具体步骤如下:
步骤3.2.1:将三角面点化;
步骤3.2.2:判断移动前后点向量集合的位置是否分布在三角面所在平面的两侧:是,
则点向量移动可能会与三角面产生碰撞,否则点向量移动不会与三角面产生碰撞。
6.根据权利要求5所述的基于包围盒与空间划分的...

【专利技术属性】
技术研发人员:于瑞云廖时阳赵金龙王译笙余龙
申请(专利权)人:东北大学
类型:发明
国别省市:辽宁;21

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

1