论文部分内容阅读
碰撞检测是计算机动画和物理仿真领域中不可或缺的环节,也是计算开销最高的环节之一。柔体的碰撞检测,特别是由数以万计的三角形构成的复杂柔体模型的碰撞检测,是目前计算机图形学的研究重点。尽管CPU的性能和GPU的性能相比于过去有了极大的增长,以交互式的速率处理大规模柔体的碰撞检测仍然是巨大的挑战。本文对大规模柔体的连续碰撞检测算法进行研究。我们使用一种两级碰撞检测算法,尽量减少基本测试的数量,以期以较快的速率实现精确的碰撞检测过程。在算法的高级阶段,我们建立了基于k-DOPs的包围盒层次树(BoundingVolume Hierarchies, BVHs),通过实验对比,选取了26-DOPs作为场景图元包围盒。通过为场景中的每个碰撞对象构建包围盒,并利用包围盒的相交测试,剔除了场景中明显不会相交的图元对。在算法的低级阶段,我们结合使用了代表性三角形和孤集两种方法,剔除冗余的基本测试对。在已有的两个阶段剔除算法的基础上,我们增加了过滤器层。首先使用了DNF过滤器,能够剔除一部分基本测试。然后,针对已有的NCF过滤器的缺陷,我们提出了改进方案,并将其集成到我们的算法中。此外,我们使用了一种新的过滤器——条件过滤器。它在DNF和NCF剔除之后生效,使得基本测试的图元对数量足够少。我们在桌面PC上实现了本文提出的算法,实验效果表明,相比于之前的算法,我们的方法有了明显的提升。