CN103049341A - 带预判方法的obb层次体树碰撞检测方法 - Google Patents

带预判方法的obb层次体树碰撞检测方法 Download PDF

Info

Publication number
CN103049341A
CN103049341A CN2012104759021A CN201210475902A CN103049341A CN 103049341 A CN103049341 A CN 103049341A CN 2012104759021 A CN2012104759021 A CN 2012104759021A CN 201210475902 A CN201210475902 A CN 201210475902A CN 103049341 A CN103049341 A CN 103049341A
Authority
CN
China
Prior art keywords
obb
bounding box
obb bounding
collision detection
box
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN2012104759021A
Other languages
English (en)
Inventor
陈国庆
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
SUZHOU LIANGJIANG TECHNOLOGY Co Ltd
Original Assignee
SUZHOU LIANGJIANG TECHNOLOGY Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by SUZHOU LIANGJIANG TECHNOLOGY Co Ltd filed Critical SUZHOU LIANGJIANG TECHNOLOGY Co Ltd
Priority to CN2012104759021A priority Critical patent/CN103049341A/zh
Publication of CN103049341A publication Critical patent/CN103049341A/zh
Pending legal-status Critical Current

Links

Images

Landscapes

  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

本发明公开了一种带预判方法的OBB层次体树碰撞检测方法,通过在碰撞检测前进行预判,是在进行OBB包围盒相交测试之前进行的,考虑到OBB相交测试过于繁琐,计算量比较大,在每次OBB相交测试之前进行两包围盒的预判测试,能够提高OBB相交测试算法效率。

Description

