虚拟现实中包围盒碰撞检测算法优化研究

虚拟现实中包围盒碰撞检测算法优化研究陈秋菊摘要:碰撞检测的实现是虚拟现实技术中的关键环节,其主要任务就是使得多个物体在发生接触时避免发生穿透现象,能够实现实时的、精确度高的连续碰撞检测对于增强虚拟现实场景的沉浸感和真实感是十分重要的。文章以三维虚拟校园漫游系统的开发为例,针对各种包围盒碰撞检测技术的缺陷,分析描述了基于包围球和有向包围盒的混合层次包围盒碰撞检测算法的优点和构建方法。最后将该算法在VC和Unity3d开发引擎中进行测试,得到了较好的效果。关键词:虚拟现实技术;包围盒;碰撞检测;Unity3d中图分类:TP3:A:1009-3044(2018)19-0236-03虚拟现实技术是一种集合了计算机图形学,多媒体技术等多种技术为一体的综合性技术,其目的是模拟现实中的场景[1]。为保证环境的真实感,场景中的物体就必须具有相应的物理属性,这就要求用户在进行各种操作时,身体不会穿透物体,并且能够真实感觉到碰撞的发生,所以碰撞检测技术在VR技术中就有了相当重要的地位[2]。碰撞检测技术不断发展,一些经典的碰撞检测算法应用亦十分广泛,包括经典的轴向包围盒法AABB(AlignedAxisBoundingBox)、包围球法(Spheres)、有向包围盒法OBB(OrientedBoundingBox)等,这些方法适用于不同几何特征的物体,所以检测的简洁性不是十分理想。故而,一些学者提出了混合包围盒算法,形成了类似OBB-Spheres的算法。本文从虚拟校园漫游系统的开发要求出发,针对系统的真实感,交互性问题,研究了碰撞检测技术在Unity开发引擎中的应用方法与优化方案。1碰撞检测基本原理虚拟校园漫游系统的构件运用了碰撞检测技术、实时渲染技术、环境建模技术等技术手段完成了系统的开发。其中碰撞检测技术保证了整个系统的真实感,同时构成了用户体验的基础,赋予了用户在虚拟场景中的沉浸感。碰撞检测技术就是在场景当中的物体上增加碰撞体,增加真实感,防止出现人物穿墙而过,人物的一部分和场景中的物体重合等显然与现实生活中的逻辑不相符的现象[3]。其基本原理可定义如下:在一个具有[n]个物体的虚拟三维空间中,其三维几何坐标系统加上时间变量构成一个四维坐标系统,表示为[Cw],第[i]个物体运动形成的轨迹就构成了一个[Cw]的子集,标记为[Ci]([1≤i≤n])。碰撞检测就是判断第[i1]个物体是否与第[i2]个物体相交,也就是判断[Ci1?Ci2]是否为空。对于物体碰撞的检测,Unity提供了一个很好的测试平台,在该平台下可以建立两个虚拟几何体,给它们赋予碰撞器,然后检测它们之间的碰撞效果。2基于包围球和有向包围盒的混合层次包围盒2.1包围盒技术包围盒技术有很多类型,一些经典方法主要有包围球(Spheres)、轴向包围盒法AABB、有向包围盒法OBB等。这里主要介绍包围球与有向包围盒的基本原理。1)包围球(Spheres)是一种构造起来相对比较简单但紧密型却较差的包围盒。作为一个几何物体的外接球体,对于凹面较多的物体来说,就会产生过多的冗余空间,从而碰撞时会产生没有碰到物体而碰到了包围球的现象。为了便于说明其构建过程,这里假设几何物体为E,用SE表示该物体中所有最基本的几何元素(如三角形、圆)的集合。包围球的计算方式相比其它包围盒较为简单:集合SE中的所有元素的三个坐标值(三角形为角平分线交点坐标值,圆为圆心坐标值)的平均值就是包围球的球心,记为c(x,y,z)。然后对球心到物体E中每个基本几何元素距离进行比较,得出的最大值就是包围球的半径,记为R。由此可以看出,记录一个包围球所需的参数相对其他包围盒要少很多,得到一个球体只需要给出其球心的坐标和半径。包围球之间的相交测试方法也相对比较简单,只需将两个球体的圆心距离和它们的半径之和进行比较即可,其具体方法如下:设两个包围球的球心和半径分别为:s1(x1,y1,z1)、R1和s2(x2,y2,z2)、R2。若[s1-s22≤R1+R2],则两个包围球相交,否则两包围球不相交。此不等式的详细表述为:由于球体无论朝哪个方向旋转,表述其属性的参数都不会发生变化,因此无论被包围的几何物体如何进行旋转,它都不会跑出包围球外,所以对于一个固定形状的物体来说,当其发生运动时,包围球无须对半径进行...

1、当您付费下载文档后,您只拥有了使用权限,并不意味着购买了版权,文档只能用于自身使用,不得用于其他商业用途(如 [转卖]进行直接盈利或[编辑后售卖]进行间接盈利)。
2、本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供参考,付费前请自行鉴别。
3、如文档内容存在侵犯商业秘密、侵犯著作权等,请点击“举报”。

常见问题具体如下:

1、问:已经付过费的文档可以多次下载吗?

      答:可以。登陆您已经付过费的账号,付过费的文档可以免费进行多次下载。

2、问:已经付过费的文档不知下载到什么地方去了?

     答:电脑端-浏览器下载列表里可以找到;手机端-文件管理或下载里可以找到。

            如以上两种方式都没有找到,请提供您的交易单号或截图及接收文档的邮箱等有效信息,发送到客服邮箱,客服经核实后,会将您已经付过费的文档即时发到您邮箱。

注:微信交易号是以“420000”开头的28位数字;

       支付宝交易号是以“2024XXXX”交易日期开头的28位数字。

客服邮箱:

biganzikefu@outlook.com

所有的文档都被视为“模板”,用于写作参考,下载前须认真查看,确认无误后再购买;

文档大部份都是可以预览的,笔杆子文库无法对文档的真实性、完整性、准确性以及专业性等问题提供审核和保证,请慎重购买;

文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为依据;

如果您还有什么不清楚的或需要我们协助,可以联系客服邮箱:

biganzikefu@outlook.com

常见问题具体如下:

1、问:已经付过费的文档可以多次下载吗?

      答:可以。登陆您已经付过费的账号,付过费的文档可以免费进行多次下载。

2、问:已经付过费的文档不知下载到什么地方去了?

     答:电脑端-浏览器下载列表里可以找到;手机端-文件管理或下载里可以找到。

            如以上两种方式都没有找到,请提供您的交易单号或截图及接收文档的邮箱等有效信息,发送到客服邮箱,客服经核实后,会将您已经付过费的文档即时发到您邮箱。

注:微信交易号是以“420000”开头的28位数字;

       支付宝交易号是以“2024XXXX”交易日期开头的28位数字。

笔杆子文秘
机构认证
内容提供者

为您提供优质文档,供您参考!

确认删除?