从一开始,碰撞检测看起来就像是一个O(n^2)问题。
你有一堆对象,需要检查每个对象是否与其他对象发生碰撞。然而,我知道对每个对象进行所有其他对象的相对位置检查非常低效。如果两个球根本不接近,为什么要执行一个相对昂贵的碰撞检查呢?
这是我正在开发的简单程序的示例:
如果你有1000个球,那么如果使用朴素的碰撞检测,你将需要进行1000^2次集合检查(100万次)!这种碰撞检测很快成为我的应用程序的瓶颈。我需要实现一些广域剪枝技术。
在处理二维圆形对象时,应使用什么技术来剪枝碰撞检查?我已经阅读了关于QuadTrees、BSP、空间哈希等技术,但很难弄清楚哪种方法最适合这种情况。
有人知道什么方法能够最好地解决这个问题吗?