虚拟现实中的碰撞检测技术word文档格式60

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

虚拟现实中的碰撞检测技术word文档格式60
摘要
实时准确的碰撞检测关于提高虚拟环境的真实性、增强虚拟环境的沉溺感有着至关重要的作用。

该文对碰撞检测相关技术停止了深化的研讨,主要包括以下几个方面的内容:
首先引见了虚拟理想技术的开展及现状、碰撞检测的研讨现状;然后复杂引见了碰撞检测一些基础实际知识,着重引见常用的碰撞检测算法。

紧接着,复杂引见了OpenGL编程的基础知识和面向对象编程的特点。

在碰撞检测算法的运用中,运用OBB包围盒层次树的碰撞检测算法,提出了一种普通多面体间碰撞检测的可行性方案,并用软件对该方案停止完成,同时指出该方案的优缺陷。

最后,对全文停止了总结,并指出今后的研讨方向。

关键词:虚拟理想碰撞检测包围盒层次树OBB
STUDY AND IMPLEMENTATION ON COLLISION
DETECTION TECNOLOGY OF VIRTUAL REALITY
Abstract
Real-time and accurate collision detection is very important to improve reality and enhance illusion of immersion for virtual environment.
This paper studies the technique of collision detection deeply.It contains the following parts:
Firstly,this paper reviews recent research on collision detection field.Then it introduces some basic knowledge and emphasizes on introduce of collision detection algorithm.Next,it introduces OpenGL and Oriented-object language program character.In collision detection implementation chapter,a scheme of collision detection between general polyhedron is presented by using bounding hierarchy volume algorithm.The method is implemented by vc6.0.And it analyses advantage and disadvantage of the method.Finally,the conclusion is drawn and the work of future research is presented.
KEY WORDS: virtual reality collision detection bounding hierarchy volume OBB
目录
第一章绪论 (1)
1.1虚拟理想技术开展及现状 (1)
1.1.1 虚拟理想的特点 (1)
1.1.2 国际外虚拟理想技术的研讨状况 (2)
1.2碰撞检测的研讨现状 (3)
1.2.1意义及特点 (3)
1.2.2碰撞检测的研讨现状 (4)
1.3论文的任务和组织结构 (6)
第二章碰撞检测实际 (8)
2.1碰撞的定义[3] (8)
2.2碰撞检测的模型类别 (8)
2.3碰撞检测的场景特征[2] (9)
2.4碰撞检测技术的基本原理 (9)
第三章碰撞检测算法 (11)
3.1空间剖分法 (11)
3.2包围盒层次树法 (12)
3.2.1包围盒外形的设计准那么 (13)
3.2.2包围盒类型 (13)
3.3基于特征的距离计算增量算法 (17)
3.3.1基本概念 (17)
3.3.2 Lin-Canny算法概述 (19)
3.3.3顺应性准那么 (20)
第四章编程基础实际 (26)
4.1O PEN GL编程基础 (26)
4.1.1 OpenGL基本特点 (26)
4.1.2 OpenGL完成 (28)
4.1.3 OpenGL图形绘制 (29)
4.1.4 OpenGL光照处置 (30)
4.1.5 OpenGL纹理映射 (31)
4.1.6深度测试 (33)
4.2面向对象的编程 (33)
4.3O PEN GL编程环境的设置 (34)
第五章碰撞检测算法的运用 (36)
5.1物体建模 (36)
5.2场景绘制 (39)
5.3碰撞检测算法的运用 (42)
5.3. 1 基础实际 (42)
5.3.2 碰撞检测的完成进程 (44)
5.3.4用户交互 (51)
5.4本顺序的优缺陷 (53)
第六章总结与展望 (55)
主要参考文献 (56)
..................................................................................................................................................................................
第一章绪论
1.1虚拟理想技术开展及现状
1.1.1 虚拟理想的特点
自20世纪90年代初以来,虚拟理想技术不时是信息范围研讨、开发和运用的热点方向之一。

