一种基于三角网格变形体的自碰撞检测方法:(1)构建基于层次包围体的数据结构;构建拓展层次包围体xBVH;构建自碰撞检测树SCTT;星型轮廓检测优化步骤;(2)基于星型轮廓的自碰撞检测预处理阶段步骤;(3)基于星型轮廓的自碰撞检测实时阶段步骤。本发明专利技术能够高效实时的检测三角网格变形体变形过程中的自碰撞现象,精确定位碰撞发生点并实时更新碰撞信息。
【技术实现步骤摘要】
本专利技术属于计算机虚拟现实
,具体地说是从开发包含真实细节的可变形物体的交互式仿真系统的实际需求出发,通过研究可变形物体自碰撞检测技术的现状,为方便用户进行可变形实体建模仿真中真实变形操作而开发的一个三角网格变形体自碰撞检测方法或系统。
技术介绍
近二十多年来,研究人员在碰撞检测领域中做了相当多有意义的工作,对虚拟现实的发展起到了推动作用。碰撞检测算法种类繁多,各有侧重。文献1-H.C.Longuet-Higgins, A computer algorithm for reconstructing a scene from two projections . Nature, 1981. 293(10) :133-135 提出了一类连续碰撞测算法,连续碰撞检测算法通过对结构空间精确建模,较好地解决了离散碰撞检测算法存在的问题。但这类算法的缺点是计算量较大,计算速度比较慢,尤其是在大规模场景中无法实现实时的碰撞检测。所以尽管离散碰撞检测算法存在一些问题,但因其检测过程的快速性能够较好地迎合人们对实时碰撞检测的需求,目前仍是碰撞检测算法研究的重点和热点。纵观前人的研究,大致可分为基于图形和基于图像的碰撞检测算法。在基于图形的碰撞检测上,研究人员已经做了大量的工作,形成了空间分解法和层次包围体法等成熟算法。文献2-Jimenez P,Thomas F,Torras C. Collision Detection A Survey. Computers and Graphics , 2001. 25(2) :269-285所采用的空间分解法主要是先将整个虚拟空间划分成等体积的规则单元格,以此将场景中的物体分割成更小的组群,并只对占据了同一单元格或相邻单元格的几何对象进行相交测试。一般来说,空间分解法在每次碰撞检测时都需要确定每个物体占有的空间单元。如果场景中不可动的模型很多,可以预先划分好空间单元格并确定每个模型占有的空间单元。当有模型运动时,只需要重新计算运动模型所占有的空间就可以了。空间分解法比较典型的例子有k-d树、八叉树、BSP树、四面体网和规则网格等。采用层次划分方法进行空间分解可以进一步提高算法的速度。文献3-Daniel S. Coming and Oliver G. Staadt,Kinetic. Sweep and Prune for Collision Detection, Workshop on Virtual Reality Interaction and Physical Simulation,2005提出了包围盒技术,层次包围体法的核心思想是用体积略大而几何特性简单的包围体来近似的描述复杂的几何对象,从而只需对包围体重叠的对象进行进一步的相交测试。此外通过构造树状层次结构可以越来越逼近对象的几何模型,直到几乎完全获得对象的几何特征。基于包围体的碰撞检测方法的不同点在于树节点的包围体类型不同或者采用不同的技术来建立、更新和平衡包围体树。典型的包围体有轴对齐包围盒 (AABB)、包围球(Sphere)、有向包围盒(OBB)和离散有向多面体k_D0P。其中前两者的计算简单但是包围程度相对不够紧密,而OBB的方法由于考虑到轴向所以包围相对紧密,但是计算相对比较复杂。而K-DOPs算法则在全局坐标系中计算物体的包围盒,每当物体运动时,其包围盒层次结构需要重新计算。近些年,随着图形硬件计算性能的迅速增长,基于图像的碰撞检测算法进入了一个新的快速发展的阶段。该方法一般将三维几何对象通过投影绘制到图像平面上,降维得到一个二维的图像空间;然后分析该空间中保存在各类缓存的信息,进而检测出对象之间是否发生相交。这类算法的优势在于能有效利用图形硬件加速技术来减轻的计算负荷,从而达到提闻算法效率的目的。近年来的研究热点主要集中于变形体对象的自碰撞检测。变形体对象会在运动中发生形变,其包围体树必须实时的重新构建或者更新,而重新构建整个数据结构的时间耗费在一个实时的仿真环境中是不能接受的,因此在层次包围体方法中必须避免整棵树的重新构建。研究这根据不同包围体的特性进行改进,将层次包围体方法也用于变形体对象的自碰撞检测。文献 4-A Smith, Y Kitamura, H Takemura, et al. A Simple and Efficient Method for Accurate Collision Detection among Deformable Polyhedral Objects in Arbitrary Motion. The IEEE Virtual Reality Annual International Symposium,1995, 2 =136-145提出了一种基于AABB包围盒的解决变形体对象的方法,该方法每一步都重新计算对象的包围盒,其缺点是当模型复杂时不能得到实时计算。文献5-Yashifumi Kitamura, Andrew Smith, Haruo Takemura. A Realtime Algorithm for Accurate Collision Detection for Deformable Polyhedral Objects. Presence,Vol. 7,No. I,February 1998 36-52提出了一种用于解决复杂场景下的变形体的自碰撞检测方法,这种算法的本质是包围盒方法与空间分解法的结合。此方法的缺点是采用八叉树的数据结构复杂。文献 6-PR0V0T, X. Collision and Self-collision Handling in Cloth Model Dedicated to Design Garment . Graphics Interface , 1997 :177-189提出了法向量维法,与包围盒树搭配使用,起到了剪枝的作用,在大范围上过滤掉不可能相交的三角面片区域。连续碰撞检测中的三角面片对的一次精确求交运算可以归结为6次点-面求交和9次边-边求交。 由于存在几何基元被相邻的三角面片对共享的现象,为了避免进行冗余的几何基元精确相交测试,对每个三角形对进行点-面或边-边检测前,首先查询数据表中是否已存在检测过的记录,若没有则继续进行检测。但查询数据表的方法内存开销大,系统效率低。上述自碰撞检测方法,与用户的需求联系不紧密,对实时建模仿真的模块重用性、 通用性以及布料仿真方面考虑较少,导致用户使用不方便,建模设计周期长,给研发工作带来诸多不便。
技术实现思路
本专利技术的技术解决问题为克服上述缺点,本专利技术提供了一种基于三角网格变形体的自碰撞检测数据结构及方法,能够高效的在可变形物体三角网格模型变形、运动仿真过程中进行自碰撞检测,如着装人体的动画仿真中人体与布料的穿透检测,虚实融合环境中(电影特效、游戏制作)人体部位与虚拟场景交互自碰撞检测。本专利技术采用,其特点在于步骤如下(I)构建基于层次包围体的数据结构;(a)层次包围体(BVH)构造为树的每个结点与物体基本元素的一个子集相关联, 并且用指定类型的包围体包住该子集的基本元素。(b)BVH的叶节点复制到底层,拓展成XBVH。(2)根据步骤(I)中的层次包围体的数据本文档来自技高网...
【技术保护点】
【技术特征摘要】
【专利技术属性】
技术研发人员:沈旭昆,赵凌,郑小萌,赵沁平,
申请(专利权)人:北京航空航天大学,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。