型形式と型定義#
Boolean/Integerの正確な転送と一部GPU演算の範囲はGrid、 EXRレイヤーの選択はFile、検証範囲は対応状況を参照してください。 論理型の定義と、特定backendの実行可能範囲を混同しないでください。
型形式は型表現の構成規則#
型形式(Type Format)は、型をどの構成要素で表し、その表現にどの意味・制約を与えるかを定めます。既存の型へ後から貼るカテゴリでも、FieldのAttributeでもありません。
| 型形式 | 表現するもの | 型表現の構成要素 |
|---|---|---|
| Value Type Format | 一つの値の意味と構造 | 基本型名。VectorとColorは成分型と成分数も持つ |
| Field Type Format | Valueを複数のサンプル位置へ配置するデータの型 | 意味型名、Value型、次元数 |
型定義は、名称、型表現、意味、構造、演算、互換性、制約を説明する仕様です。これらの説明項目が、すべて実行時のAttributeとして保存されるわけではありません。
Value型形式#
公開する Value 型は次の七つです。文字列と選択肢の接続・変換規則は StringとEnumに記載しています。
| 型 | 意味 | 構造 | 詳細 |
|---|---|---|---|
| Boolean | 真偽 | false / true | Boolean |
| Integer | 整数 | 符号付き整数 | Integer |
| Float | 実数の近似 | 浮動小数点数一つ | Float |
| Vector<Float,3> | 位置・方向・空間量 | X,Y,Zの三成分 | Vector |
| Color<Float,4> | RGBAの色 | R,G,B,Aの四成分 | Color |
| String | UTF-8文字列 | 空文字列を含むUnicodeスカラー列 | String |
| Enum | 定義された有限候補の一つ | ドメインID・候補ID・明示コード | Enum |
Vectorの成分数はFieldの次元数ではありません。Vector一つには三つの数値が入りますが、画像の幅・高さも、三つの座標軸上の配列も持ちません。
Field型形式#
| 型表現 | 値の型 | 次元数 | 意味 |
|---|---|---|---|
| Grid<ValueType,n> | Value型 | 正の整数n | 一般の任意次元Field。ストレージ・実行対応範囲は別途判定 |
| Image<Color,2> | Color | 2固定 | 画像として解釈されるField |
| Video<Color,3> | Color | 3固定 | 映像として解釈されるField |
Gridを一般形とし、ImageとVideoは構造と意味を専用化した独立の意味型です。単なる別名でも、見た目だけのタグでもありません。詳しくはGrid、Image、Videoを参照してください。
型表現が決めるのはValue型と次元数などです。Grid<Float,3>だけでは、Shapeが256×256×128か、DimensionがX,Y,ZかX,Y,Timeかは分かりません。Fieldの構造が、そのデータごとの情報を保持します。
型ではないもの#
| 名前 | 正式な所属 | Socket Typeにしない理由 |
|---|---|---|
| Connection Rules | 接続規則 | データではなく接続の可否を定める |
| Precision | 評価設定 | 論理Floatとは独立した計算精度 |
| Visualization | 観測・表示設定 | 値をどのように見せるかを定める |
| Unresolved / 入力待ち | 編集状態 | 必要な入力がまだ揃っていない状態 |
| Invalid / 型の不一致 | 診断状態 | 満たされなかった制約を示す |
| Evaluation Domain | 評価の範囲・座標規約 | Fieldの意味型ではなく計算の実行条件 |
| Field Attributes | Fieldの構造の一部 | Field全体に付属する情報の集合 |
内部実装にあるSampler、Lattice、Buffer、Complex、遅延Field、2成分ベクトルなどを、公開型の別名として偽って表示しません。移行中のCNL署名がそれらを使用する場合は内部表現として明示します。実装との差を参照してください。
未確定と不正の違い#
入力待ちは正常な編集途中です。候補となる型制約を満たす接続は、ほかの入力が空でも受け付けます。型が確定していないことを理由に、すべての接続を拒否してはいけません。
一方、既知の入力と制約が矛盾する接続は拒否します。計算可能な型が確定しても、未対応のGPU処理なら「実行未対応」であり「型が不正」ではありません。状態・型・実行能力は別々に示します。