虚拟理想〔Virtual Reality〕,也称为〝人工理想〞或〝临境〞技术,是多媒体开展的更高境界,虚拟理想以愈加初级的集成化和交互性,给用户以愈加逼真的体验,可普遍运用在模拟训练、迷信可视化等范围,将是今后十分生动的技术课题。

虚拟理想就是用计算机技术生成一个逼真的,集听、视、触及嗅觉为一体的觉得世界,用户以人的自然技艺与虚拟理想交互调查,包括三层意思:[1]
1)虚拟实体是用计算机来生成的一个逼真的实体,〝逼真〞就是要到达三维视觉,甚至其他三维觉得。

2)用户可以经过人的自然技艺〔如头和眼的转动、手势等其他身体举措〕与环境交互。

3)虚拟理想往往要借助于一些三维传感设备来完成交互举措,如头盔平面显示、数据手套、数据服装、三维鼠标等。

虚拟理想是一种高度集成技术,是计算机、机器人、人工智能以及心思学等开展的结合结晶,因此取决于三维实时图像显示、三维定位跟踪传感技术、人工智能技术、高速并行计算机技术及人的行为学等范围的研讨停顿。

因此虚拟理想技术的研讨和完成难度很高,美国著名图形学专家J.Foley讲过:〝虚拟理想是人机接口设计中最后一个堡垒,也是最有意义的范围。


虚拟理想的基本特征可以概括为三个〝I〞,即Immersion-Interaction-Imagination(沉溺-交互-构思)。

它强调了人在信息处置进程中的主导作用,使信息处置从以计算机为中心转到以人为中心。

虚拟理想这一概念来源于Ivan Sutherland在1965年宣布的一篇题为〝The Ultimate Display〞的报告。

在该报告中提出应用计算机系统结构一个具有视觉、听觉和觉得真实感的世界。

1968年,Ivan Sutherland开发了第一个可以跟踪头部运动的头盔显示器
〔head-Mounted Display,简称HMD〕。

HMD依据用户在虚拟世界的位置来显示相应的内容,当用户移动或转动头部时,经过HMD所看到的虚拟世界也随之发作改动。

后来,许多人在这方面停止了少量研讨,并取得了一些停顿。

1.1.2 国际外虚拟理想技术的研讨状况
在虚拟理想范围,国际外专家和学者曾经做出了许多研讨任务。

国外研讨状况:
1〕美国的研讨状况
美国是虚拟理想技术的发源地。

其水平基本上就代表国际开展的水平。

目前美国在该范围的基础研讨主要集中在感知、用户界面、后台软件和硬件四个方面。

2〕日本的研讨状况
在以后适用虚拟理想技术的研讨与开发中,日本是居于抢先位置的国度之一,主要努力于树立大规模虚拟理想知识库的研讨。

另内在虚拟理想的游戏方面的研讨也做了很多任务。

NEC公司计算机和通讯分部中的系统研讨实验室开发了一种虚拟理想系统,它能让操作者都运用〝代用手〞去处置三维CAD中的形体模型,该系统经过VPL公司的数据手套把对模型的处置与操作者手的运动联络起来。

东京大学的广濑研讨室重点研讨虚拟理想的可视化效果。

为了克制以后显示和交互作用技术的局限性,他们正在开发一种虚拟全息系统。

富士通实验室正在研讨的一个项目是虚拟生物与虚拟理想环境的相互作用。

他们还在研讨虚拟理想中的手势识别,曾经开发了一套神经网络姿态识别系统,该系统可以识别姿态,也可以识别表示词的信号言语。

3〕英国的研讨与开发
在VR开发的某些方面,特别是在散布并行处置、辅佐设备〔包括触觉反应〕设计和运用研讨方面,英国在欧洲是抢先的。

国际研讨状况:
和一些兴旺国度相比,我国虚拟理想技术还有一定的差距,但是一些国际大学都也做出很多研讨。

