部分実装

CNL言語ガイド#

CNL(CompNode Language)は、CompNodeAEで値の計算・画像処理・再利用する関数を書くための言語です。NodeとCodeは、同じCNLプログラムを編集する二つの画面です。Codeはノードの設定を並べるだけのものではなく、関数を定義し、処理を組み合わせるためにも使います。

記法はJavaScript/TypeScriptに近い、波括弧と型付き関数を採用しています。CNLの処理系はC++で実装しています。型の検査を通った計算を、実行計画に従って処理します。

読む順番#

  1. 最初のCNL:値を計算し、関数にまとめます。
  2. 記法:関数、変数名、コメント、リテラルを確認します。
  3. 式と演算子:計算順、比較、Booleanを扱います。
  4. 型とデータ:値、画像、座標、Attributeを区別します。
  5. 関数とスコープ:自作関数とGroupを組み合わせます。
  6. 画像とField:画像処理、座標、有限データを扱います。
  7. 反復:Repeat Zoneで状態を繰り返し更新します。
  8. GLSLなどの外部実装:CNLで定義した入出力と別ファイルの画像処理を結びます。対応profileと制限を確認します。
  9. エラーと検証:下書き、型エラー、実行未対応を見分けます。
  10. 他の言語との違い:似ている記法とCNL固有の規則を確認します。
  11. 言語の対応範囲と完成条件:現在できることと残る実装を確認します。
  12. ワークスペースとソース:main.cnl、自作ノードの依存ファイル、関数目次、標準ライブラリを区別します。

小さな例#

function exposure(value: Float, gain: Float): Float {
  const adjusted = value * gain;
  return adjusted;
}

function main(): Float {
  return exposure(0.25, 2);
}

この例の結果は0.5です。画像がなくても、CNLは型付きの値を計算できます。AEから受け取った値を計算し、他の関数へ渡す場合も同じ仕組みを使います。

この章の完成したcnlコード例は、ドキュメント検証で共通コンパイラーに渡します。検証は記法・名前・型・関数の意味を対象とし、AEへのインストールや、すべてのGPUでの実行確認とは別です。

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

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

ドキュメントを検索

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

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