3Dポイントのセット用の最速のDelaunay三角形分割ライブラリ


26

3Dポイントの場合、何百万ものセットのドロネー三角形分割を実行するための最速のライブラリはどれですか?利用可能なGPUバージョンもありますか?反対側から、同じポイントのセットのボロノイテッセレーションがあると、(パフォーマンスの点で)ドロネー三角形分割を取得するのに役立ちますか?


CGALおよびTRIANGLEソフトウェアで実装を試しましたか?どちらにもアルゴリズムが含まれており、(理論的には)最も高速です(並列ではありませんが)。Onlogn
ポール

Jonathan Shewchukには、ストリームに余分なデータを追加できる場合、途方もなく大きなデータセットを処理できる2Dのストリーミングバージョンもあります。これを何に使用していますか?
ビクター

回答:


13

3次元のDelaunay三角形分割(実際には四面体化)を計算するために、TetGenは一般的に使用されるライブラリです。

便宜上、単位立方体からの多数のランダムポイントのテレヘドライゼーションを計算するのにかかる時間について、少しベンチマークを示します。100,000ポイントの場合、古いPentium Mでは4.5秒かかります。

Mathematicaグラフィックス

(これはMathematicaのTetGenインターフェースで行われました。どれほどのオーバーヘッドが生じるかわかりません。)

あなたの他の質問に関して:ボロノイ分割が既にある場合、ドロネー三角形分割の取得は比較的単純な変換です。


10

gStar4Dは、GPU用の高速で堅牢な3D Delaunayアルゴリズムです。CUDAを使用して実装され、NVIDIA GPUで動作します。

GPU-DTと同様に、このアルゴリズムは最初に3Dデジタルボロノイ図を作成します。ただし、3Dでは、位相幾何学的および幾何学的な問題のため、これを三角形分割に二重化することはできません。代わりに、gStar4Dはこの図の近隣情報を使用して4Dに持ち上げられた星を作成し、GPUでそれらを効率的に星表示します。これから下の船体を抽出することにより、3D Delaunay三角形分割が取得されます。

最速の3D Delaunay実装は、ハイブリッドGPU-CPUアルゴリズムであるgDel3Dです。

GPUで並列挿入とフリップを実行します。結果はドローネに近い。次に、CPUで保守的なスタースプレイ方式を使用してこの結果を修正します。

これらのメソッドは両方とも堅牢であるため、あらゆる種類の縮退入力を処理できます。中間データ構造を保持するのに十分な大きさのGPUメモリがある場合、数百万のポイントを処理できます。

開示:私はこれらのアルゴリズムと実装の著者です:)


アシュウィン、SciComp.Seへようこそ!完全な開示のために、このソフトウェアの作成者であることを追加する必要があります(meta.scicomp.stackexchange.com/a/342/1804を参照)。
クリスチャンクラソン

3

Paulが上記で提案したように、CGALを試すことをお勧めします。http: //www.cgal.org/Manual/latest/doc_html/cgal_manual/Triangulation_3/Chapter_main.html#Section_39.2 CGALは堅牢で十分にサポートされているライブラリであり、かなり前から存在しています。過去に、同一直線上および同一平面内のポイントを持つポイントセットでさえ、これを喜んで使用しました。今日が最も速いかどうかはわかりませんが、それは確かに始めるのに良い場所です。

上記のリンクには、パフォーマンスの数値も含まれています。約10秒で100万ポイント、約1.5分で1000万ポイントを達成できます。


また、なぜそれをお勧めするのかを説明してもらえますか?経験はありますか?
ゴドリックシーア

1

既に一連の点のボロノイ図がある場合、ドロネー三角形分割を計算すると、O(n)しか得られません。同様に、ボロノイ点が与えられると、O(1)でそのドローネ三角形を取得できます。それらは二重なので、可能な限りこの状況を悪用してみてください。


1

私が開発しているジオグラムソフトウェアを試すことができます:http ://alice.loria.fr/software/geogram/doc/html/index.html

Intel Core I7で19秒未満で1400万頂点のDTを計算する並列アルゴリズムを備えています(100万頂点の場合、約0.8秒かかります)


SciComp.SEへようこそ!完全な開示のために(そして、あなたが話していることを知っていることを示すために)、あなたはこのソフトウェアの開発者であることに言及すべきです。
クリスチャンクラソン
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.