私をお勧めできますか...
- AABB ツリーの実証済みの軽量 C / C++ 実装ですか?
- または、代わりに、別の効率的なデータ構造に加えて、軽量の C / C++ 実装を使用して、多数の三角形と多数の光線が交差する問題を解決しますか?
「大きい数」とは、光線、三角形ともに数百万という意味です。
AABB ツリーが CGAL ライブラリの一部であり、おそらく Bullet のようなゲーム物理ライブラリの一部であることは承知しています。ただし、プロジェクトに膨大な追加ライブラリのオーバーヘッドは必要ありません。理想的には、小さな float 型のテンプレート化されたヘッダーのみの実装を使用したいと思います。また、プロジェクトに簡単に統合できる限り、CPP ファイルの束を使用することもできます。への依存boost
は問題ありません。
はい、グーグルで検索しましたが、成功しませんでした。
私のアプリケーション コンテキストはメッシュ処理であり、レンダリングではありません。簡単に言うと、参照メッシュのトポロジーを 3D スキャンからメッシュのジオメトリに変換しています。頂点から、参照メッシュの法線に沿って 3D スキャンに向かって光線を発射しています。これらの光線とスキャンとの交差を回復する必要があります。
編集
いくつかの回答/コメントは、最近傍データ構造を指していました。最近隣法を使用してレイ メッシュの交差にアプローチするときに発生する問題について、小さな図を作成しました。最近隣法は、多くの場合に機能するヒューリスティックとして使用できますが、AABB ツリーのように実際に問題を体系的に解決できるとは確信していません。