欢迎来到天天文库
浏览记录
ID:21893923
大小:56.50 KB
页数:7页
时间:2018-10-25
《基于vega的碰撞检测算法研究》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、基于Vega的碰撞检测算法研究:虚拟环境下的碰撞检测问题是当今计算机图形学研究的热点之一。针对复杂场景实时漫游过程中的碰撞检测本文提出了一种将分割过滤法与包围盒技术相融合的碰撞检测方法,在Vega平台下,应用本算法成功实现了桌面级非沉浸式虚拟漫游系统,在检测精度和检测速度上都取得了满意的效果。 关键词:分割过滤实时漫游 引言 在虚拟环境中,为了模拟真实世界,让用户获得高度的沉浸感,就必须为用户提供具有关键交互作用的虚拟环境。虚拟现实系统一个最重要功能,就是能快速进行虚拟世界中物体间的碰撞检测。精确的碰撞检测对提高虚拟环境的真实性、
2、增强虚拟环境的沉浸感起着至关重要的作用,而虚拟环境自身的复杂性和实时性对碰撞检测提出了更高的要求[1]。 1为观察者建立碰撞检测模型 漫游者在漫游过程中会与地面、障碍物发生碰撞。虽然Vega有对地面碰撞检测的定义,但对于自定义的运动模型根本起不到实质的作用,因此本文采用基于视线的BUMP算法进行碰撞检测。 该方法使用6段线段,包括x,y的正负方向和由相交矢量的位置和方向定义的z轴正负方向。线段长度分别由相对于x,y,z轴线段的3个属性VGIS-_BUMP_P_LENGTH和VGIS_BUMP_HEIGHT控制。通常情况下,该方法比
3、其它方法代价更高,但是却更为灵活适用。这是因为在该方法中有6段线段而不是3段线段,其线段不仅有长度,还有方向。但缺点是在碰撞实体选择时,往往不知道视线应与哪一个多边形求交,如果每次都要对整个场景中所有表面多边形全部都遍历一遍,势必产生巨大运算量,造成无谓的浪费。因此,在实现基于视线的碰撞检测算法时,可以考虑借助包围盒来简化碰撞的模型,以提高碰撞检测的效率。 (2)包围球 包围球被定义为包含该对象的最小的球体,计算给定对象E的包围球,首先需分别确定被包围几何对象中各个顶点的x,y,z坐标均值以确定包围球的球心c,再由球心与三个最大值坐
4、标所确定的点间的距离计算半径r,包围球的计算时间略多于AABB,但存储一个包围球只需两个浮点数。 包围球的紧密性在所有包围盒中是比较差的,它除了对在三个坐标轴上分布得比较均匀的几何体外,几乎都会留下很大的空隙。但包围球有一个比较优秀的特性,就是对于旋转运动来说,包围球不需要做任何更新,因而当对象进行频繁的旋转运动时,采用包围球可能的到较好的结果。 3包围盒的改进 前面提到的几种现在比较常用的碰撞检测方法都各有其有缺点。比如:包围球的紧密性较差,但是它的相交测试十分简单;与之相反,方向包围盒紧密性较好,可是相交测试相对困难。 本系
5、统是一个基于视点的漫游系统,因此,对碰撞效果的真实感要求相对要高一点,而影响碰撞检测精度的直接因素就是对相交检测对象所建立的包围盒的精度。因此本文选用的包围盒是一种简化的OBB。这种简化包围盒具有近似OBB的紧密度,同时,也为后面的碰撞检测提供了一种相对简单的检测模型。具体简化过程如下: (1)降维 由于建模的场景是校园,所以大多数的楼体的基面都是与地面平行的,这就为OBB中最佳方向的计算提供了一个约束条件。即最佳方向只可能是与地面水平或垂直的。这样一来,就可以把三维的OBB计算简化为(对建筑物的垂直投影的)二维计算。得到二维的最小
6、包围矩形后,对每条边进行垂直提拉就可以恢复到三维的包围盒了。 (2)收缩 由于本系统所选用的漫游模式是步行,碰撞检测的高度不会超过3米,因此在建立包围盒时没必要把高过3米的物体或物体的某一部分包含在内。例如:像房屋的屋檐、大树的树冠这类物体一般都是只对其下部的楼体、树干建立包围盒即可。这样做的优点是: ?誗减少了包围盒的数量; ?誗缩小包围盒的范围; ?誗提高包围盒的紧密度。 (3)选建 对于像马路沿、台阶这种有一定高度的实体不建立包围盒。因为这类物体虽然也有碰撞,但它们是可以跨域的,碰撞瞬间的现象主要表现为漫游者视点高度
7、的增加或减少,而不像楼房那样碰撞后无法前进,所以只要是高度小于跨越高度(zoffset)物体,都不对其建立包围盒,而是通过修改其视点高度来实现其碰撞的效果。 4碰撞检测优化方法 对于范围较大的场景,且场景中景物繁多的情况,在漫游:虚拟环境下的碰撞检测问题是当今计算机图形学研究的热点之一。针对复杂场景实时漫游过程中的碰撞检测本文提出了一种将分割过滤法与包围盒技术相融合的碰撞检测方法,在Vega平台下,应用本算法成功实现了桌面级非沉浸式虚拟漫游系统,在检测精度和检测速度上都取得了满意的效果。 关键词:分割过滤实时漫游 引言 在虚拟
8、环境中,为了模拟真实世界,让用户获得高度的沉浸感,就必须为用户提供具有关键交互作用的虚拟环境。虚拟现实系统一个最重要功能,就是能快速进行虚拟世界中物体间的碰撞检测。精确的碰撞检测对提高虚拟环境的真实性、增强
此文档下载收益归作者所有