检测碰撞检测的子弹

时间:2016-10-23 22:10:49

标签: c++ collision-detection bulletphysics bullet

实际上,我目前正在开展一个简单的项目来检测手术场景中2个特定物体之间的碰撞。问题是我没有这些问题的背景,所以我对这些事情真的是新手,我不知道该怎么做。经过一些研究,我找到了Bullet库,它可以用作碰撞检测工具但不确定它是否适合我的情况。我已经检查了开发人员手动创建感兴趣对象的一些示例,这使我认为我应首先检测感兴趣的对象,然后启动碰撞检测过程。

就我而言,我有两种类型的数据:

  1. 视频拍摄手术室
  2. 以3D形式表示房间的云点
  3. 我需要检测场景中两个对象之间的碰撞。有没有办法使用Bullet来实现这样的事情?使用视频作为检测碰撞问题的输入是很常见的(我想知道,因为我可以找到太多的资源)?

    我刚刚开始,所以这可能是一个模糊的问题,如有任何不便,请提前抱歉。

    EDITED

    我已经检查了它,但我的观点是要了解在深入研究细节之前可以使用哪些选项。对我来说,碰撞检测问题应该包含两个部分:感兴趣的物体(我们试图检测其碰撞的2个或更多物体)以及我们将试图检测物体碰撞的场景出于兴趣。对于场景,我所拥有的数据以上述两种类型呈现。所以,我问的是哪种类型的数据应该用作子弹冲突过程的输入。它应该是从视频中拍摄的图像还是应该是3D点列表?或者是其他东西?

1 个答案:

答案 0 :(得分:0)

我半年前曾使用过子弹。我记得,您需要将对象注册到具有碰撞形状的Bullet。在你的观点的简单情况下,它可能是小球体。如果您的视频,您需要有一个3d表示。通过检测"视频"我不明白你的意思100%对于碰撞。但是,要使用Bullet,您需要具有与对象关联的碰撞形状。

此外,您注册了碰撞回调。这是检测到每个碰撞时调用的一个函数。此处列出了所有回调:http://www.bulletphysics.org/mediawiki-1.5.8/index.php?title=Collision_Callbacks_and_Triggers 正如维基所说 - 我用这种方式实现 - 来检测特定的碰撞,你需要手动迭代来自子弹的所有结果歧管。有点痛苦和表现明智的奇怪方法。因此,您无法使用其他特定对象注册特定对象的特定回调!

注册对象后,运行算法,然后检查回调中的所有流形。

要开始使用Bullet,我当时使用了Bullet Physics Simplest Collision Example和答案。