带预判方法的OBB层次体树碰撞检测方法
技术领域
本发明属于计算机进行物体碰撞检测技术领域,具体涉及一种带预判方法的OBB层次体树碰撞检测方法。 
背景技术
层次包围体树是基于物体空间的碰撞检测方法,该方法是对物体建立体树结构,并对划分物体建立包围盒结构。建立体树是为了减少进行碰撞检测的包围盒个数,当检测到某节点之间不相交,则不需对其子节点进行检测即可判断不相交。构造包围盒的目的是利用简易的包围盒来对不规则物体区域进行包围,进行碰撞检测,如包围盒之间不相交,则物体区域也不相交,如包围盒相交,则还需对物体区域进行碰撞检测。 
包围盒结构有包围盒、AABB包围盒、k-Dop包围盒、OBB包围盒。包围球定义为包围该物体最小的球体,构造简单,内存需求小,紧密性差。AABB包围盒是沿世界坐标系的轴向包围盒,它是包含几何对象且每一条边平行于坐标轴的最小六面体,构建迅速、测试简单、紧密较包围球好。K-Dop包围盒是由k/2对平行平面包围物体对象而形成的凸多面体,其中k为平面法向量的个数,也就是平面对的个数。该包围盒更接近物体,紧密性较好。OBB包围盒是为包含物体对象且轴向任意的最小长方体,它根据对象的几何特点紧密包围对象,紧密性较好,精度较高。 
现有技术中存在的问题是如何在保证碰撞检测的精度的情况下提高检测速度。现有技术中研究者有把AABB包围盒和包围盒相结合,把包围盒检测的速度和AABB包围盒的检测精度合理的结合起来,但是精度上不是很好。本发明因此而来。 
发明内容
本发明目的在于提供一种带预判方法的OBB层次体树碰撞检测方法,解决了现有技术中通过计算机进行物体碰撞检测时难以在保证碰撞检测的精度的情况下提高检测速度等问题。 
为了解决现有技术中的这些问题,本发明提供的技术方案是: 
一种带预判方法的OBB层次体树碰撞检测方法,其特征在于所述方法中第一OBB包围盒与第二OBB包围盒的中心距离为L,包围第一OBB包围盒的最小球体半径为r1,第一OBB包围盒的最大包围球体半径为r2;包围第二OBB包围盒的最小球体半径为r1’,第二OBB包围盒的最大包围球体半径为r2’;所述方法包括先进行预判,然后通过OBB包围盒相交测试方法进行碰撞检测的步骤,具体按照如下方法进行: 
(1)当L<=r2+r2’时,即第一OBB包围盒与第二OBB包围盒的中心距离小于等于OBB包围盒最大包围球体半径之和,则判定两个OBB包围盒必然相交,碰撞检测结束; 
(2)当L>=r1+r1’时,即第一OBB包围盒与第二OBB包围盒的中心距离大于等于包围OBB包围盒的最小球体半径之和,则判定两个包围盒必然不相交,碰撞检测结束; 
(3)当r2+r2’<L<r1+r1’时,即第一OBB包围盒与第二OBB包围盒的中心距离大于OBB盒最大包围球体半径之和,且小于包围OBB盒的最小球体半径之和,则不能判定是否相交;此时按照OBB包围盒相交测试方法进行碰撞检测。 
本发明技术方案提供了一种带预判方法的OBB层次体树碰撞检测方法,实现虚拟现实物体的碰撞检测方法,在保证碰撞检测精度的情况下,尽量提高检测的速度。本发明方法是在OBB碰撞检测方法中加入预判方法,在进行碰撞检测的过程中,经过上一步的预判,找出可能碰撞的对象,对它们进行OBB碰撞检测。如果它们不相交,则该次OBB碰撞检测就成了本次碰撞检测过程中的冗余运算。 
因此,本发明技术方案预判方法基本思想:在进行OBB包围盒相交检测之前,对物体构造OBB包围盒进行预判。如果预判结果是一定不相交,即可判定包围盒不相交,不需再用OBB的检测方法在15个轴上进行投影判断;如果预判结果是一定相交,即可判定相交;如果预判结果不能确定,对两个OBB包围盒,进行投影判断。 
本发明与现有技术相比,具有如下的有益效果: 
本发明技术方案通过在碰撞检测前进行预判,是在进行OBB包围盒相交测试之前进行的,考虑到OBB相交测试过于繁琐,计算量比较大,在每 次OBB相交测试之前进行两包围盒的预判测试,能够提高OBB相交测试算法效率。 
附图说明
下面结合附图及实施例对本发明作进一步描述: 
图1为本发明技术方案带预判方法的OBB层次体树碰撞检测方法的原理示意图; 
图2为本发明技术方案带预判方法的OBB层次体树碰撞检测方法的工作流程图。 
具体实施方式
以下结合具体实施例对上述方案做进一步说明。应理解,这些实施例是用于说明本发明而不限于限制本发明的范围。实施例中采用的实施条件可以根据具体厂家的条件做进一步调整,未注明的实施条件通常为常规实验中的条件。 
实施例 
如图1所示,本实施例带预判方法的OBB层次体树碰撞检测方法的原理。构建包围OBB包围盒的最小球体,计算两OBB包围盒中心距离,若大于两球体的半径之和,则两个包围盒必不相交;构建OBB包围盒包围的最大球体,计算两OBB包围盒中心具体,若小于这两球体的半径和,则两个包围盒必相交。 
由图1可知,其中B1、B2为两个相交测试的OBB包围盒,S1,S1’分别为包围B1,B2的最小球体,S2和S2’分别为B1,B2的包围的最大球体,O1、O2分别为包围盒B1,B2的中心点,r1,r2,r1’,r2’分别为S1,S2,S1’,S2'的半径,L为B1和B2中心的距离。 
判断方法: 
当L<r2+r2’时,即B1和B2中心之间距离小于OBB盒最大包围球体半径之和,则判定两个包围盒必然相交。 
当L>r1+r1’时,即B1和B2中心之间距离大于包围OBB盒的最小球体半径之和,则判定两个包围盒必然不相交。 
当r2+r2’<L<r1+r1’时,即B1和B2中心之间距离大于OBB盒最大包围球体半径之和,小于包围OBB盒的最小球体半径之和,则不能判定是否相交。在预判方法不能确定的情况下,继续使用OBB包围盒相交测试方法进行判断。 
进行模型应用两种碰撞检测方法,其中,方法1为直接采用OBB的方法,即使用RAPID碰撞库,方法2是预判方法与OBB包围盒层次体树相结合的方法,表1表示对不同三角形面片的模型应用方法1和方法2所需进行OBB碰撞检测的面片数和实际检测出碰撞的面片数。 
表1不同模型应用不同方法需检测的面片数 
Figure DEST_PATH_GDA00002775949400041
表2表示对不同三角形面片的模型应用方法1和方法2进行碰撞检测所需耗费的时间对比。 
表2不同模型的碰撞检测消耗时间 
Figure DEST_PATH_GDA00002775949400042
如图2流程图可知,预判方法是在进行OBB包围盒相交测试之前进行的,考虑到OBB相交测试过于繁琐,计算量比较大,在每次OBB相交测试之前进行两包围盒的预判测试,能够提高OBB相交测试算法效率。 
这里方法1是按照经典的OBB-Tree算法,具体OBB树的划分原则如下: 
(1)对模型对象建立OBB,将该OBB作为OBB树的根节点,它包容了模型对象中所有的三角形。 
(2)选择当前OBB节点最长边作为分裂轴,该长边的中点为分裂点,过分裂点且垂直于分裂轴的平面作为分裂平面,根据三角形的中心在分裂平面的哪一侧,就将三角形归到哪一边,这样可以将OBB包围的三角形分为两个集合。用这两个三角形集合计算出两个OBB,并分别以两个OBB节点作 为当前节点,递归执行(2);如果不可分裂,则转到(3)。 
(3)选择当前OBB节点的次长轴进行分裂,如果不可分裂,则转到(4),若可以分,则将生成的新的OBB节点作为当前节点,转到(2)。 
(4)选择最短边。如果不可分裂,则三角形集合不可再分,作为叶子节点。若可分,分别生成两个OBB节点作为当前节点,转到(2)。 
上述实例只为说明本发明的技术构思及特点,其目的在于让熟悉此项技术的人是能够了解本发明的内容并据以实施,并不能以此限制本发明的保护范围。凡根据本发明精神实质所做的等效变换或修饰,都应涵盖在本发明的保护范围之内。 