1)北京航空航天大学首先停止了一些基础知识方面的研讨,并着重研讨了虚拟环
境中物体物理特性的表示与处置;在虚拟理想中的视觉接口方面开收回了局部硬件,并提出了有关算法及完成方法等。

2)浙江大学CAD&CG国度重点实验室开收回了一套桌面型虚拟修建环境实时遨游系统。

另外,他们还研制出了在虚拟环境中一种新的快速遨游算法和一种递进网格的快速生成算法。

3)哈尔滨工业大学计算机系已成功地虚拟出了人的初级行为中特定人脸图像的分解,表情的分解和唇动的分解等技术效果,并正在研讨人说话时头势和手势举措等。

4)清华大学对虚拟理想的临场感的方面停止了研讨,他们还针对室内环境水平特征丰富的特点,提出借助图像变换,使平面视觉图像中对应水平特征出现外形分歧性,以利于完成特征婚配,并获取物体三维结构的新颖算法。

5)西安交通大学对虚拟理想中的关键技术,平面显示技术停止了研讨。

他们在自创人类视觉特性的基础上提出了一种基于JPEG规范紧缩编码新方案,并取得了较高的紧缩比、信噪比以及解压速度。

1.2碰撞检测的研讨现状
1.2.1意义及特点
目前,虚拟理想真实性的研讨少量集中在视觉、听觉和触觉等几个方面。

例如采用几何建模方法来表示虚拟环境中的实体,然后运用纹理映射、消隐和光照计算等方法生成逼真的环境。

虚拟理想只要逼真的外观是不够的,还需求有逼真的形状变化,例如,实体位置、方向和外形等形状变化规律与真实世界中相反或相似,即虚拟理想中的实体需求具有运动逼真性。

碰撞检测和照应是虚拟理想中的一项重要技术,是其基本特性之一〝沉溺感〞的重要保证。

碰撞检测的两个重要约束条件是实时性和准确性[2]。

就实时性而言,针对虚拟环境中的视觉显示要求,碰撞检测的速度至少要到达24Hz;而针对虚拟环境中的触觉显示要求,碰撞检测的速度至少要到达300Hz才干维持触觉交互系统的动摇性,要到达1000Hz 才干取得平滑的效果。

准确性取决于详细的运用,比如关于环境遨游系统,普通只需近似模拟碰撞检测状况,此时,假定两个物体实践没有发作碰撞但其距离比拟近〔如在某一阈值内〕,就可以将其当作是发作了碰撞,并粗略计算碰撞位置。

而关于虚拟手术仿
真、虚拟装配等运用,就要准确地检测碰撞的发作和计算碰撞发作的位置。

1.2.2碰撞检测的研讨现状[3]
碰撞检测最早被普遍用于消费中的自动操作和处置,即虚拟组装和装配。

近年来,碰撞检测和照应的研讨在虚拟理想中扮演了越来越重要的角色,特别是用碰撞检测和照应来模拟理想生活中的接触、抓、移动和打击等状况。

下面我们将关于碰撞检测的研讨状况停止复杂引见。

关于碰撞检测和照应的研讨主要集中在对实体间准确碰撞检测算法和碰撞照应的处置。

目前曾经构成了一些比拟成熟的算法。

虚拟理想中检测两个实体之间能否发作了碰撞,实践上就是检测这两个实体所占的几何空间能否相交,常用的方法有团圆方法和延续方法。

团圆方法〔Discrete Methods〕也称为静态方法〔Static Methods〕,是指当检测时间〔Ts,Te〕内能否发作碰撞,那么仅在Ts<Ts+t1<Ts+t2<……<Ts+tk<Te一系列团圆的时间点上停止碰撞检测。

Moore,M.和Wilhelms,J.提出了两种基于实体模型点、边和面几何关系的碰撞检测方法。

