论文部分内容阅读
智能机器人体验平台是一个对实时性要求非常高的网络互动平台。这个平台上的各种虚拟现实系统都需要解决三维碰撞检测问题。智能机器人体验平台上的搭搭看(DDK)系统是一个利用积木搭建来启发和训练用户创造性思维的三维仿真平台,要实现网络互动并允许用户无限量或者超大数量的使用积木来实现自己的作品,关键之一就是要解决其实时的三维碰撞检测问题。
本文在广泛了解国内外各种三维碰撞检测技术的发展现状,并仔细分析了DDK平台上三维碰撞检测的实际需求之后,通过层层筛选,选用适于多物体场景的两级碰撞检测系统和基于混合类型包围盒的碰撞检测算法。首先,在第一级碰撞检测阶段,本文采用了包围球和AABB,对碰撞检测系统的场景进行了双层裁减,这种方法快速有效地减少了进入第二级碰撞检测阶段的物体数量,减轻了碰撞检测系统进行精确计算的负担。其次,在碰撞检测的第二阶段,本文采用了基于包围盒的方法进行物体间的精确相交检测。与普通的混合型包围盒算法不同的是,本文并没有对场景中的每个物体构建包围盒树,而是采用以尽量少的包围盒替代物体形体来做碰撞检测的方法。并且,采用OBB与球形包围盒来进行物体间的精确相交检测,不仅更加贴切地逼近了平台上各种物体的形体,在保证碰撞检测精确度的同时,相对较大程度地降低了每个物体碰撞模型的复杂度,而且采用这种简化了的单层包围盒树之后,就无需再忧虑因刚体运动而引起的层次树的更新和重建这些对实时性有严重影响的操作,使得系统具有更加稳定的检测效率。
在确定了基本方案之后,本文进一步对方案中的各个流程和步骤所需的算法进行了选择和研究,包括预处理阶段三维数据的获取方法、各类包围盒的创建方法、各种相交检测算法以及物体做刚体运动后各种包围盒的更新计算方法等。最后针对平台的软件环境设计了完整的三维碰撞检测程序,实现了满足智能机器人体验平台要求的三维碰撞检测系统,并给出了实验的效果展示和性能对比,验证了方案的可行性和有效性。