基于混合八叉树的动态对象碰撞检测算法

【摘要】 针对动态对象与静态场景碰撞检测计算中减少时间和空间消耗的问题,提出了静态八叉树与动态八叉树相混合的空间剖分算法。在初始化阶段,将静态场景剖分为深度较浅的静态八叉树空间结构;在碰撞检测初步阶段,找到与动态对象相交的静态八叉树叶子节点,并以之为根节点生成动态八叉树,如果动态对象发生移动但与之相交的静态八叉树叶子节点没有发生变化,不需要更新动态八叉树;随后,利用更深层的动态八叉树筛去更多的不碰撞面片。实验数据验证了该算法的可行性,采用4层静态八叉树与2层动态八叉树混合的空间结构,与传统6层静态八叉树相比,能灵活应用于动态对象的碰撞检测计算,初始化时间减少约93.81%,节点数量减少约95.05%,只有在需要更新动态八叉树的时候计算耗时稍高;与传统动态八叉树相比,所需更新的树层数更少,在相交的静态八叉树叶子节点不变的情况下省去了更新,速度更快。