一种方法直接计算两个实体顶点、边和面之间的关系,另一种方法是运用点积来判别一个点能否进入另一个实体外部。

M.K.Ponamgi,D.Manocha,Ming C.Lin等人提出了一种基于V oronoi区域的碰撞检测方法。

这种方法应用虚拟环境中实体运动的分歧性,即实体运动形状的变化在dt时间内是有限的,大大增加了检测两个凸多面体能否碰撞的时间,取得了实时碰撞检测的打破性停顿。

延续方法〔Continuum Methods〕也称为静态方法〔Dynamic Methods〕,是指检测以后实体从以后形状运动到下一形状所滑过的四维空间与其它实体同时滑过的四维空间能否发作堆叠。

T.Duff的区间剖析〔Interval Analysis〕方法就是一种延续碰撞检测方法。

由于延续方法比拟复杂,计算量比拟大,所以绝大少数虚拟理想系统采用团圆的碰撞检测方法。

当检测到虚拟环境中发作碰撞时,需求依据碰撞状况修正发作碰撞实体的运动表示,即修正实体的运动方程,确定实体的损坏和形变,完成碰撞对实体的影响,这就是碰撞照应。

在虚拟理想研讨初期,对碰撞照应的要求比拟复杂。

例如,在虚拟遨游系统碰撞检测只是当检测到碰撞时制止该方向的运动。

如今对碰撞照应的研讨越来越多。

目前对碰撞照应的研讨主要有两个方向,一类是研讨针对虚拟实体物理特性的碰撞照应,即碰撞对实体的运动行为和自身特性的影响。

例如美国联邦铁路部〔FRA〕对防撞性评价系统的研讨,主要分为三步:第一步是对单节机动有轨车辆碰撞物理特性的定义;第二步
是机动有轨车辆碰撞动力学模型的树立;第三步是计算碰撞结果,评价两铁路系统的防撞性。

另一类着重于研讨碰撞照应的图形效果,即碰撞后实体损伤的图形表示和一些烟火等特殊效果。

在STOW97的结合演练中,曾经完成了炮弹爆炸后所发生的弹坑,路途、桥梁及修建物不同水平的损坏,车辙和一些清楚痕迹的图形效果。

关于平面碰撞检测效果的研讨主要有3个方面,包括可碰撞、可移动区域和最后碰撞部位的检测。

近10几年来,许多专家学者对平面碰撞效果停止了深化的研讨,并取得一些很好的结果,提出了许多算法。

Tetsuya,Toshiaki和Mario等人提出了一种称为空间占有的方法,即物体在目的空间移动,当试图占有相反的球体时来检测它们的碰撞[21]。

这种算法基于这样一条原理:没有任何物体和其他物体占有同一个球体,也不需求特殊的计算来检测碰撞。

并且,在它们的方法中,每个物体连同它们所占有的球体在3D 空间中都被赋予一个名字,因此其他物体知道它们和哪个物体发作碰撞。

Chin及Wang 研讨了两个多边形的相交和最小距离效果。

应用可视边链和凸的顶点相关于其外部点的单调性,提出了判别凸n-边形和一个复杂非凸m-边形的相交效果的最优算法[22],并且研讨了当两个多边形相交时一个多边形能否被另一个多边形完全包括的效果,其时间复杂度都为O(m+n)。

David Baraff研讨了平面内多个凸多边形的碰撞效果,并采用将凹多边形分解为凸多边形的方法来求解碰撞效果,其实质还是凸多边形的碰撞效果[23]。

关于三维空间碰撞效果的研讨普通有可碰撞和碰撞规避两方面。

所谓可碰撞效果就是物体A和B在空间沿给定轨迹移动时能否发作碰撞。

可移动区域就是物体A沿给定的规律运动,而不与物体B发作碰撞的一切能够运动的区域。

最后碰撞点的检测就是当物体A以给定的运动规律运动,并将与物体B发作碰撞时,检测它们在最后发作碰撞时的接触部位。

