首先,嘿,感谢所有观察我的问题的人,
我正在构建一个3D物理引擎,我需要一个广泛的相位碰撞检测系统。我需要的世界是非常具体的,我比较了一些方法,我仍然不确定什么是最好的。
现在我想请你就这一主题提出一些意见。
世界的属性: - Verry large(双向量中的位置) - 少数对象(最多100个) - 物体有复杂的碰撞器(原始组件 - 平均10到50) - 对象通常成组聚集(平均2 - 10) - 物体不断移动 - 很少有静态物体
我有2个焦点选项(但对其他选项持开放态度): - 球体或轴对齐的箱形树 - 部门划分
具有二进制结构的球体树(每个节点最多2个对象)可能是最好的..
你最快的是什么? 如果不尝试每一种可能性,有什么方法可以说明吗?
我希望你有一些建议。
MrSunshine
答案 0 :(得分:0)
大多数物理引擎实现某种Dynamic AABB tree.
它们比球形树更复杂,但表现更好并产生更少的假阳性碰撞,特别是对于高速物体。
它们还允许在您的案例中轻松隔离不同的对象簇,并通过在特定高度切割树来独立模拟它们。
您的复杂碰撞形状也可能有自己的AABB树,以加速最终凸对碰撞对检测,然后可以将其整合到全局AABB树中。