范文健康探索娱乐情感热点
热点动态
科技财经
情感日志
励志美文
娱乐时尚
游戏搞笑
探索旅游
历史星座
健康养生
美丽育儿
范文作文
教案论文

碰撞检测中的KDOPS算法论文

  摘 要 K_DOPS碰撞检测算法是一类重要的碰撞检测算法,本文从K_DOPS的定义、包围盒的选择与计算、包围盒树的构造等几个方面对K_DOPS算法进行研究,并给出一种快速碰撞检测算法并对该算法进行改进,提高算法的效率。
  关键词 碰撞检测;K_DOPS;包围盒树
  1 引言
  碰撞检测问题在计算机图形学中有很长的研究历史,近年来,随着虚拟现实,分布交互仿真等技术的兴起,碰撞检测再一次成为研究的热点,精确的碰撞检测对提高虚拟环境的真实性、增强虚拟环境的沉浸感起着至关重要的作用,而虚拟环境自身的复杂性和实时性对碰撞检测提出了更高的要求。
  包围盒树[7]是解决碰撞检测问题的一种有效的方法,碰撞检测对包围盒树的构造有以下几方面的要求:尽可能平衡以使得树的高度比较低;树的所有结点的包围盒体积尽可能小;每个结点的所有子结点的包围盒的交集尽可能小。但虚拟环境中对象进入的自由性和不可预测性以及碰撞检测的实时性又不允许我们在构造树时进行太复杂的优化,因此如何构造包围盒树将直接影响到碰撞检测的效率。
  K_DOPS可以看作是AABB[5]的扩展,它不再是用三对平面来包围对象,而是使用了k/2对平面,正是因这这种扩展,它弥补了AABB紧密性差的缺点。因此,K_DOPS是一种很好的包围盒类型。
  2 K_DOPS (Discrete Orientation Polytopes)的定义
  Discrete Orientation Polytopes(K_DOPS)包围盒是一种多面体,它的面由一组半空间 所确定,这些半空间的外法向是从 k 个固定的方向(D1,D2,...Dk)中选取的[2] [5]。
  设固定方向集K(D1,D2,...Dk) ,一元组 (d1,d2,...dk) Rk
  其中:
  半空间
  在设计K_DOPS时,为使相关的耗费尽量小,通常只选择那些共线但方向完全相反的向量作为固定法向,因此,每个K_DOPS实际上只用到k/2个方向,即
  K_DOPS是一组半空间的集合,无论是在表示、存储还是计算中都是十分不方便的,构成K_DOPS的任何一半空间都可以表示成不等式形式:
  由于集合D 是固定不变的,可以用一个 k n矩阵来表示集合 D,从而可以把k_dops表示成如下形式:
  其中由于 方向是可预知的,所以存储每个K_DOPS时无需保存方向,只需保存K个值即可,每个值对应一个平面的位置。而且当对两个K_DOPS做重叠测试时,只需要进行 次测试,这种测试远比两个OBB或凸包间的重叠测试简单。
  3 K_DOPS的选择与计算3 .1 固定方向集的选择
  K_DOPS最简单的例子是6_DOPS,其中6个面的法向分别由3个坐标轴的正负轴所决定,三维空间AABB轴向包围实际上是一种6_DOPS的特例。
  对于14_DOPS,其中除了沿用AABB的六个方向外,还增加了8个对角线的方向,以消除这些方向上可能存在的空缺。
  对于18_DOPS,其中除了沿AABB的6个方向外,还加入了指向AABB的12条边的方向,以消除这些方向上可能存在的空缺。
  对于26_DOPS,则沿14_DOPS和18_DOPS合起来的26个方向。
  图1中分别列举了6_DOPS、8_DOPS、14_DOPS和18_DOPS。
  3.2 K_DOPS的计算
  一个几何对象X的K_DOPS的包围盒的计算可以通过X的顶点与固定方向集D中的各个方向的最大点积得到。使用这个蛮力计算法计算有n个顶点的多面体对象的K_DOPS可以在O(kn)时间内完成。
  为了说明如何计算K_DOPS,我们来考虑一个如图2所示的二维三角形。
  图2给出了一个简单的二维空间中的例子,设D = { (1,0), (0,1), (1,1), (1,-1) },X是一个三角形,顶点坐标分别为(2,1),(6,2)和(4,6)。我们可以通过依次计算三角形三个顶点和D中的方向向量的点积计算这个三角形的K_DOPS。例如,为找到方向(1,1)上的.最大延伸,我们计算下面三个点积。
  (1, 1) . (2, 1) = 3
  (1, 1) . (4, 6) = 10
  (1, 1) . (6, 2) = 8
  最大值为10,故X在(1,1)上的最大延伸为10,值得注意的是,(-1,-1)是D中和(1,1)方向相反的向量,故X的顶点与(1,1)的点积的最小值即为X在(-1,-1)上的最大延伸。通过计算其它方向上的点积,可以得到X的K_DOPS为(6,2,6,1,10,3,6,-2)。这个过程可以很容易地修改为用于计算复杂的对象的K_DOPS。
  4 构造BV-tree包围盒树
  由K_DOPS的定义和计算可知,固定方向凸包是一类比较简单的几何体,它从k个方向上形成对对象的较为紧密的包围。一个复杂的对象是由成千上万个基本几何元素组成的,通过把它们的包围盒组织成层次结构可以逐渐逼近对象,以获得尽可能完善的几何特性。
  4.1 包围盒树
  对给定的 n个基本几何元素的集合S ,定义 S上的包围盒层次结构BVT(S )为一棵树,简称包围盒树,它具有以下性质[1] [3] [4] [6]:
  ①树中的每个结点v 对应于 S的一个子集Sv(Sv S) ;
  ②与每个结点v 相关联的还有集合 Sv的包围盒 b(Sv);
  ③根结点对应全集S 和 S的包围盒b(S);
  ④树中的每个内部结点(非叶结点)有两个以上的子结点,内部结点的最大子结点数称作度,记为 δ;
  ⑤结点ν 的所有子结点所对应的基本几何元素的子集合构成了对 ν所对应的基本几何元素的子集Sv 的一个划分。
  4.2 构造方法
  从输入几何元集合S上构造一棵BV_ tree可采用两种方法:自顶向下和自底向上。
  1)自底向上方法
  该方法是从集合S的基本几何元素出发,每个元素对应一个叶节点,然后利用任何局部信息递归地对它们进行分组归并,形成父节点,直到得到一个单一的根节点(即集合 S),这一方法就是如何把若干个集合归并为一个父集。这个方法的一个典型的例子是Barequet等人的"BOXTREE"。
  2)自顶向下方法
  自顶向下方法是从一个逼近S的节点开始,利用整个集合的性质递归的划分节点,直至到达叶结点,OBBTree是这个方法的一个典型的例子。
  自顶向下方法的核心是如何把一个集合划分成若干个不相交的子集,而自底向上方法的核心是如何把若干个集合归并为一个父集。很难说得出这两种方法有什么优劣之分,相对而言,自顶向下的方法在碰撞检测中使用得较多,技术更成熟一些,也比自底向上的方法更为健壮更易实现,故我们采用这一方法构造包围盒树。
  5 碰撞检测算法及改进措施
  假定已分别为一静态环境对象E和一活动对象F建立了包围盒树状层次模型(简称为包围盒树)。在包围盒树中,每个结点上的包围盒都对应于组成该对象的基本几何元素集合的一个子集,根结点为整个对象的包围盒。碰撞检测算法的核心就是通过有效的遍历这两棵树,以确定在当前位置下,活动对象的某些部分是否与环境对象的某些部分发生碰撞。这是一个双重遍历的过程。算法首先用活动对象包围盒树的根结点遍历环境对象包围盒树,如果能到达叶结点,再用该叶结点遍历活动对象的包围盒树。如果能到达活动对象的叶结点,则进一步进行基本几何元素的相交测试[7] 。其基本思想是利用几何特性简单的包围盒代替复杂的几何对象进行相交测试,如果两个结点上的包围盒不相交,则它们所包围的对象的基本几何元素的子集必定不相交,从而不需要对子集中的元素做进一步的相交测试。
  下面我们简单给出基于包围盒树的碰撞检测算法[8]。它主要由一个递归调用函数 Traverse(vE,vF)组成,vF为活动对象包围盒树中的当前结点,vE为环境对象包围盒树中的当前结点。算法的原始输入为活动对象包围盒树的根结点F和环境对象包围盒树的根结点E。
  和 分别为结点vE和vF所对应的基本几何元素的子集, 和 分别为它们的包围盒。
  算法1:Traverse(vE,vF)
  1) If then
  2) If vE是叶结点 then
  3) If vF是叶结点 then
  4) For 中的每一个基本元素
  5) For 中的每一个基本元素
  6) If then
  7) Return 碰撞
  8) End If
  9) End For
  10) End For
  11) Else
  12) For vF中的每一个结点vF
  13) Traverse(vE,vF)
  14) End For
  15) End If
  16) Else
  17) For vE中的每一个结点ve
  18) Traverse(ve,vF)
  19) End for
  20) End If
  21) End If
  算法的开销主要在于包围盒 b(SE)和 b(SF)间的相交测试,如果它们不相交,则可以结束本次调用。否则,如果 vE不是叶结点,则我们在环境对象树中继续向下一层,为 vE的每个孩子 ve递归调用Traverse(vE,vF)。如果 vE是叶结点,则我们检查 vF是否为叶结点,如果是,则我们在 vE的每个基本几何元素和 vF的每个基本几何元素间进行基本几何元素间的相交测试(如,三角形与三角形间的相交测试、三角形与四面体间的相交测试等);否则,我们在活动对象树中继续向下一层,为 vF的每个孩子vf 递归调用Traverse( vf, vE)。
  在这里,我们之所以先用活动对象的根结点遍历环境对象树,主要是因为通常情况下环境对象比活动对象更大更复杂一些(例如手术刀无论是大小还是复杂度都小于人体组织),这样做可以快速地定位活动对象在环境中的位置,较早地排除与活动对象不相交的部分;如果先用环境对象的根结点遍历活动对象树,往往会增加包围盒相交测试的次数。考虑下面这种极端情况,当活动对象完全置身于一个很大的环境对象中时,则当环境对象的根结点遍历活动对象树时,不会有任何包围盒不相交的机会。
  下面对上述算法的改进,对17,18,19进行修改
  17) If vF是叶结点 then
  18) ForvE 的每一个子结点ve
  19) Traverse( ve,vF)
  20) End for
  21) else
  22) For 的每一个子结点 ve
  23) For 的每一个子结点 vf
  24) Traverse( ve,vf)
  25) End for
  26) End for
  27) End if
  这种算法的优点是在遍历过程中环境对象树和活动对象树能同时到达叶结点,降低了纵向搜索的深度,但同时也加大的横向搜索的幅度。对于环境对象与活动对象大小接近且碰撞密集的情况,其性能有明显的提高。
  6 结论
  基于K_DOPS包围盒层次结构的碰撞检测方法,其关键是K_DOPS的计算及BV_ TREE的构造,还有就是对环境对象包围盒树和活动对象包围盒树的遍历过程中,对传统的碰撞检测算法进行了改进,使环境对象树和活动对象树能同时到达叶结点,降低了纵向搜索的深度,明显地提高了搜索效率。
  参考文献
  [1] J.Canny. Collision Detection for Moving Polyhedra. IEEE Trans. Pattern Anal. Mach. Intel. 1986,8(2): 200-209
  [2] A .Smith,Y.Kitamura,H.Takemura,F.Kishino. A Simple Efficient Method for Accurate Collision Detection Among Deformable Polyhedral Objects in Arbitrary Motion. Proceedings of the IEEE Virtual Reality Annual International Symposium,pp.136-145,1995.2
  [3] MyszKowski K,et al。Fast collision detection between computer solids using rasterizing graphics hardware [J]The Visual Computer,1995 1l(9);497-511
  [4]Hubbard,P. M. Approximating polyhedral with spheres for time critical collision detection. ACM Transactions on Graphics,1996,15(3):179210
  [5]Van Den Bergen,Efficient collision detection of complex deformable models using AABB trees. Journal of Graphics Tools .1997,2 (4):1-14
  [6]James T.Klosowiski. Efficient Collision Detection Using Bounding Volume Hierarchies of k-Dops,IEEE Transactions on Visualization and Computer Graphics,Vol. 4,No. 1,1998
  [7]王志强,洪嘉振,杨辉.碰撞检测问题研究综述.软件学报,1999,10 (5): 545-551
  [8]魏迎梅,吴泉源,石教英..碰撞检测中的固定方向凸壳包围盒的研究.软件学报,2001

