专题栏目:ARVRMR虚拟现实

运动建模技术 | 运动建模技术是什么意思?

定义:几何建模只是反映了虚拟对象的静态特性,而VR中还要表现虚拟对象在虚拟世界中的动态特性,而有关对象位置变化、旋转、碰撞、伸缩、手抓握、表面变形等方面的属性就属于运动建模问题。

1.对象位置

对象位置通常涉及对象的移动、伸缩和旋转。因此往往需要用各种坐标系来反映三维场景中对象之间的相互位置关系。例如假设我们开着一辆汽车围绕树驾驶,从汽车内看该树,该树的视景就与汽车的运动模型非常相关,生成该树视景的计算机就应不断地对该树进行移动、旋转和缩放。

2.碰撞检测

在虚拟世界中,必须对用户和虚拟对象的移动加以限制,否则就会出现两个对象自由穿透的奇异情景。因此,碰撞检测技术也是VR系统中不可缺少的关键技术之一。有了碰撞检测,在虚拟环境中进行漫游时,才可避免诸如观察者穿墙而过、3D游戏中被距离很远的子弹击倒等现实中不真实情况的发生。

碰撞检测技术不仅要能检测是否有碰撞的发生、碰撞发生的位置,还要计算出碰撞发生后的反应。由于碰撞检测需要具有较高的实时性和精确性,如必须在很短的时间(如30~50ms)内完成,其技术难度很高。目前较成熟的碰撞检测算法有层次包围盒法和空间分解法等。

1)层次包围盒法

利用体积略大而形状简单的包围盒把复杂的几何对象包裹起来,在进行碰撞检测时,首先进行包围盒之间的相交测试,若包围盒不相交,则排除碰撞可能性;若相交,则接着进行几何对象之间精确的碰撞检测。显然,包围盒法可快速排除不相交的对象,减少大量不必要的相交测试,从而提高碰撞检测的效率。常用的包围盒箱不仅仅是矩形,还可以是圆球圆柱等。边界箱的选择和需要碰撞检测的虚拟对象有关,尽量做到算法简单,检测精度较高。层次包围盒法应用较为广泛,适用于复杂环境中的碰撞检测。

2)空间分解法

空间分解法是将整个虚拟空间分解为体积相等的小单元格,所有对象都被分配在一个或多个单元格之中,系统只对占据同一单元格或相邻单元格的对象进行相交测试。这样,对象间的碰撞检测问题就被转化为包含该对象的单元格之间的碰撞检测。当对象较少且均匀分布于空间时,这种方法效率较高;当对象较多且距离很近时,由于需要进行单元格更深的递归分割,这样需要更多的空间存储单元格,并需要进行更多的单元格相交测试,从而降低了效率。因此,空间分解法适用于稀疏环境中分布比较均匀的几何对象间的碰撞检测。

发表评论

相关文章