2016-10-23 11 views
0

実際に、私は現在、手術現場の2つの特定のオブジェクト間の衝突を検出する簡単なプロジェクトに取り組んでいます。問題は私がそのような問題の背景を持っていないので、私はそのようなことに本当に初心者であり、私は何をすべきかまだ分かりません。少しの研究の後で、私は衝突検出ツールとして使用することができるが、それが私の場合に合っているかどうかまだわからないBulletライブラリを見つけました。私はすでに開発者が手動で関心のあるオブジェクトを作成するいくつかの例を確認しました。これにより、最初に関心のあるオブジェクトを検出して衝突検出プロセスを起動する必要があると思うようになりました。衝突検出のための弾丸

  1. ビデオ3D

で部屋を表す

  • クラウドポイントは、私は2つの間の衝突を検出する必要がある手術室を撮影:私の場合は

    、私は、データの2種類がありますシーン内のオブジェクト。そのようなことを達成するためにBulletを使用する方法はありますか?検出衝突の問題の入力としてビデオを使用するのは一般的ですか(私はあまりにも多くのリソースを見つけることができるので不思議です)?

    私はちょうどそれがあいまいな質問かもしれないので、どのような不便でも事前に申し訳ありません。

    EDITED

    私はすでにそれをチェックしますが、私のポイントは、オプションは詳細を掘り下げる前に、使用することができますかを理解することでした。私にとっては、衝突検出の問題は、2つの部分、すなわち、対象のオブジェクト(衝突を検出しようとしている2つ以上のオブジェクト)と対象のオブジェクトの衝突を検出しようとするシーン。シーンには、私が持っているデータが上記の2つのタイプで提示されます。そこで、弾丸の衝突プロセスの入力としてどのタイプのデータを使用するかを尋ねていました。ビデオから撮影した画像か、それとも3Dポイントのリストでなければならないのでしょうか?または、他の何か?

  • 答えて

    0

    私は半年前にブレットを使用しました。私は、CollisionシェイプでBulletにオブジェクトを登録する必要があることを覚えています。あなたのポイントの単純化されたケースでは、おそらく小さな球体である可能性があります。あなたのビデオの場合は、3D表現が必要です。私は衝突のための "ビデオ"を検出することによってあなたが意味することを100%理解していません。ただし、Bulletを使用するには、オブジェクトに関連付けられた衝突シェイプが必要です。

    さらに、コリジョンコールバックを登録します。これは、検出された各衝突に対して呼び出される1つの関数です。すべてのコールバックは以下にリストアップされています:http://www.bulletphysics.org/mediawiki-1.5.8/index.php?title=Collision_Callbacks_and_Triggers wikiは特定の衝突を検出するためにこの方法で実装していると言いますから、Bulletの全マニフェストを手動で繰り返し処理する必要があります。少し痛いとパフォーマンス賢明な奇妙なアプローチ。したがって、特定のオブジェクトの特定のコールバックを別の特定のオブジェクトに登録することはできません!

    オブジェクトが登録されたら、アルゴリズムを実行して、コールバック内のすべての多様体をチェックすることができます。

    Bulletを使い始めるにあたっては、当時の回答でBullet Physics Simplest Collision Exampleを使用しました。

    +0

    ありがとう@Neevo Lima。私は、2つの特定のオブジェクトの間に衝突があるかどうかを知る必要があるシーンを撮影したビデオを持っています。したがって、衝突の「ビデオ」を検出することに関連するものは何もありません。いくつかのことを明確にするために私を助けてもらえますか?私が適切にそれを得たなら、私は関心のあるオブジェクトの3D表現を持っていて、次にこれらの表現を使って衝突プロセスを起動しようとします。衝突プロセスの入力とは何でしょうか?私のビデオは?使用すべきアルゴリズムに関する推奨事項はありますか? BVHのようなもの? – Maystro

    +0

    こんにちは@Maystro、私はあなたがシーンを撮影しているビデオを持っていることを意味するものはまだわかりません。 あなたが言ったように、オブジェクトの3D表現が必要です。私はBulletにあなたが衝突をチェックする必要があるポイントの2つのオブジェクトを追加し始めます。私はポイントの球をお勧めします。ポイントクラスは、[btCollisionObject](http://bulletphysics.org/Bullet/BulletFull/classbtCollisionObject.html)クラスから継承する必要があります。私は私の答えの例のリンクを見てみることをお勧めします。最小限の例が含まれています。 そして私はBulletがGJKを実行していると思います。しかし、私はそれを自分で設定していませんでした。 –

    +0

    EDITED質問 – Maystro