【问题标题】:Is btSphereShape cheaper for calculations than btBoxShape?btSphereShape 的计算成本是否比 btBoxShape 便宜?
【发布时间】:2017-05-02 08:11:52
【问题描述】:

一直认为球体是最便宜的碰撞基元,但看起来 Bullet 为球体创建了一个凸体,不是吗?那么 btSphereShape 在碰撞计算方面实际上比 btBoxShape 便宜还是更贵?

【问题讨论】:

  • 是什么让你认为“Bullet 为球体创建了一个凸体”?
  • 继承自 btConvexInternalShape。不过我并没有确定

标签: bulletphysics bullet


【解决方案1】:

这不是一个完整的答案。 (一个完整的应该做一个配置文件测试。)

来自the official wiki,他们在性能上并没有太大的不同
(两种形状都归入同一层 - Primitives):-

使用凸碰撞形状,例如凸包和基元,例如 作为一个球体,盒子和圆柱体使碰撞算法更多 简单高效。

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

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

回答每个小问题

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

是的,但类层次结构不是原因。
spherebox 都继承自 btConvexInternalShape
球体很容易计算。

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

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

一般指南

在实践中,您应该选择符合您需要的那个。 (除了你的应用程序真的是物理密集型的)

  • 在我浏览论坛很长时间时,没有人提到/抱怨 BoxSphere 的性能差异。

  • 这两个我也都用了几年了,在实践中看不出区别。

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-11-21
    • 1970-01-01
    • 2017-10-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-05-27
    相关资源
    最近更新 更多