On this page | |
Since | 17.0 |
Triangulate 2Dは入力ジオメトリ内の2Dポイントを繋げて、できるだけ(鋭角な角度を回避して)“良い形状”の2D三角形メッシュを作成します。
Triangulate 2Dは、平面上のポイントに対して動作するので、各3D入力ポイントに2D位置を割り当てる必要があります。 これには3通りの方法があります:
-
3Dポイントセットにベストフィットする平面にポイントを投影する。
-
ユーザがポイントの投影先となる平面を選択する。
-
ユーザが各ポイントの2D座標に対応したPointアトリビュートを用意する。
Triangulate 2Dは、特定のポイントのペアを出力メッシュのエッジ(またはRefinementを実行した時のエッジのサブディビジョン)にすることができます。 これらのエッジを constraints(拘束) と呼びます。 Constraints タブ下でエッジグループまたはプリミティブグループ(または両方)を用意することで、 そのconstraints(拘束)を指定することができます。
-
特定の境界エッジを最終的な三角形に存在させるには、 Constraint primitives パラメータにエッジのプリミティブ番号を入力するか、 または Constraint edges パラメータに必要なエッジのグループを指定します。
Triangulate 2Dは、 Outside Removal タブにある色々な方法を指定することで、目的の領域の外側と判断された三角形を削除することもできます。
Triangulate 2Dの Refine タブでポイントを追加すれば、三角形の形状を改良することもできます。
-
新しくポイントを追加せずに入力を三角形分割するには、 Refine をオフにし、 Constraint Primitives を空っぽのままにします。
-
ポイントの数が増えても良質な三角形を生成するには、 Refine をオンにします。 Maximum Area (三角形の大きさを制御)と Minimum Angle (値を上げると、鋭角な細長い三角形が回避されます)のパラメータを使えば、三角形の品質を制御することができます。 Minimum Edge Length パラメータを設定すれば、大きな三角形へのRefinement(精密化)を制限することができます。
Tip
三角形分割にランダム性を加えるには、元のジオメトリにScatter SOPを接続することで、ランダムな位置にポイントを追加します。
技術的には、Triangulate 2Dは、 拘束付きのドロネー三角形分割 を生成します。これは同じポイントセットに対して可能なすべての三角形分割の最小角度が最大になります。そして精密処理が ドロネーリファイン です。
パラメータ ¶
Point Group
三角形分割で使用するポイントのサブセット。
2D Positions
三角形分割に使用するポイントの2D位置を決める方法を指定します。
Fit Plane
ポイントを3Dポイントセットにベストフィットする平面に投影することで、ポイントの2D位置を取得します。
Select Projection Plane
3Dポイントの投影先となる投影平面をユーザが指定します。
Origin
Select Projection Plane が有効な時、投影平面は、“origin”として扱われるこのポイントを基準に決まります。
Distance
Select Projection Plane が有効な時、このパラメータは、投影平面と Origin で指定したポイント間の距離を決めます。
Direction
Select Projection Plane が有効な時、このベクトルは、 Origin で指定したポイントから離す投影平面の方向を決めます。
Use Attribute
指定したPointアトリビュート(アトリビュートは、最低でも2つの成分を持つ浮動小数点ベクトルでなければなりません)から各ポイントの2D位置を読み込みます。
Attribute Name
Use Attribute が有効な時、ポイントの2D位置がこの名前のアトリビュートから読み込まれます。
Constraints ¶
拘束を使用することで、特定のポイントのペアを出力三角形分割のエッジ、別名 constrained edge で強制的に繋げることができます。 拘束プリミティブグループ(すべてのエッジが拘束と見なされるポリゴンまたはポリゴンカーブで構成)を使用するか、またはエッジグループを使用するか、 または両方で拘束を指定することができます。
Edges
指定したエッジグループのすべてのエッジは、出力三角形分割の拘束として定義されます。
Note
エッジグループのエッジは、入力内のプリミティブエッジとして存在している必要がありません。 例を挙げると、“p10-20 p16-24”のエクスプレッションを拘束エッジグループとして使用すると、 ポイント10と20が出力のエッジで接続され、ポイント16と24も同様に接続されます。
Polygons
指定したポリゴンのエッジが最終の三角形分割で保持されるように指定します。
Ignore Polygon Bridge Edges
無効にすると、拘束グループからブリッジエッジが除去されます。
Silhouette
投影された入力のシルエットと交差するエッジに属しているプリミティブに制限します。 このシルエットは、投影の反対側に向いているプリミティブに属しているエッジから形成されます。
Allow Splitting of Crossing Constraints
拘束エッジから形成された閉じた境界を作成する目的で、エッジを三角形化に挿入できるようにします。 これによって、拘束境界の外側にある三角形を除去する時に、最終メッシュの品質が大幅に改善されます。
Use Exact Construction for Constraint Split Points
三角形を分割する時に正確な判定処理の使用を有効にします。 これによって、三角形の品質が改善されますが、処理が遅くなります。
Ignore Non-Constraint Points
すべての内側ポイントを除去することで、拘束セットを単純化します。
Outside Removal ¶
このノードは、オプションで、拘束で決定される 外側 に属していると解釈可能な生成された三角形のサブセットを削除することができます。 これは、外側三角形の初期セットから開始し、拘束エッジによる現在のflood設定とは 別に floodが連続して近接三角形まで広がる一連の flooding 処理で行われます。 言い換えると、削除floodは、拘束エッジでのみブロックされます。
Flood from Convex Hull Boundary
拘束グループ外の三角形を削除します。
Remove Outside of Constraint Polygons
拘束されたポリゴンの境界外の三角形を削除します。
Remove Outside of Silhouette
シルエットの境界外の三角形を削除します。
Refinement ¶
Refine
新しくポイントを追加することで、三角形分割の品質を改良します。 三角形分割によって、ポイントの数が入力のポイントの数より増えますが、三角形が良い形状になります。
以下のポイントから始めるとします:
Refine をオフにすると、Triangulate 2Dは利用できるポイントを使って三角形を作成します。 状況によっては、良くない細長い三角形が生成される場合があります:
Refine をオンにすると、Triangulate 2Dは Maximum Area , Minimum Angle , Minimum Edge Length のパラメータの設定に順守するように ポイントを追加して良い三角形を作成します:
Allow Splitting of Constraint Edges
三角形の品質を改善するために、エッジを最終の三角形化に挿入できるようにします。
Encroach Angle
エッジの挿入によって新しく形成される三角形の角度の90度から180度までの角度閾値。 この基準に違反しないように、このノードは追加でエッジを挿入します。
Note
Allow Splitting of Constraint Edges が有効な時は、このパラメータは無効なので、これら2つのパラメータは現在のところ何も実行しないようです。
Minimum Angle
各三角形内側の最小角度(度)。 この値を上げると、三角形がより対称的な三角形になり、細長い三角形が軽減されます。 30度より大きい値は、保証できません。 そのような値は、Refinementを永久に行なわさせてしまうことがよくあり、最大許容ポイント数( Maximum New Points )に到達した時に停止します。
Triangle Sizes
緩和中の目標の三角形サイズに関するオプションの仕様。
Unrestricted
デフォルトオプションで、目標の三角形サイズは制限されません。
Cap Maximum Area
目標の三角形サイズを、三角形の面積の上限で指定します。
Maximum Area
三角形のサイズを制限する目標の最大面積。
Set Target Edge Length
目標の三角形サイズを、三角形のエッジ長の上限で指定します。
Target Edge Length
三角形のサイズを制限する目標のエッジ長。
Minimum Edge Length
ローカル領域での過剰なRefinement(精密化)を回避するには、さらに精密化される三角形の最長エッジに対して最小距離を指定します。 三角形のエッジすべてが指定した長さより短くなると、その三角形の形状の改良が終わります。
Maximum New Points
三角形分割する時に追加可能な新しいポイントの数を制限します。 新しいポイントは、拘束条件を満たしたり、 Refine を行なう時に、この数を上限に追加されます。 これは、三角形分割が無限ループに陥らないようにできるので役に立ちます。 通常では、この数は、あなたが生成したいポイント数よりも大きな値に設定します。
Regularization Steps
三角形分割を正三角形化するのに使用される反復回数。 反復回数が多いほど、正三角形が増えますが、時間がかかります。
Allow Movement of Interior Input Points
三角形分割の正三角形化を実行する時、これは、内側ポイントまたは元の投影が平面内を移動できるようにします。
Output Geometry ¶
Restore Original Point Positions
有効にすると、生成される三角形分割の三角形は、入力ポイントの元の3D位置を使用してトランスフォームされます。 新しく生成されるポイント(RefinementまたはConstraint Conflict Resolution用)には、入力ポイントの3D位置に基づいて補間された位置が割り当てられます。
Keep Primitives
三角形分割で作成された新しいプリミティブに加えて、出力に入力プリミティブすべて(拘束プリミティブを除く)を保持します。 無効にすると、入力プリミティブは出力されません。
Recompute Point Normals
(ポイント法線があれば)そのポイント法線を再計算します。
Remove Unused Points
有効にすると、入力ポイントグループ外のポイントが出力から削除されます。
Remove Duplicate Points from Triangulation
指定した2D位置に対して、1ポイントのみを三角形分割に挿入することができます。 複数のポイントが同じ2D位置である場合、それらのポイントのうち1つだけが三角形分割に挿入され、他のポイントは無視されます。 これを有効にすると、それらの重複したポイントが出力から削除されます。 これを無効にすると、独立したポイントのままになります。
Output Groups ¶
Split Points
交差拘束の分割に使用されたポイントグループを出力します。
Constrained Edges
拘束から指定されたエッジを含んだエッジグループを出力します。
Random Seed
このノードで実装された三角形分割とRefinement(精密化)のアルゴリズムは、本質的には“ランダム化”されています。 つまり、入力ポイントを“ランダム”な順番で処理する場合にのみ、高い確率でピークパフォーマンスが期待されます。 Houdiniのノード出力は決定論的でなければならないので、このパラメータで決まる入力ポイントの固定ランダムのような並べ替えが使われます。 たいていの場合では、この固定された並べ替えがほぼ最適に実行されるはずですが、理論的には固定された並べ替えが特定のポイントセットに対して 弱く実行することができます。そのような場合にシード値を変更すると、生成される出力に影響を与えますが、特にポイント番号やプリミティブ番号に 関して三角形分割の速度に対して目に見える効果が出ます。
入力 ¶
Input1
ポイントデータを含んだジオメトリ。
出力 ¶
Output1
三角形分割された2次元メッシュ。
Examples ¶
Chainmail Example for Triangulate 2D geometry node
このサンプルでは、鎖かたびらの環を作成する新しいTriangulate2D SOPの高度な使い方を説明しています。
See also |