21

優れた 3D メッシュ ライブラリを探しています

  • 一般的な形式 (OFF、OBJ...) を読み取ることができる必要があります。
  • ハーフエッジ構造と三角スープの両方をサポートする必要があります
  • 障害や不正なメッシュに対して寛容であるべきです。
  • 基本的な幾何学的操作 - 交点、法線計算など'
  • 最も重要なこと - 無限のテンプレートと継承階層で複雑にならないようにしてください。

CGAL と OpenMesh の両方を試しましたが、どちらも最後のポイントで惨めに失敗しました。

具体的には、最も高度なコード分析ツールを使用しても追跡できない CGAL です。

これまでのところ、私は自分自身を引っ張ることを真剣に考えています。

私の好みは C++ ですが、他のオプションも受け入れます。

4

3 に答える 3

13

最後のポイントが要件である理由をお尋ねしてもよろしいですか?

公開用に作成されたライブラリは、可能な限り幅広いユーザーが使用できるように、可能な限り汎用的になるように設計されています。C++ では、多くの場合、これはテンプレートを使用して行うのが最適です。良いライブラリが見つかったとしても、double の代わりに float を使用しているため、目的には役に立たないことがわかります。

たとえば、CGAL は、一般的で拡張可能な C++ ライブラリを作成するという、よく知られており、十分にテストされた STL パラダイムを採用しているようです。これは確かに、コード分析ツールで追跡することを困難にします。STLヘッダーをたどるのも得意だとは思いません。

しかし、ライブラリを使用しようとしていますか、それとも変更しようとしていますか? いずれにせよ、非常に高品質のドキュメント (例: Kernel Manual ) があるようです。これにより、コードを読まなくても、何をする必要があるかを比較的簡単に理解できるはずです。

免責事項:これがあなたが求めているものではないことはわかっています. しかし、あなたが探しているものは存在しないと思います。私が CGAL をスキャンして見たものと同じくらい優れたドキュメントを備えたオープン ソース コードを見つけることは非常にまれです。もう一度ご覧になることを強くお勧めします。

于 2008-09-17T00:51:08.563 に答える
2

まず、要件に関するいくつかの一般的なコメント:

  • OBJ または OFF ファイルの読み取りは非常に簡単です。より幾何学的な機能を提供するライブラリの上に、数分で自分で実装できます。一方、そのようなライブラリの幾何学的部分は非常に扱いにくいため、幾何学的アルゴリズムを実際に扱う要件に焦点を当て、ニーズに合ったものを見つけようとする必要があります。もちろん、同点の場合は、このインターフェイスの問題を検討してください。
  • 幾何学的操作に関しては、交差を求めます。プリミティブ交差点のことですか?(優れた単純なアルゴリズムを見つけて実装できる)または2つのメッシュの交点の計算?または衝突検出?(これはデリケートな質問で、簡単な答えはありません)
  • より高いレベルの観点から、構築したいツールの種類についてより具体的に説明すれば、人々は適切なツールにあなたを導くことができます。あなたの要件は低レベルです。

あなたの質問を理解する限り、あなたは CGAL や OpenMesh のようなライブラリのポイントを明確に理解していないように思えます。このようなライブラリは、必要なすべての高レベル ツールを提供するわけではありませんが、(特に CGAL の場合) ジオメトリ アプリケーションを構築できるすべてのジオメトリ フレームワークを提供することを目的としています。このような幾何学的フレームワークは、特に計算幾何学に固有の堅牢性の問題のために、設計が非常にデリケートです。そして、そのようなフレームワークがなければ、堅牢なアプリケーションを構築するのは大変な作業です。

ニーズに合ったライブラリが見つからない場合は、開発の基盤となるフレームワークとして CGAL などのライブラリを使用することを真剣に検討する必要があります。これにより、基盤となるフレームワークの変更が苦痛になる開発プロセスの後期になって初めて気付く、堅牢性に関連する問題の発生を防ぐことができます。余談ですが、CGAL には広範なドキュメントがあり、非常に活発なユーザーのメーリング リストがあります。

ジオメトリ ソフトウェアのロバスト性の問題についてご存じない場合は、このページをご覧ください: ロバスト性の問題

于 2008-09-18T00:24:19.807 に答える
0

それがあなたにとって役立つかどうかはわかりません。Mangrove TDS ライブラリと呼ばれる別のライブラリもあり、http://mangrovetds.sourceforge.netで自由に入手できます。これは、任意のタイプの形状 (2d、3d、任意の次元) を任意のドメイン (多様体、非多様体) でサポートします。 、疑似多様体、iqm 複体、単体複体など)。それはおそらく非規則的な形状をサポートします。つまり、異なる次元の断片によって形成されます。

その主な特性は、あらゆるトポロジ データ構造がサポートされているという意味で、拡張可能であることです。これは、実行時に変更およびロードできるプラグインです。

その実装は、反復子をサポートするデータ構造にエンコードされたエンティティの配列ベースのインデックス付けに基づいています。また、動的プロパティもサポートしています。

最後に、データ構造に直接エンコードされていないエンティティ (ゴースト エンティティ) の暗黙的な表現をサポートし、トポロジ クエリの効率を向上させます。

于 2012-06-13T18:28:30.740 に答える