021-24209369
碰撞检测技术

碰撞检测是虚拟现实中另一个重要部分,它主要的作用是检测游戏中各种物体的物理边缘是否产生了碰撞。游戏的效果必须在一定程度上符合客观世界的物体规律,如地心引力、加速度、摩擦力、惯性和碰撞测试等。基于物理的真实效果不需要完全遵循真实的物理规律。碰撞检测是虚拟现实中不可回避的问题之一,只要场景中的物体在移动,就必须判断是否与其他物体相接触。碰撞检测的基本任务是确定两个或多个物体彼此之间是否有接触或穿透,并给出相交部分的信息。碰撞检测之所以重要,是因为现实世界中,两个或多个物体不可能同时占用同一空间区域。如果物体之间发生了穿透,用户会感觉不真实,从而影响游戏的沉浸度。由于碰撞检测的基本问题是物体的求交,直观的算法是两两检测场景物体之间的位置关系。对于复杂的三维场景,显然复杂度为检测算法无法满足游戏实时性的要求。设计高效的碰撞检测算法是编程的难点。目前多数基于物体空间的碰撞检测算法的效率与场景中的物体的复杂度成反比关系。尽管相关碰撞检测的成果已经比较丰富,对于大规模的复杂场景的碰撞检测算法一直以来都是游戏编程的难点问题。特别是随着三维游戏、虚拟现实等技术的快速发展,三维几何模型越来越复杂,虚拟环境的场景规模越来越大;同时人们对交互实时性、场景真实性的要求也越来越高。严格的实时性和真实性要求在向研究者们提出巨大挑战,这使实时碰撞检测再度成为研究热点。

碰撞检测作为虚拟现实系统中的一个关键组成部分,主要的任务是判断输入的物体模型之间和模型与场景之间是否发生了碰撞,以及给出碰撞位置等信息。接着需要做出所对应的碰撞反应。在大多数系统里输入的物体和场景都是由三角面片构成的模型。检测两个物体是否相交我们通常能联想到的就是基于空间的求交的方法。

碰撞测试算法在处理包含大量物体的复杂场景时,或者首先将多数明显不相交的物体对进行快速排除,然后再对可能相交的物体对进行进一步检测,或者采用场景空间剖分来快速确定可能存在物体相交的区域,然后在这些潜在的相交区域中进行下一步操作。这个过程称为碰撞检测算法的初步检测阶段。而对于初步检测阶段的后继阶段,则称之为碰撞检测算法的详细检测阶段。算法在详细检测阶段的步骤,可将其划分为两个层次,一是逐步求精层;二为精确求交层。在逐步求精层中算法进行层次树的遍历或者逐步细分潜在的相交区域。而精确求交层中算法主要处理多边形面片或基本体素之间的精确相交检测。其中初步检测阶段所采用的技术主要有两种:一种是空间剖分法,空间剖分法将场景均匀剖分成一个个小方块区间,检查这些小方块内是否有物体存在,否则将不包括物体的区间剔除,从而快速判断出潜在的相交区域;另一种是基于插入排序的“掠扫和剪裁”法。掠扫和剪裁法是将场景中所有物体的AABB包围盒分别投影到x,y,z三个坐标轴上,并对每个物体在各坐标轴投影区间的边界值进行排序。两个物体包围盒在所有坐标轴的投影区间均有重叠时表面这两物体的包围盒相交。在逐步求精层中通常采用空间层次剖分技术和包围体树技术,通过遍历物体的层次包围体树可以得到精确求交对象。在精确求交层的方法依赖于物体所采用的表示方法。在这一层中,碰撞检测算法主要计算多边形面片之间或基本体素之间的精确相交检测。

 

注:本文出自《多媒体应用设计师教程》,清华大学出版社出版,李振华主编。我在这里分享是因为它深深触动了我,并希望更多人能够受益于它的智慧和启发。请尊重原创者的知识产权并前往原文阅读完整内容。

 


300px
“JSUTO/加速通”的使命就是为人和智能设备之间搭建一道便捷沟通的桥梁。 The mission of JSUTO is to build a bridge of convenient communication between people and intelligent devices.
上海峻迹智能科技有限公司
联系我们

电话:021-24209369

传真:021-24209368

公司地址:上海市闵行区纪翟路1199弄3号2楼

关于我们

公司简介                              产品中心

关于我们                              联系我们

案例展示                              友情链接

人才招聘                           www.jsuto.cn

扫一扫加入我们吧
Copyright © 上海峻迹智能科技有限公司细心于我们的服务,专心于我们的专业
点击进入JSUTO VMS
您是第 42402 位访客!