On this page | |
Since | 14.5 |
このノードは、ループノードブロックの終了を定義します。
このノードと Block Begin SOPを一緒に使用する方法に関する一般情報は、ジオメトリネットワークでのループを参照してください。
反復モード vs. ピース順モード ¶
このノードは、 ピース に対して処理するのかどうかに応じてパラメータエディタ内で異なるパラメータを表示します。
通常では、ピースとは、piece
やname
といったパーティション系アトリビュートの値が同じプリミティブの集合体を指します。
ピースアトリビュートの名前は、このノードの Piece Attribute パラメータで設定します。
以下の場合、 Block End SOP は ピース順(Piecewise) モードになります:
-
このノードの Interation Method パラメータが Auto Detect from Inputs に設定されている。そして、 Piece Block Path パラメータで参照されている Block Begin SOPの Method パラメータが Extract Piece or Point に設定されている時、または、このノードの2番目の入力が接続されている時。
-
このノードの Interation Method パラメータが By Pieces or Points に設定されている。
このノードが ピース順(Piecewise) モードの場合、 ピース 関連のパラメータが表示され、自動的にピース毎に反復されるので、その反復回数を設定する 必要がありません 。
以下の場合、 Block End SOP は 反復(Repetition) モードになります:
-
ピース順(Piecewise) モードの条件を満たしていない。
-
このノードの Interation Method パラメータが By Count に設定されている。
このノードが 反復(Repetition) モードの場合、反復回数を設定することができるパラメータが表示されます。
パラメータ ¶
Iteration Method
入力ジオメトリを反復させる方法を決めます。
Auto Detect from Inputs
このノードに2番目の入力が存在した場合、 Interation Method ▸ By Pieces or Points メソッドがその入力ジオメトリに対して使用されます。 同様に、Piece Block Pathが定義されている場合、 By Pieces or Points メソッドがそのノードの入力に対して使用されます。 どちらでもない場合、 By Count メソッドが使用されます。
By Pieces
入力ジオメトリ内のピース毎に1回の反復が行なわれます。 入力ジオメトリがそのノードに接続されていなかった場合は、エラーが出ます。
By Count
Iterationsパラメータに応じて、指定した回数だけ反復が行なわれます。
Gather Method
ループの反復の結果の扱い方を決めます。
Feedback Each Iteration
ループの最後の反復からジオメトリを出力します。 これと Block Begin SOPの Method ▸ Fetch Feedback 設定を使用することで、ループでステップ毎にジオメトリを累積させていき、最終結果を出力することができます。
Merge Each Iteration
反復毎にジオメトリを記録し、最後にそれらをまとめて結合します。 これと Block Begin SOPの Method ▸ Extract Piece or Point 設定を使用することで、ループは、一回に一個のピースだけを修正し、最後にそれらすべてのピースをまとめて結合することができます。
Note
各反復に対してExtract Piece or Pointを使用し、このメソッドによって結果を収集した場合、ポイント番号とプリミティブ番号は、ピース内で連続しない番号が付け直されます。
Iterations
ループをクックする回数を設定します。 このパラメータは、 Iteration Method が By Count に設定されている場合にのみ利用可能です。
Start Value
最初の反復のvalue
メタデータアトリビュートの値を指定します。
このパラメータの使い方に関しては、ループのドキュメントを参照してください。
このパラメータは、 Iteration Method が By Count に設定されている場合にのみ利用可能です。
Increment
各反復の後にvalue
メタデータアトリビュートに加算される量を指定します。
このパラメータの使い方に関しては、ループのドキュメントを参照してください。
このパラメータは、 Iteration Method が By Count に設定されている場合にのみ利用可能です。
Piece Elements
プリミティブまたはポイントのどちらに対してループさせるかを決めます。
このパラメータは、piece
アトリビュートが Point アトリビュートまたは Primitive アトリビュートのどちらなのかを制御します。
このパラメータは、ピース順(Piecewise)モードの時にのみ利用可能です。
Piece Attribute
有効にすると、ピースを定義したパーティション用アトリビュートの名前を指定することができます。 そのアトリビュートで同じ値を持つ各ポイントまたはプリミティブ(現在の Piece Elements パラメータ設定に準拠)が、同じピースの一部と見なされます。 パーティションアトリビュートには整数または文字列のみを指定することができます。 Piece Attribute を指定しなかった場合、このノードは入力上のすべてのポイントまたはプリミティブに対してループさせます。 このパラメータは、ピース順(Piecewise)モードの時にのみ利用可能です。
Note
いくつかのツール(例えば、 Shatterシェルフツール)は、このタイプのアトリビュートを自動的に生成します。
Max Iterations
有効にすると、反復の最大許容回数を指定することができます。これはテストとデバッグで役に立ちます。 ピース順(Piecewise)モードでこのパラメータを使用することで、入力ジオメトリの巨大化を回避することもできます。
Default Block Path
このノードのループを開始する Block Begin SOPのノードパスを指定します。
Note
Iterations の回数が0なら、このノードは、この Block Begin SOP の入力を出力します。
Piece Block Path
ピースの取得元となる Block Begin SOPのノードパスを指定します。 別の方法として、ピースを含んだジオメトリをこのノードの 2番目の入力 に接続することができます。 どちらの方法もこのノードをピース順(Piecewise)モードに切り換えます。
Reset Cached Pass
クックの後、このノードは、ループの最後の反復の出力をキャッシュ化します。 これにより、ループ内でディスプレイフラグを移動させることで、最後の反復をデバッグすることができます。 このボタンをクリックすると、そのキャッシュがクリアされるので、このノードが再度クックされるまでは、初期の状態が表示されます。
Single Pass
有効にすると、指定したオフセットで一回の反復を実行することができます。 これは、ピース順(Piecewise)モードのループをデバッグして、それぞれのピース/反復の出力を表示するのに役立ちます。
Stop Condition
反復の開始時にこのパラメータが1
なら、このブロックのループが停止します。
そのため、ここにエクスプレッションを記述することで、いくつかの条件をテストすることができます。
例えば、フィードバックループ内のポリゴンの数に閾値を設定することができます。
Stop Conditionがループの最初の反復の前にトリガーされると、それは、 Max Iterations を0
に設定するのと同じ事になり、このノードは、 Default Block Path パラメータで指定された Block Begin SOPの入力を出力します。
Multithread when Compiled
有効にすると、このノードのFor-Loopがコンパイルブロック内にある場合、このノードに Gather Method ▸ Merge Each Iteration が選択されていて、何もFeedback入力がなければ、別々のスレッドで各パスを実行することが可能です。 この条件を満たせば、パス毎に別々のタスクを作成することができるので、シングルスレッドのオペレーションでも複数のコアを使用することができます。
Note
ループ内のオペレーションが既にマルチスレッド対応で、その恩恵があまりない場合、タスクを開始するオーバーヘッドが原因でさらに遅くなってしまう可能性があります。 同様に、オペレーションが非常に高速である場合、タスクのセットアップにかかる時間の方が長くなってしまう場合があります。 特に、通常ではFor-Loopセットの一番外側をマルチスレッド化するためだけに必要です。
入力 ¶
Input 1
Nodes to Iterate Over。 このネットワークチェーンは、反復毎に再評価されます。 上流の Block Begin SOPは、パス毎にDirty(要クックとしてマーク)になります。
Input 2
Geometry Pieces to Loop Over。 反復させるピースのソース。 別の方法として、Piece Block Pathパラメータを使用することで、そのソース( Method ▸ Extract Piece or Point に設定された__Block Begin SOP__ )を指定することができます。
Examples ¶
NumbersOnPoints Example for Block End geometry node
このノードは、ポイント上に番号をスタンプする方法を示しています。 これは、for-each loopを使用して、各ポイントを反復し、メタデータソースを使用して、現行の反復番号を取得します。
SimpleFeedback Example for Block End geometry node
これは、for-loopsを使用して、同じノードのシーケンスを何度もジオメトリに再適用する方法を示しています。
SwissCheese Example for Block End geometry node
このノードは、1つのジオメトリのすべてのピースを反復して、元のジオメトリからボリュームを連続して減算する方法を示しています。
See also |