ボロノイメッシュを作成するパイプライン


10

Mayaプラグイン(この質問はMayaから独立しています)を実装して、3Dボロノイパターンを作成したいと思います。

ここに画像の説明を入力してください

私はポイントサンプリングから始めなければならないことを知っています(このペーパーで説明する適応ポアソンサンプリングアルゴリズムを実装しました)。

これらの点から、ボロノイを適用してメッシュの3Dワイヤーを作成する必要があると思いました((Python)scipy.spatial.Voronoiを使用しようとしましたが、期待した結果とは異なっていました)。

何か不足していますか?そのようなパターンを作成するために実装する必要がある適切なパイプラインとアルゴリズムを誰かが提案できますか?

[編集]以下は、このようにscipy.spatial.Voronoiから取得した結果を処理する例です(ここで提案されているように):

vor = Voronoi(points)
for vpair in vor.ridge_vertices:
    for i in range(len(vpair) - 1):
        if all(x >= 0 for x in vpair):
            v0 = vor.vertices[vpair[i]]
            v1 = vor.vertices[vpair[i+1]]
            create_line(v0.tolist(), v1.tolist())

灰色の頂点はサンプリングされた点です(元の形状は単純な球でした): ここに画像の説明を入力してください

これはより複雑な形状(腕)です ここに画像の説明を入力してください


返信してくれてありがとう。私がやったことを複製して、提案されたように画面を投稿します。とにかく、この質問の最終的な目的は、コードをデバッグすることではありませんが、私がやっていることが正しいか、または間に他の手順がないかを理解することです!
Jiloc、2015年

提案された例を追加しました!
Jiloc 2015年

ポアソンサンプリングのポイントは正しいです。それらを生成するアルゴリズムは完全にユニットテストされており、画面に表示されるものは、Voronoi(points)を呼び出す前にプログラムで作成したサンプルポイントを中心とする球体です。私は正しい道をたどっていないか、ボロノイ結果を間違った方法で処理しているのではないかと心配しています
Jiloc

あなたが示す画像は、2次元関数でボロノイを行っています。
joojaa

@joojaaサンプル画像から、2Dサーフェスのボロノイセルエッジが必要なものであると予想しました(3Dで与えられる平面セクションのコレクションではなく、球体サーフェス上のポイントを接続するラインセグメントのコレクションを与えるため)。 。ただし、scipy.spatial.Voronoiは、埋め込まれたサーフェスではなく、N次元空間用に設計されているようです。2Dサーフェスに拘束された3Dポイントにどのように使用されるかすぐにわかりません。
trichoplax、2015年

回答:


1

http://www.cs.sandia.gov/~samitch/papers/vor_final.pdfプログラミング言語にはコンピュータアルゴリズムはありませんが、平面反射とアルゴリズムを使用して簡単に複製できるはずです。上記のリンク。


ComputerGraphics.SEへようこそ!Stack Exchangeの自己完結型で答えを出すことは、通常は良い考えです(たとえば、リンクがダウンした場合や、一般的に、回答が役立つかどうかを知るためにリンクをたどる必要がないようにするため)。論文の内容の短い要約を含めることにより、回答を改善することができます。
マーティンエンダー2016年
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.