摘要: |
碰撞检测问题在虚拟现实、视景仿真等领域一直是研究的焦点之一。精确的碰撞检测对提高虚拟环境的真实性,增强虚拟环境的沉浸感有着至关重要的作用,而虚拟环境自身的复杂性和实时性又对碰撞检测提出了更高的要求。
本文依托成都市科技攻关计划项目“面向交通安全的客运车辆驾驶仿真培训系统的研发”,进行了以下几方面的研究:第一,研究了目前应用比较广泛的各类碰撞检测算法,分析了其中的典型算法:空间剖分法和层次包围盒方法,并总结了各自的优劣及适用条件。第二,分析了开放式场景图形(Open SceneGraph,简称OSG)、开放式动态仿真引擎(Open Dynamic Engine,简称ODE)的主要框架,重点研究了提取OSG模型数据构造相应ODE碰撞几何体的问题,总结出了二者结合使用的方法。第三,针对微观交通仿真环境中三维场景的精细度高、场景复杂、动态对象多,包含的几何对象数量庞大等特点,本文采用了场景渲染和碰撞检测分开的机制,对于场景模型的管理及渲染,用OSG来实现,对于场景模型间的碰撞检测则构建对应的ODE碰撞几何体对象,然后利用ODE中的碰撞检测引擎实现物体间的碰撞检测及其简单响应。这样的分工合作的结果是场景运行流畅、碰撞检测精确,并且实现了基本的碰撞响应。
运行结果表明,本文提出的碰撞检测方法能提高了复杂对象之间的碰撞检测的精度,同时碰撞检测速度也达到了系统要求。因为方法的实现坚持以开放源代码的开发包为基础,大大降低了软件成本,有利于推广。另外本文提出的OSG和ODE结合建立物理学模型并实现碰撞检测的方法不仅适用于驾驶仿真培训系统的开发,同样适用于机器人仿真、虚拟战场等军事仿真系统开发。 |