【问题标题】:Box2d: Why not concave shapes?Box2d:为什么不凹形?
【发布时间】:2017-12-11 04:12:52
【问题描述】:

box2d 似乎不支持凹形,但我没有找到任何解释为什么不支持它们,以及您必须创建多个凸形才能获得所需的形状。只支持凹形,这样您只需要创建一个形状不是更容易吗?

那么聪明的人可以解释一下为什么box2d不支持凹形,比如技术部分等?拥有多个形状而不是一个形状不会占用更多内存吗?

这真的可以让世界对我更有意义!

【问题讨论】:

  • 在这个问题中添加 game-physics 标签是否合理且有用?我认为为什么不凹形的答案与性能有关,因为游戏物理标签可能会获得更广泛的曝光,以获得一些有经验的答案。

标签: box2d


【解决方案1】:

Box2D 由 Erin Catto 和 "Box2D is not open contribution" 编写/开发。因此,为什么 Box2D 不支持凹形的原因,我们不得不向他寻求答案。

幸运的是,Box2D 有一个包含该问题的网络论坛(从 2010 年开始,在其一般讨论部分):Why do shapes have to be convex?

Erin's first response is:

我认为这很好地解释了它: http://en.wikipedia.org/wiki/Separating_axis_theorem

有一些处理凹形的技术。它们通常需要大量内存和设置。例如,我看过一些使用有符号距离图的论文。但他们往往对细节非常轻描淡写。

在后面的讨论中,Erin adds 我认为这是一个有见地的宝石:

AFAIK 没有用于凹面窄相碰撞的高质量、高性能算法。就目前而言,关于如何计算凸形的接触点和法线的文章很少,更不用说凹形了。

这将我们引向一个相关的 StackOverflow 问题(从 2013 年开始):Algorithms for collision detection between concave polygons。迄今为止,该问题只有一个答案,并且引用了 2003 年的一篇论文。这似乎证实了 Erin 的立场和主张。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-07-13
    • 1970-01-01
    • 2023-03-11
    • 1970-01-01
    • 2011-01-28
    • 2019-05-16
    相关资源
    最近更新 更多