btSphereShape的计算比btBoxShape便宜吗?

时间:2017-05-02 08:11:53

标签: bulletphysics bullet

总是认为球体是最便宜的碰撞原型,但它看起来像子弹为球体创造了一个凸体,不是吗?那么btSphereShape实际上比btBoxShape更便宜进行碰撞计算还是更昂贵?

1 个答案:

答案 0 :(得分:1)

这不是一个完整的答案。 (一个完整的应该进行轮廓测试。)

来自the official wiki,他们的表现并没有太大差异 (两个形状都分组到同一层 - 基元): -

  

使用凸形碰撞形状,例如凸包和基元等   作为一个球体,盒子和圆柱体使碰撞算法更加复杂   简单而有效。

在同一页面中,它暗示Sphere是最快的形状: -

  

btSphereShape:非常快速简单的形状    btBoxShape:       长方体形状,每个尺寸的长度可以任意选择。

对每个迷你问题的回应

  

OP: btSphereShape实际上更便宜......,(因为它是继承的)来自btConvexInternalShape。

是的,但班级不是原因 spherebox都继承自btConvexInternalShape 球体很容易计算。

  

OP: ...子弹为球体创建一个凸体...(所以)btSphereShape实际上更便宜

原始形状使用特殊的高度自定义算法,因此它比一般凸起便宜。有关证据,请参阅btSphereSphereCollisionAlgorithm(便宜)与btConvexConvexAlgorithm(昂贵)。

一般指南

在实践中,您应该选择符合您需要的那个。 (除了你的申请实际上是物理密集型的)

  • 当我浏览论坛很长时间时,没有人提及/抱怨 Box Sphere 的性能差异。

  • 我也使用了它们两年,并且在实践中没有看到任何区别。

您可能也对collision-shape algorithm(一个受欢迎的碰撞检测网站)感兴趣 我相信Bullet使用其中一种算法。