部分実装

CNLの型とデータ#

CNLは、値の種類と、その値が画像や時間列として広がっているかを区別します。正式な定義は型形式にあります。

値の種類#

Value型 用途
Boolean 真・偽
Integer 整数
Float 実数の計算
Vector 三つのFloat成分
Color RGBAの四つのFloat成分
String UTF-8の文字列
Enum 名前と選択肢が決まった選択値

Float32・Int32・Boolなどは現在の処理系に残る表記です。vec2・vec4やComplex、sampler、byte Bufferなども一部の座標計算・実行契約にありますが、公開Value型がその数だけ増えるという意味ではありません。論理的な型と実行Precisionも別に扱います。

StringとEnum#

function main(name: String): String {
  const prefix = literal(String, "こんにちは、");
  return string_concat(prefix, name);
}

Enumは単なるIntegerと追加の隠し情報ではなく、選択肢の定義を型に含む名義型です。型の名前、選択肢名、安定したコードを指定します。コードの順番から、異なるEnum同士の対応を推測しません。

function main(mode: Enum<"Blend", "normal"=0, "screen"=7>): Enum<"Blend", "normal"=0, "screen"=7> {
  return mode;
}

同じ数値コードでも、異なるEnum型は同じ選択値にはなりません。AEのDropdownを接続する境界では、その対応を明示します。String・Enumのuniform値を扱えても、可変長Stringの全Field実行が完成したわけではありません。

Fieldと付随情報#

Gridは一般データ、Imageは画像、Videoは時間を含む画像列を表すField形式です。たとえばImage<Color,2>は二次元のColor画像です。Video<Color,3>は時間を含みます。関数の型に書けることと、すべての実行経路が対応していることは区別します。

Shape、座標、Attributeは、データの構造や解釈を表します。別の公開Value型ではありません。演算の途中で、勝手に解像度をそろえたりAttributeを引き継いだりしません。詳しくはFieldとAttributeを参照してください。

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

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

ドキュメントを検索

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

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