碰撞规避就是两个或多个物体的无碰撞运动。

从对平面碰撞检测效果的研讨中,可失掉有力和巧妙的技巧。

而关于空间〔≥3D〕的情形,那么潜藏着难以克制的困难,这也许是平面碰撞效果已失掉很深化的研讨,并提出了很多种最优算法,而关于空间效果尚少有高效算法的一个缘由吧。

很多学科都对研讨和模拟三维物体的干预效果感兴味。

物体的干预是两个或多个物体的体积占有相反的空间。

通常,物体的干预有两大类,即静态干预和静态碰撞检测。

静态碰撞检测就是沿特定轨迹移动的物体的干预检测。

静态碰撞检测算法又可分为两大类:①判别移动的物体之间能否发作碰撞亦即可碰撞效果;②检测到碰撞的存在并采取措施停止规避,也就是碰撞规避效果。

静态干预检测算法依据所用实体表示模型的不同,现有实体干预检验算法大致可分红两类。

一类算法主要基于B-rep模型。

在这方面,Ganter
提出空间联系技术[24]。

另一类算法是以层次模型为基础的,如八叉树干预检验算法和层次Sphere检验算法[25 [26][27]。

静态碰撞检测可运用两类技术,第1类技术是一种基于在给定轨迹上重复应用静态干预检测被称为〝单步检测〞的方法,第2类技术是基于发生称之为〝扫描实体〞的物体。

关于这两类技术的研讨许多研讨者都提出自己的算法aruyama提出了一种递归空间联系算法和一种普通的面对面相交算法。

但是,Boyse提出了第1种可用的单步检测系统[28] Ganter及Isarankura开展了单步检测方法,提出了一种空间联系技术的方法。

Hahn采用层次包围盒技术来减速多面体场景的碰撞检测。

Moore与Wilhelems依据Cyrus-Beck裁剪算法提出了一种凸多面体碰撞检测算法,即经过检测多面体顶点能否相互包括来判定它们能否发作碰撞。

关于具有n个凸多面体、每个多面体有m个顶点的效果,此算法的时间复杂度为O(n2m2);关于凹多面体那么分解为多个凸多面体来处置。

Ganter和Isara nkura提出了一种空间联系的方法,行将给定物体所占有的空间划分红一系列子空间,将碰撞测试限定在两物体的堆叠子空间中停止,并且在堆叠子空间里的元素都按最大、最小来排序,从而进一步增加了测试时间。

最坏状况下的处置时间为O(*N2/2),*N 是堆叠区域的单元面的总个数。

1.3论文的任务和组织结构
碰撞检测是虚拟理想中的关键技术,可以增强虚拟环境的真实感和用户的沉溺感,并在计算机动画、物理仿真、计算几何、机器人学、CAD/CAM等范围有普遍的运用。

因此对碰撞检测技术的研讨具有十分重要的意义。

本论文的全体框架如下:
第一章,简明引见了虚拟理想技术的开展及现状,然后主要引见了研讨碰撞检测技术的意义,最后引见了碰撞检测技术在国际外研讨开展与现状。

第二章,引见碰撞检测的一些基本实际。

为了进一步深化研讨碰撞检测技术,首先第三章,有必要了解一些相关基础实际。

在本章中主要引见了碰撞的定义、碰撞检测的模型类别、碰撞检测的场景特征及其碰撞检测技术的基本原理。

第四章,着重引见了常用的一些碰撞检测算法。

区分引见了空间剖分法、包围盒层次树法、基于特征的距离计算增量算法等算法原理和优缺陷。

第五章,引见了OpenGL编程基础和面向对象编程。

主要针对行将用到一些知识停止简介。

主要引见了OpenGL基本特点、OpenGL完成、OpenGL图形绘
制、OpenGL光照模型、OpenGL纹理贴图等知识和引见了面向对象编程
的特点、OpenGL编程环境设置。

第六章,引见碰撞检测算法的运用。

采用OBB包围盒层次树算法完成一个碰撞检测场景。

本章中简明引见了场景完成步骤,并用流程图明晰展现了碰撞检
测的完成进程。

然后剖析本实例顺序完成的优缺陷。

第七章,总结了本论文的主要任务内容,并提出了下一步任务的目的。

第二章 碰撞检测实际
2.1碰撞的定义[3]
在理想世界中,碰撞是一种罕见的动力学现象。

其特点是整个进程时间持久,普通在10-2秒以内,并在碰撞实体之间发生相当大的冲击力,使实体发作形变,并在一定水平上改动实体的运动形状。

在虚拟理想系统中普统统过检测两个实体所占的几何空间能否相交来判别能否发作碰撞。

在理想世界中,每个实体都占有一定几何空间,而且不能够出现两个实体相互穿透的现象。

当虚拟理想系统中两个实体所占有的几何空间试图相互穿透时,系统就以为这两个实体发作了碰撞。

假设有四维空间来描画运动实体,前三维是通常意义上的三维空间,第四维是时间,那末一个实体就可以用四维空间中的点集来描画,即:
{}(,)|()()x t x L t S ∈
其中:S 是构成实体的三维空间点集,L(t)是确定实体t 时辰空间位置的函数。

经过L(t)(S)可以给出三维空间点集中每个点t 时辰的位置。

假定用四维空间中的点集S1*和S2 *来描画两个实体S1和S2以及它们的运动,那么碰撞检测可以描画为在某时辰某两个实体所占空间位置的关系,即:
关于(,)x t ,有(,)x t ∈ S1*和(,)x t ∈ S2*,当且仅当S1* ⋂ S2* ≠ ∅时,发作碰撞。

2.2碰撞检测的模型类别
虚拟环境中的物体所用的模型大体分为面模型和体模型两大类。

面模型用物体的边界来表示物体,而不包括物体外部信息。

体模型采用体元来表示物体,可描画物体的外部信息。

体模型所耗存储量大,计算量也大。

而面模型的研讨和运用比体模型的成熟多。

由于凸多面体有很好的性质,因此可以取得较高效率的基于凸多面体的碰撞检测算法。

关于普通的体,由于处置相对比拟复杂,往往采用将普通的体分解成几个凸多面体再停止逐一碰撞检测。

所以碰撞检测的研讨任务大多是基于面模型的,少数是基于体模型的。

面模型又可进一步分为很多种,如多面体模型、CSG 、隐式曲面、参数化曲面等。

其中,最常用的一种是多面体模型,特别是三角形模型。

多面体模型是一种繁复,通用的表示方法,简直运用于表示任何外形的物体,而且便于操作,易于完成硬件减速。

多面体模型又有多种方式,碰撞检测算法也能够对模型的方式有要求,如很多算法要求输入模型是实体,即可表示成闭合曲面,其中,不少算法应用物体的凸性来减速,因此进一步要求输入模型是凸多面体,对非凸多面体那么做特殊处置;另一些算法对输入模型那么不做特殊处置要求,输入模型被表示成一组无拓扑约束的三角片,这类算法通用性比拟好。

本论文输入模型便是一组无拓扑约束的三角片。

2.3碰撞检测的场景特征[2]
场景可按物体的运动形状分为静态局部和静态局部,静态局部间的碰撞检测可离线计算,而静态局部假设事前能知道物体的运动轨迹,其碰撞检测可离线计算。

但是虚拟环境是一个实时交互系统,物体的运动轨迹普通是未知的,故碰撞检测要实时地停止。

在虚拟环境中有些物体是静态的,有些物体是静态的,静态物体越多,碰撞发作的概率越大,其碰撞检测的复杂水平越高。

场景中的运植物体还可分为刚体和柔体,刚体物体在运动中不改植物体外形,其运动方式局限于平移和旋转;柔体物体在运动中会改植物体的外形,其运动方式除了平移、旋转还有变形,如心脏的跳动。

故柔体物体的碰撞检测比刚体要复杂得多。

在本论文中我们只针对刚体物体停止碰撞检测。

2.4碰撞检测技术的基本原理
假设两个平安封锁的多面体发作相互碰撞时,其中一个多面体至少会有一个面与另一个多面体的至少一个面发作相交。

假定能在碰撞发作时,立刻检测到相交,然后将两个物体的位置稍做调整,可消弭碰撞现象。

如下是碰撞检测基本算法描画:
设在一虚拟环境中要仿真n个物体:A1,A2……,An,其对物体的仿真进程是逐帧计算的,从T0到T1按时间步长dT停止计算。

//在虚拟环境中调用碰撞检测进程[2]
Simulation()
{

for (T=T0 to T1,步长为dT)
do
{
取得用户的输入;
更新A1,A2…,An各物体的行为;
if (collisionDetect(T,{A1,A2…,An}找到了碰撞)
then 计算碰撞反响;
绘制n个物体A1,A2…,An
}
}
//碰撞检测进程,Tprev为全局变量,初值为〔T0-dT〕,dt为碰撞检测的步长,collisionDetect〔Tcurr, {A1,A2…,An}〕
{
for (t=Tprev to Tcurr,步长为dt)
do
{
for ({A1,A2…,An}中每个物体Ai)
do 移动Ai到其在时间t的位置;
for({A1,A2…,An}中每个物体Ai)
do
for({Ai+1,…An}中每个物体Oj)
do
if (Oi与Oj相交)
then 报告在时间t发作了碰撞;
}
Tprev = Tcurr;
}
以上是碰撞检测思想的一种最基本的方法,在实践运用进程中可以依据需求对该方法进一步改良,以失掉更高效的碰撞检测算法。

第三章碰撞检测算法
由于碰撞检测的重要运用,人们对它停止了普遍而深化的研讨,算法种类也很多。

在很多时分,对碰撞检测实时性要求很强,需求碰撞检测的几何模型集合中模型复杂且很多,在这种状况下,普通是针对虚拟场景的特点、几何模型的几何与运动等特点设计可高效运用于该虚拟场景的算法,如有些算法适用于凸多面体几何模型、有些适用于可运动模型少的虚拟场景。

但是还没有可以满足所无状况的通用碰撞检测算法。

3.1空间剖分法
空间剖分法通常将空间剖分红平均的单元,每个物体对应一个或多个单元中,只要当物体处于同一单元空间中才干够相交,这时应该对该单元空间停止准确的碰撞检测。

采用空间剖分思想[19]的算法普通用树的方式逐渐联系空间,可以进一步减速碰撞检测。

常用的空间剖分方法是BSP[4]、八叉树[5]〔如图3-1〕、平均网格[6]、3-d树[7]。

八叉树用树的结构表示空间的分解状况,根是整个空间,将每个父结点空间用三个区分与坐标轴垂直的联系面分红大小相等的八份,每一份作为它的一个子结点,联系不时停止直到与子结点相交的三角形数目小于一个阈值或许与子结点相交的三角形属于同一模型,该子结点成为一个叶结点;假设来自两个模型的三角形与同一个叶结点相交,那末需求对这两个模型停止碰撞检测。

BSP树与八叉树相似,但是二叉树。

3-d树是一种特殊的BSPs 树,用来联系空间的联系面都是与某一个坐标轴垂直的。

普通,空间剖分算法在每次碰撞检测时都需求确定每个模型占有的空间单元,假设场景中不可动的模型很多,可以预先划分好空间单元并计算出每个模型占有的空间单元,当有模型运动时,只需重新计算运动模型占有的空间单元就可以。

所以空间剖分算法比拟适宜用于稀疏的环境中散布比拟平均的几何对象间的碰撞检测,如图3-2。

相关文档
最新文档