基于空间分解和包围盒层次的混合碰撞检测算法概要.docx
- 文档编号:30383907
- 上传时间:2023-08-14
- 格式:DOCX
- 页数:13
- 大小:182.08KB
基于空间分解和包围盒层次的混合碰撞检测算法概要.docx
《基于空间分解和包围盒层次的混合碰撞检测算法概要.docx》由会员分享,可在线阅读,更多相关《基于空间分解和包围盒层次的混合碰撞检测算法概要.docx(13页珍藏版)》请在冰豆网上搜索。
基于空间分解和包围盒层次的混合碰撞检测算法概要
基金项目:
国家自然科学基金资助项目(60371036,60773022;国家“863”计划基金资助项目(2007AA01Z313
收稿日期:
2009-02-24 修回日期:
2009-04-20
第27卷 第6期
计 算 机 仿 真
2010年6月
文章编号:
1006-9348(201006-0191-03
基于空间分解和包围盒层次的混合碰撞检测算法
康 勇1
熊岳山2
费先宏1
徐兴华
3
(1.军事经济学院军需系,湖北武汉430035;2.国防科学技术大学计算机学院,湖南长沙410073;3.海军工程大学计算机工程系,湖北武汉430035
摘要:
在研究机器人路径规划问题中,针对碰撞检测中,为解决实时性和精确性有关问题,提出基于空间分解和层次包围盒技术的混合碰撞检测算法。
算法中与物体模型相关的部分是实时计算的,息无特殊要求。
通过空间分解深度调节算法中不同阶段的计算负荷,,包围盒层次树构建策略,对不同模型之间做了碰撞检测实验,,结果表明,算法能够满足实时性和精确性的要求。
关键词:
空间分解;包围盒;混合碰撞检测中图分类号:
TP39119 :
B
AidonDetectionAlgorithmBased
SpatialPartitioningandBoundingVolumeHierarchy
KANGYong1
XIONGYue-shan2
FEIXian-hong1
XUXing-hua
3
(1.DepartmentofQuartermaster,MilitaryEconomyAcademy,WuhanHubei430035,China;
2.NationaluniversityofdefensetechnologyChangshaHunan410073,China;
3.NavalUniversityofEngineering,WuhanHubei430035,China
ABSTRACT:
Thepaperproposesahybridcollisiondetectionalgorithmtosolvecommoncollisiondetectionproblem.Inthealgorithm,thecalculationrelatedtotheobjectmodeliscompletedinrealtime,soittakesnorequirementongeometricinformationandtopologicalstructureoftheobjectmodel.Byadjustingthedepthofthespatialdivision,thecalculationweightofthetwophasescanberedistributed.Combinedwiththespecificationofthealgorithmandchoo2singtheappropriatestrategyofspatialdivisionandhierarchyboundingvolumetreeconstruction,differentcollisiondetectionexperimentswerearecarredout.Theresultsshowthat,thecostoftheReal-timecalculationcanalsobedecreased,thealgorithmcanmeettherequirementoftimecriticalityandprecision,thedepthofthespatialdivisionprocessisofgreatimportancetotheefficiencyofthealgorithm,andeithertoosmallortoobigcandoharmtotheeffi2ciencyofhybridcollisiondetection.
KEYWORDS:
Spatialdivision;Boundingvolumebox;Hybridcollisiondetection
1 引言
碰撞检测是计算机虚拟世界实现的关键技术,由早期机
器人路径规划问题中首先提出,随着计算机软件、硬件技术的迅猛发展,在虚拟现实、三维游戏、计算机仿真、虚拟装配等领域中都有广泛的应用。
实时性、精确性是检验碰撞检测
成败的两个关键因素。
包围盒与空间分解是两种经典的碰
撞检测技术,包围盒的基本思想是用几何形状简单的图形代替物体参与碰撞检测,尽早排除不可能发生碰撞的部分,常
见的包围盒有AABB[1]、Sphere[2]、OBB[3]、K-DOP[5]
等;空间分解是将空间进行划分,以尽早定位可能发生碰撞的区
域。
空间划分的主要代表有Octrees[6]、BSP-trees[7]
、brep-trees[8]
等。
人们现有的认知水平对计算机虚拟世界的复杂度、真实感提出了更高的要求。
虚拟场景中包含的物体模型数量、复
—
191—
杂度剧增,单纯基于空间分解或包围盒层次的碰撞检测所建立的划分树深度也随之增大,层次遍历求解碰撞检测结果的时间、空间复杂度大大增大,这对碰撞检测算法提出了更高的要求。
本文提出混合空间分解与包围盒的碰撞检测算法,在不影响碰撞检测精确性的前提下,在降低空间分解深度的同时有效减少了构建包围盒层次树的数量和深度,提高了大型虚拟场景使用空间分解和包围盒技术进行碰撞检测的效率。
2 算法概述
定义1:
基元是指构成虚拟场景中的物体模型的基本几何元素。
结合空间分解和包围盒层次两种技术,提出了一种混合碰撞检测算法,算法处理过程主要包括三个阶段,如图1所示
。
图首先,在空间分解过程中,建立对象空间的层次划分树框架,并将场景中所有对象的基元分配到空间划分树框架
上,查找那些基元来自两个以上(含两个对象的树中的节点,把这些节点称为潜在碰撞单元格(PotentiallyCollidingVolumes,PCVs,将这些PCVs导入包围盒层次阶段进一步处理。
然后,在包围盒层次阶段,针对每一个PCV实时地建立每个对象的基元集合的包围盒层次树,通过相互遍历这些包围盒层次树来获取那些可能相交的基元对,将这些基元对称为潜在碰撞基元对(PotentiallyCollidingPrimitivePairs,PCPs,将这些PCPs导入精确相交测试阶段进行计算。
最后,精确相交测试是将从包围盒层次阶段导入的
PCPs进行基元间相交测试,这是基于物体空间碰撞检测的
最后阶段,通过对基元进行相交测试,最终将获取详细碰撞信息(相交的基元对、相交点等。
总之,混合碰撞检测就是利用空间分解和包围盒层次两种经典的碰撞检测技术来对虚拟场景中的基元集合进行遴选,剔除那些不可能相交的基元对,最终只需要对那些在两次筛选中留存下来的基元对进行耗时的基元对间的相交测试,从而达到提高碰撞检测效率的目的。
3 关键技术
3.1 选取空间分解策略
Octree、BSP和k-dtrees[4]
是常见的空间分解技术,它
们被大量应用在已有的基于空间分解的碰撞检测算法中。
与基于空间分解的碰撞检测不同,混合碰撞检测将空间分解
作为前期处理,为后续的构建包围盒层次树降低复杂度,使保证包围盒层次树可以实时构建。
二叉树具有构建高效和遍历快速等特点,是最常用的树状结构。
本文中也将对象空间转换成这种树状结构。
节点的分割是构建空间分解层次树的关键,通过递归地将节点沿着它的长轴一分为二,生成两个子空间,直至满足给定的终止条件为止,可以得到一棵包含所给空间中所有物体的层次二叉树。
这种节点的分割方法可以尽量地保证分割出来的两个子空间是“矮胖”形状,矮胖形状的单元格对后续的基元分配过程有利(引用文献,可以降低同一个基元与不同的单元格同时相交的概率。
3.2 确定空间分解深度
以此,,它的:
1划分深度尽可能低,加速其构建以及遍历的过程;2划分后叶节点体积尽可能小并且包含的基元尽可能少,以加速包围盒层次阶段的包围盒层次树的构建。
因此,划分深度不宜太大,以免在构建和遍历空间分解层次树的时间开销过大,会使后续的包围盒层次阶段失去意义;同时划分深度也不宜太小,使输入到包围盒层次阶段的PCV尺寸过大,导致每个PCV内所包含的基元数量太多,加重动态构建PCV内的对象的包围盒层次树的计算压力,难以实时构建包围盒层次树。
3.3 对象基元的分配
空间分解过程的主要计算开销集中在将对象的基元分配到所构建的空间分解树的节点上。
最简单的分配是基于对象进行分配,即依次将每个对象的所有基元分配到树中的每个节点。
根据这种分配方式建立的空间分解树存在大量的数据冗余和无效的分配,例如,对于包含两个对象A、B的虚拟场景,如果对象A在树中的某个节点上没有基元的分布,那么对B在这个节点的子树进行基元分配就是无效的。
本文利用这个性质,提出基于节点的分配策略,对树中每个节点,先将所有对象的基元分配到该节点上,通过检测该节点的基元是否来自不同对象确定是否继续进行其子节点的基元分配,算法框图见图2。
3.4 选取包围盒
由于PCVs的包围盒层次树是在系统运行过程中实时构建和遍历的,包围盒层次树的构建策略和遍历方法对算法性能的影响就更显得重大。
包围盒的选取则是影响包围盒层次树构建和遍历效率的关键。
选取包围盒也是基于包围盒层次的碰撞检测的核心问题。
由于混合碰撞检测中包围盒层次树是实时创建的,对Gottschalk在碰撞检测中使用的评定碰撞检测算法的性能的代价函数[3]修改为,碰撞检测的时间开销:
—
291—
图2 基于节点的基元分配策略
F=Nb×C
b+Nbv×Cbv+Np×Cp(1
其中:
Nb:
需要创建的节点数Cb:
Nbv:
Cbv:
Np:
参与相交测试的基元的对数Cp:
基元间相交测试的时间开销
根据(1式,由于Cp是一定的,选取包围盒时应该使
Nb、Cb、Nbv、Cbv和Np尽可能小。
其中Nb、Nbv和Np尽可能小就要求选取的包围盒有良好的紧致性。
而Cb和Cbv尽可能小则要求所选取的包围盒简单性好、计算简单并且相交测试高效。
混合碰撞检测中包围盒层次树需要根据PCV中各个对象的基元集合进行实时构建,所选取的包围盒的计算简单性和相交测试高效性是首要考虑的因素。
AABB在紧致性方面虽不如OBB和FDH,但是它的计算和相交测试非常高效,同时,对模型质量进行优化可以有效减少模型中的“对角狭长”基元的存在,这在一定程度上使AABB的紧致性得到提升。
因此,混合碰撞检测算法中选取AABB作为构建对象层次结构的包围盒。
4 实验与分析
实现了用于解决两个由三角形面片组成的表面模型碰撞检测问题的混合碰撞检测,并对不同的模型进行了碰撞检测,主要有肝脏模型、圆环模型、胃模型和盲肠模型,算法运行的硬件环境是AMD3600+处理器、1G内存和C61芯片组板载GForce6100图形显示芯片,软件环境是MicrosoftWin2dowsXPsp2,开发工具为MicrosoftvisualC++610,采用OpenGL图形库绘制界面,碰撞效果如图3、图4,加黑粗体部分为两个模型发生碰撞的基元。
表1列出了对这三种模型进行两两碰撞检测的平均碰撞检测时间,前两者时间控制在10-3s的数量级内,
能满足
碰撞检测的实时性要求。
由于盲肠模型与圆环模型几何尺
寸相差悬殊,导致额外的计算量,使得算法效率降低。
表1 不同模型间的混合碰撞检测
模型1
模型2
空间分解深度
叶节点最小基元数
平均检测时间/ms
肝(1332胃(21322881961883圆环(1600肝(13322861257227圆环(1600盲肠(24980
3
20
71162884
针对空间分解深度h对混合碰撞检测算法的影响,对圆环和肝脏模型做了试验,表2给出了结果,当h=0时,混合碰撞检测蜕化为基于包围盒的碰撞检测,实时构建对象的包围盒树,因此检测时间开销较大;当空间分解深度不为0时,平均检测时间迅速下降,这表明空间分解很好的加速了碰撞检测速度;但是,随着空间分解深度的不断增加,平均检测时间从开始的缓慢增长变成快速增长,这表明空间分解深度过大对算法效率又有负面影响。
因此,空间分解深度的选取需要根据模型来选择。
表2 空间分解深度对混合碰撞检测算法的影响
(圆环与肝脏模型的碰撞
空间分解深度h
包围盒层次阶段叶节点最小面片数
平均碰撞检测时间(ms
0845101119286125722748615165876861728164886191577510
8
71454636
(下转第202页
—
391—
BP神经网络对误差值进行预测,可以有效地对广义预测控
制模型预测值进行修正。
仿真实验表明,即使网络控制系统
具有随机、时变的网络时延,系统发生模型失配的情况下,该算法也可以取得较好的控制效果,在解决时延对网络控制系统控制性能的影响方面有一定的实用价值。
参考文献:
[1] WZhang,MSBranicky,SMPhillips.Stabilityofnetworkedcon2
trolsystems[J].IEEEControlsystemsMagazine,2001,21(2:
85-99.
[2] GCWalsh,HYe.Schedulingofnetworkedcontrolsystems[J].
IEEEControlSystemsMagazine,2001,21(2:
57-65.
[3] 傅磊,戴冠中.一类具有随机时延的网络化控制系统的广义预
测控制[J].测控技术,2007,26(9:
29-32.
[4] 王冬青.带误差补偿的GPC对网络控制系统时延的解决[J].
中国工程科学,2005,7(8:
60-64.
[5] 刘晓华,杨振光.基于动态BP网络误差修正的广义预测控制
[J].数学的实践与认识,2002,32(3:
445-449.
[6] 李国勇.智能控制及其MATLAB实现[M].北京:
电子工业出
版社,2005.
[作者简介]
邓 娜(1982-,女(汉族,重庆大足人,硕士研
究生,主要研究方向为网络控制系统。
王晓凯(1963-,男(汉族,山西人,教授,博士,
研究方向为通信网络的管理、控制与优化。
(上接第193页
5 结语
算法,,具有天然的适用形变物体间碰撞检测的能力,与传统的形变物体的包围盒层次碰撞检测方法相比,无需考虑碰撞后产生的各种形变对包围盒层次树的更新或者重建,可以避免采用包围盒层次技术解决可形变碰撞检测问题时对树状结构更新或重建给系统带来的计算压力。
同时,通过调整空间分解的划分深度,可以有效降低算法中实时计算的时间开销,为空间分解和包围盒层次两个阶段的计算负荷进行重新分配。
以达到最大效率。
混合碰撞检测对于场景中尺寸相差悬殊并且小尺寸对象所含基元数量较多的两个对象的碰撞检测效果不够理想,空间分解深度的选取需要针对不同的模型进行定性分析,这些问题在下一步的研究中值得进一步深入。
参考文献:
[1] GvandenBergen,EfficientCollisionDetectionofComplexDe2
formableModelsUsingAABBTrees[J].JournalofGraphics
Tools,1997,2(4:
1-13.
[2] PMHubbard.ApproximatingPolyhedralWithSpheresforTime-CriticalCollisionDetection[J].ACMTransactionGraphics,July1996:
15(3:
179-210.
[3] SGottschalk,MCLin,DManocha.OBB∃Tree:
AHierarchical
StructureforRapidInterferenceDetection[C].SIGGRAPHπ
96Proc,August19961171-180.
4]BernardChazelle,LeonidasJGuibas,JosephSB
Mitchell,AyelletTal. BOXTREE:
AHierarchicalRepresenta2tionforSurfacesin3D[J].ComputerGraphicsForum,1996,15(3:
387-396.
[5] ZhaiLili.ResearchonAssessmentsofMissileHittingAccuracy
andDestructionEffectivenessBasedonVirtualPr
ototyping[D].Beijing:
Beijing
University
of
Aeronautices
and
Astronautics,2006.
[6] SBandi,DThalmann.AnAdaptiveSpatialSubdivisionoftheOb2
jectSpaceforFastCollisionDetectionofAnimatingRigidBodies[C].Eurographics’95Proc,August19951259-270.[7] SMelax.DynamicplaneshiftingBSPtraversal[C].
InProc.of
GraphicsInterface′00,20001213-220.
[8] WBouma,GJrVanecek.CollisionDetectionandAnalysisina
PhysicalBasedSimulation[C].EuroGraphicsWorkshoponAni2mationandSimulation,19911191-203.
[作者简介]
康 勇(1984-,男(汉族,江西省会昌人,助
教,硕士,主要研究领域为虚拟现实、数值分析和信息化教学等。
熊岳山(1963-,男(汉族,湖南岳阳人,国防科
学技术大学教授,博士生导师,主要研究方向:
图形
图像处理,虚拟现实及数值分析。
费先宏(1975-,男(汉族,安徽六安人,副教授,主要研究方向:
后方专业勤务、计算机仿真等。
徐兴华(1982-,男(汉族,辽宁大连人,硕士生,主要研究方向:
计算机图形学、虚拟现实。
—
202—
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 空间 分解 包围 层次 混合 碰撞 检测 算法 概要