部分実装

Repeat Zoneで処理を繰り返す#

ノード追加から Repeat Zone を選ぶと、Repeat InputとRepeat Outputが作られます。 同じキャンバス上で、二つの境界の間に繰り返す処理を組み立てます。

  1. Repeat InputのInitial Valueに初期値を接続します。
  2. Repeat Inputの出力から、各回で行う処理へ接続します。
  3. その処理の結果をRepeat OutputのNext Valueへ接続します。
  4. Repeat OutputのCountで回数を指定し、その出力を使います。

0回なら初期値がそのまま出ます。例えば初期値1へ毎回2を足すと、4回後は9です。 外から内部のノードへ接続した値は、各回で同じ値を使います。内部で変化させる値は Repeat Inputから受け取り、次の値をRepeat Outputへ戻します。

処理に必要なノードを接続するとゾーンの所属が決まります。作成後にノードを移動しても 計算の所属は変わりません。ゾーン内の値を外へ出すときはRepeat Outputを通します。 境界を複製するとペアと内部も複製され、境界を削除するとゾーン全体が削除されます。

Codeでは、通常の関数を本体とするrepeat_zoneに対応します。

fn increment(state: Float32, delta: Float32) -> Float32 {
  return state + delta;
}
fn main() -> Float32 {
  return repeat_zone(increment, 1.0, 4, 2.0);
}

現在は一つの値を繰り返し状態として受け渡します。VectorやImageも、対応する処理の 実行条件を満たせば状態にできます。回数は静的で、GPUの展開には上限があります。 複数の独立した状態項目、Iteration出力、回数のアニメーション、途中の回を選ぶ表示は この実行範囲に含まれていません。

このページを編集GitHubへのアクセス権が必要です。

CompNode Guide · 日本語製品ドキュメント仕様と実装範囲は各項目で区別しています。

ドキュメントを検索

検索語を入力してください。

    ↑ ↓ で結果を移動、Enter で開く · 検索はこの端末内だけで実行されます。