Claims (1)

1.一种带预判方法的OBB层次体树碰撞检测方法,其特征在于所述方法中第一OBB包围盒与第二OBB包围盒的中心距离为L,包围第一OBB包围盒的最小球体半径为r1,第一OBB包围盒的最大包围球体半径为r2;包围第二OBB包围盒的最小球体半径为r1’,第二OBB包围盒的最大包围球体半径为r2’;所述方法包括先进行预判,然后通过OBB包围盒相交测试方法进行碰撞检测的步骤,具体按照如下方法进行:
(1)当L<=r2+r2’时,即第一OBB包围盒与第二OBB包围盒的中心距离小于等于OBB包围盒最大包围球体半径之和,则判定两个OBB包围盒必然相交,碰撞检测结束;
(2)当L>=r1+r1’时,即第一OBB包围盒与第二OBB包围盒的中心距离大于等于包围OBB包围盒的最小球体半径之和,则判定两个包围盒必然不相交,碰撞检测结束;
(3)当r2+r2’<L<r1+r1’时,即第一OBB包围盒与第二OBB包围盒的中心距离大于OBB盒最大包围球体半径之和,且小于包围OBB盒的最小球体半径之和,则不能判定是否相交;此时按照OBB包围盒相交测试方法进行碰撞检测。
CN2012104759021A 2012-11-21 2012-11-21 带预判方法的obb层次体树碰撞检测方法 Pending CN103049341A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN2012104759021A CN103049341A (zh) 2012-11-21 2012-11-21 带预判方法的obb层次体树碰撞检测方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN2012104759021A CN103049341A (zh) 2012-11-21 2012-11-21 带预判方法的obb层次体树碰撞检测方法

Publications (1)

Publication Number Publication Date
CN103049341A true CN103049341A (zh) 2013-04-17

Family

ID=48061990

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2012104759021A Pending CN103049341A (zh) 2012-11-21 2012-11-21 带预判方法的obb层次体树碰撞检测方法

Country Status (1)

