【发布时间】:2010-09-29 16:43:48
【问题描述】:
从一开始,碰撞检测就好像是一个 O(n^2) 问题。
你有一堆物体,你需要检查每个物体是否与其他物体发生碰撞。但是,我知道将每个对象与所有其他对象进行检查是非常低效的。如果两个球甚至不靠近,为什么还要在两个球之间进行相对昂贵的碰撞检查?
这是我正在处理的简单程序的示例:
如果您有 1000 个球,那么如果您使用简单的碰撞检测,您将有 1000^2 次收集检查(一百万)!这种碰撞检查很快成为我的应用程序的瓶颈。我需要实施一些广泛的阶段修剪。
在处理二维圆形物体时,应该使用哪些技术来修剪碰撞检查?我读过关于 QuadTrees、BSP、空间散列等的信息,但很难找出最适合这个用例的方法。
有人知道什么是最有效的吗?
【问题讨论】:
标签: data-structures collision-detection spatial broad-phase