2017-04-14 18 views
1

私はnumpy配列として表される3Dオブジェクトを持っています。 このようなオブジェクトの「サーフェス」を展開して2Dマップを取得するにはどうすればよいですか(内部値は気にしません)。3Dオブジェクトのサーフェスを2D配列に展開する方法は?

グローブサーフェスのアンラッピングと似ていますが、形状はケースごとに異なります。 enter image description here

+1

いくつかの軸に関して対称に扱わなければならない形状はありますか?また、あなたの配列のどの点が表面点であるか知っていますか?コードスニペットを投稿すると、あなたの質問を明確にするのに役立ちます。なぜなら、今はちょっと広すぎます。 – nikjohn

答えて

1

これは頂点の問題です。モデル上の各三角形は、2D平面にマッピングできる平面です。それは互いの上に紫外線のすべてを置くよう

for triangle in mesh: 
    // project to plane defined by normal to avoid stretching 

このソリューションは理想的ではありません。だから、任意の仮定構造を持たない最も単純な解決策をすることです。次のステップは、ある空間を満たすために三角形を広げることです。これは、2D空間でどのように頂点がレイアウトされるかを定義するレイアウト段階です。

通常、UVを1平方インチ内に収めるのが理想的です。これにより、単一の画像から簡単にUVマッピングが可能になります。

オプション:2

あなたが知られている2次元でオブジェクトを囲む形状をマッピングし、その正常に基づいて、形状にそれぞれ三角形を投影します。これは、構造化されたマナー内のuvをアンラップするためのメカニズムを提供します。オブジェクトの例は、キューブに投影することです。

オプション:3

学術論文やブレンダー等オープンソースライブラリ/ツールを参照してください:上記のように https://wiki.blender.org/index.php/Doc:2.4/Manual/Textures/Mapping/UV/Unwrapping

ブレンダーは、任意の幾何学的形状をアンラップするための方法を使用します。これを実現する他の方法は、blender unwrapページに記載されています。ミキサーについての素晴らしい点は、uv unwrapメソッドの実装についてソースコードを調べることができることです。

希望すると便利です。

関連する問題