Country Link
CN (1) CN103049341A (zh)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106951631A (zh) * 2017-03-18 2017-07-14 李远阳 一种圆形与带旋转角度的矩形包围盒碰撞检测方法
CN108356819A (zh) * 2018-01-17 2018-08-03 西安交通大学 基于改进a*算法的工业机械臂无碰撞路径规划方法
CN108628184A (zh) * 2018-06-13 2018-10-09 华南理工大学 一种用于机器人仿真系统的碰撞检测方法
CN109683729A (zh) * 2018-12-22 2019-04-26 威创集团股份有限公司 三维场景控制方法及装置
CN111104749A (zh) * 2019-12-24 2020-05-05 山东恒道如一数字传媒有限公司 一种基于渐进式外接球结构的碰撞检测算法

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102368280A (zh) * 2011-10-21 2012-03-07 北京航空航天大学 一种面向虚拟装配的基于aabb-obb混合包围盒的碰撞检测方法

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102368280A (zh) * 2011-10-21 2012-03-07 北京航空航天大学 一种面向虚拟装配的基于aabb-obb混合包围盒的碰撞检测方法

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
甘建红等: "基于OBB层次结构碰撞检测的改进算法", 《系统仿真学报》, vol. 23, no. 10, 31 October 2011 (2011-10-31), pages 2169 - 2171 *
邹益胜等: "实时碰撞检测算法综述", 《计算机应用研究》, vol. 25, no. 1, 31 January 2008 (2008-01-31), pages 8 - 12 *

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106951631A (zh) * 2017-03-18 2017-07-14 李远阳 一种圆形与带旋转角度的矩形包围盒碰撞检测方法
CN108356819A (zh) * 2018-01-17 2018-08-03 西安交通大学 基于改进a*算法的工业机械臂无碰撞路径规划方法
CN108356819B (zh) * 2018-01-17 2020-08-14 西安交通大学 基于改进a*算法的工业机械臂无碰撞路径规划方法
CN108628184A (zh) * 2018-06-13 2018-10-09 华南理工大学 一种用于机器人仿真系统的碰撞检测方法
CN109683729A (zh) * 2018-12-22 2019-04-26 威创集团股份有限公司 三维场景控制方法及装置
CN109683729B (zh) * 2018-12-22 2020-07-24 威创集团股份有限公司 三维场景控制方法及装置
CN111104749A (zh) * 2019-12-24 2020-05-05 山东恒道如一数字传媒有限公司 一种基于渐进式外接球结构的碰撞检测算法
CN111104749B (zh) * 2019-12-24 2023-09-15 山东恒道如一数字传媒有限公司 一种基于渐进式外接球结构的碰撞检测算法

Similar Documents

Publication Publication Date Title
CN103049341A (zh) 带预判方法的obb层次体树碰撞检测方法
CN103914868A (zh) 虚拟现实下的海量模型数据动态调度与实时异步加载方法
KR101517927B1 (ko) 동적 장애가 없는 네트워크 게임 시스템 및 그 처리 방법
CN101281654A (zh) 一种基于八叉树的大规模复杂三维场景处理方法
CN104658033B (zh) 多光源下的全局光照绘制方法及装置
CN101984443A (zh) 一种改进的柔性织物碰撞处理方法
CN104699946B (zh) 一种游戏场景的管理方法及装置
CN104267940A (zh) 一种基于cpu+gpu的地图切片的快速生成方法
CN103914877A (zh) 一种基于扩展合并的三维模型多细节层次结构
CN103337091A (zh) 一种基于厚度的柔性场景连续碰撞检测方法
CN102253862B (zh) 一种基于SIMD的k-DOP包围盒碰撞检测方法
CN104361625A (zh) 一种基于射线原理的带边界保留的云数据精简算法
CN102393825B (zh) 一种基于非共面剔除的柔性场景连续碰撞检测方法
CN104240290A (zh) 一种基于包围球模型的三维电缆相交检测方法
CN102722910A (zh) 一种基于分离轴剔除的体网格场景连续碰撞检测方法
CN107563080B (zh) 基于gpu的两相介质随机模型并行生成方法、电子设备
Du et al. Fast continuous collision culling with deforming noncollinear filters
CN102708017A (zh) 一种基于非共线剔除的柔性场景连续碰撞检测方法
CN102393827A (zh) 一种基于连续法向锥剔除的柔性场景连续碰撞检测方法
CN104463940B (zh) 一种基于gpu的混合树并行构建方法
TWI406189B (zh) 點雲三角網格面構建方法
CN108744517A (zh) 音频处理方法、装置、终端和存储介质
CN104794747A (zh) 一种基于射线原理的三维点云数据精简算法
CN103793745B (zh) 一种分布式粒子群优化方法
Ding Research on collision detection algorithm based on combined bounding box

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C12 Rejection of a patent application after its publication
RJ01 Rejection of invention patent application after publication

Application publication date: 20130417