简析7S管理在高职院校基础化学实践教学中的应用17S管理的概念及内容7S是指整理(Seiri)整顿(Seiton)清扫(Seiso)清洁(Seiketsu)素养(Shitsuke)安全(Safety)节约(Saving)。7S简析高职院校继续教育管理工作挑战与对策一新时期高职院校继续教育管理工作面临的挑战(一)社会影响力的不足高职院校专业大多围绕行业需求进行布局,专业的局限性强,在支持地方经济建设与发展方面,难以发挥更多的作用,在地方急需人试谈高职院校职业生涯规划需求性分析一我国大学生职业生涯规划需求的分类在管理学当中把人的需求大致分为5个层次(马斯洛),而生涯需求的分类由于文化差异等客观原因,中外专家的观点与标准并不统一。笔者认定的职业生涯规划需求浅谈高职院校学生国家安全教育研究一高职院校学生国家安全教育概述(一)国家安全国家安全由国家和安全两个概念组成。安全就是一种不以人的意志为转移的客观状态,既包含没有外部威胁的状态,也包括没有内部威胁的状态。安全有主试论高职院校日语专业如何转型升级一当前高职院校日语专业的现状(一)专业定位不明,课程设置不够合理当前高职院校日语专业基本上沿袭了传统的本科教学模式,可以说是缩小版的本科教学样式,定位既体现不出高等性,更凸显不出职探讨基于应用型师范院校食品专业一前言我校的办学目标是办一所受当地人民尊重的教学应用型大学,学校以增强学生动手能力实践能力社会适应能力为目标,着力推进人才培养方式转变。食品工业是我国国民经济的重要支柱产业,对提高关于在课堂教学中强化高职学生口语能力的培养论文关键词高职口语能力课堂教学论文摘要语言学习的最终目的是运用,高职英语学习的运用主要体现在口语表达的交际。课堂教学在我国英语教学中作用特别,因此口语能力对高职学生来说更多地是通过浅谈我国高职教育的现状思考其发展策略论文关键词高等职业教育发展现状存在问题问题根源发展对策论文摘要本文分析了我国高等职业教育发展的现状和存在的问题,论述了存在问题的根源,并提出了我国高等职业教育发展的对策。我国高等职普通高校体育课程改革的现状及理性思考论文关键词高等学校体育课程教学改革论文摘要近些年来对高校体育教学改革问题,人们从不同的角度进行了探讨和研究。本文拟从分析普通高校体育课程现状人手,结合教育发展趋势,以理性的视角分析浅谈学校体育课程经验资源的理性思考论文关键词体育课程经验资源理性思考论文摘要采用归纳综合逻辑分析等研究方法,对经验的概念,经验作为课程资源的意义和体育课程经验资源的结构等问题进行剖析,这对于提高人们对体育课程经验资高校体育专业体操课程教学安全防范对策摘要体操课程是高校体育专业学生学习的一门必修课程和基础性课程,具有复杂性应用性和危险性等特点,对安全防范具有较高的要求。本文以此为研究内容,分析了高校体操课程教学中可能存在的安全隐
企业文化与管理沟通研究论文摘要管理沟通和企业文化是目前企业管理中最热门的两个话题。本文从企业文化和管理沟通的历史沿革概念及两者之间存在的关系出发,对企业文化和管理沟通做出了深入研究,并探讨了二者对于企业生存企业管理沟通论文在经济全球化的今天,管理沟通作为人力资源管理中最为基础和核心的环节,重要性日益凸显。重视管理沟通,能使管理者之间管理者与员工之间的信息传递更为顺畅,企业的经营管理效率更高。下面是小构建大型百货商厦知识营销竞争优势管理论文内容摘要本文在分析大型百货商厦的传统竞争的基础上,提出了构建大型百货商厦知识营销竞争优势的设想和做法。关键词大型百货商厦知识营销竞争大型百货商厦的传统竞争分析1。规模竞争。很多大型贸易动力转型出口贸易论文一我国纺织品出口贸易面临的环境及发展趋势1贸易自由化背景下,区域性优惠安排增加的趋势随着世界经济一体化的进一步加深,世界各国之间经济和贸易的联系与依赖日益增强对贸易保护主义形成一定关于中小企业营销策略研究的论文一中小企业的特点中小企业,也可以简称为中小企,是指在经营管理规模上较小的企业,企业员工及营业收入均不太多。就目前来看,中小企业已经逐渐成为我国经济发展的主要力量,在国民经济发展中处我国公共文化服务均等化研讨论文摘要围绕我国公共文化服务均等化研究,基于CNKI(20082017年)十年样本文献进行文献量化分析。通过对样本文献的时间分布引证文献共引文献关键词共现和其他分布情况进行分析,以梳理体育系本科毕业论文体育教学指导思想,应坚持以健康第一为先导以全面育人为中心以身心协调为重点以终身体育为方向,接下来是小编为您整理的体育系本科毕业论文,希望对您有所帮助。摘要体育教育作为基础教育重要的感悟阅读个性化阅读中的情感共鸣论文阅读过程是语文学习中一个重要环节,也是阅读个体的感悟和体验建构的过程,是一种再创造,它带有强烈的个性特征。学生对于文本的理解是其个性化思维和情感活动的结果,特别是对于文学作品,解读通信网络安全维护措施的论文一通信网络安全维护中存在的问题通信网络安全维护中存在的问题主要包括两个方面,一个方面是计算机因素另一个方面是人为因素方面。计算机方面由于计算机网络通信自身的开放性以及联结性特征,使浅谈如何科学体育锻炼论文摘要常言道生命在于运动。准确的来表达应该是生命在于科学的运动。体育锻炼具有广泛的群众性,无论对多大年龄,都能够参与一些体育锻炼。体育锻炼的组织形式灵活多变,想通过体育锻炼有效地增强中医药电子商务论文企业的商务活动由物流货币流以及信息流三个重要环节组成,网络时代大环境下,电子商务的主要作用是实现了商业企业信息流的电子化和网络化。以下是中医药电子商务论文,欢迎阅读。前言传统的中药