データ型
説明
Shader Graph には数多くの Data Type (データ型) があります。ノード の各ポートにはデータ型が関連付けられており、これが、そのポートにどのエッジを接続できるかを定義します。各データ型にはユーザビリティーのために色が関連付けられており、この色は、そのデータ型に属するポートとエッジに表示されます。
一部の データ型 には、該当する Property Type (プロパティータイプ) があり、シェーダーを使用する マテリアル の Inspector で値にアクセス可能です。
データ型
Name | 色 | 説明 |
---|---|---|
Vector 1 | 水色 | Vector 1 の値またはスカラー値 |
Vector 2 | 緑 | Vector 2 の値 |
Vector 3 | 黄色 | Vector 3 の値 |
Vector 4 | ピンク | Vector 4 の値 |
Dynamic Vector | 水色 | 後述の "任意のデータ型" 参照 |
Matrix 2 | 青 | Matrix 2x2 の値 |
Matrix 3 | 青 | Matrix 3x3 の値 |
Matrix 4 | 青 | Matrix 4x4 の値 |
Dynamic Matrix | 青 | 後述の "任意のデータ型" 参照 |
Dynamic | 青 | 後述の "任意のデータ型" 参照 |
Boolean | 紫 | Boolean の値。生成されたシェーダー内で浮動小数として定義されます。 |
Texture 2D | 赤 | Texture 2D アセット |
Texture 2D Array | 赤 | Texture 2D Array アセット |
Texture 3D | 赤 | Texture 3D アセット |
Cubemap | 赤 | Cubemap アセット |
Gradient | グレー | グラデーション の値。生成されたシェーダー内で構造体として定義されます。 |
SamplerState | グレー | テクスチャーのサンプリングに使用される状態 |
切り上げと切り捨て
全ての Vector タイプは切り上げあるいは切り捨てによって、どの Vector タイプの ポート にでもマッチさせることができます。この動作は、該当の ポート が Dynamic Vector タイプでない場合にのみ発生します。切り捨て時は、余分なチャンネルが単純に削除されます。切り上げ時は、必要な追加的チャンネルにデフォルト値 (0, 0, 0, 1) が設定されます。
任意のデータ型
一部のデータ型は動的です。このようなデータ型を使用したポートは、それに接続されたデータ型に応じて、その基本となる 具象データ型 (Concrete data type) を変更することができます。デフォルトでは、任意の データ型 を使用した ノード は 具象データ型 を 1 つしか持てません。つまり、接続されたエッジがその データ型 を該当ポートに一旦適用すると、その ノード の他の全ての 任意のデータ型 のスロットが同じ データ型 を適用します。
上記に関して、明らかな例外が 1 つあります。それは、任意 の 行列 と ベクトル を持つことができる Multiply ノード です。
Dynamic Vector
Dynamic Vector 型は、どの ベクトル 型のエッジでも接続可能です。接続された全てのエッジは、最も低い次元を持つ型へと自動的に切り捨てされます。ただし、最も低い次元が 1 である場合は Vector 1 が切り上げされます。
Dynamic Matrix
Dynamic Matrix 型は、どの 行列 型のエッジでも接続可能です。接続された全てのエッジは、最も低い次元を持つ型へと自動的に切り捨てされます。
Dynamic
Dynamic 型は特殊なケースです。これをサポートする ノード は、これをどのように有効化するかを定義する必要があります。Multiply ノード の場合、全ての Vector あるいは Matrix タイプが接続可能なので、データ型 の組み合わせに応じて正しい乗算が適用されるようにします。