次のシェーダを使用すると、データ型を変換できます。

Float to Int

浮動小数点値を整数値に変換します。

Float to RGBA

R、G、B、A の浮動小数点値から RGBA カラーを作成します。

Float to RGBA の例

RGBA to Float

RGB カラーとアルファ値を浮動小数点に変換します。

 

Arnold のデータ型変換

次の表に、Arnold 内でデータ型を変換する方法を示します。

キー:

(空白)変換は許可されていません、または無視されます
コピーコピー(変換する必要はありません)
展開同じソース値に設定されているすべてのコンポーネント
シャロー コピーポインタの型(pointer、node、array、matrix)ごとに、実際の値ではなく、ポインタをコピーします
ブール キャストゼロは false を、ゼロ以外は true を意味し、また逆の場合も同様です
アップキャスト小さい整数型が大きな整数型に埋め込まれるだけです
ダウンキャスト大きな整数型が小さい整数型に分けられます
平均コンポーネントの平均値を取得します

      ターゲット     
ソースenumbooleanbyteintuintfloatRGBRGBAvectorpointpoint2
enumコピー          
boolean コピーブール
キャスト
ブール
キャスト
ブール
キャスト
      
byte 

ブール
キャスト

コピーアップキャストアップキャスト      
int ブール
キャスト
ダウンキャストコピーコピー      
uint ブール
キャスト
ダウンキャストコピーコピー      
float     コピー

r = flt
g = flt
b = flt

r = flt
g = flt
b = flt
a = 1

x = flt
y = flt
z = flt

x = flt
y = flt
z = flt

x = flt
y = flt

RGB     平均値(rgb)コピー

r = r
g = g

b = b
a = 1

x = r
y = g
z = b

x = r
y = g
z = b

x = r
y = g

RGBA     平均値(rgb)

r = r
g = g

b = b

コピー

x = r
y = g
z = b

x = r
y = g
z = b

x = r
y = g

vector     vector.x

r = x
g = y
b = z

r = x
g = y
b = z
a = 1

コピー

x = x
y = y
z = z

 
point     pnt.x

r = x
g = y
b = z

r = x
g = y
b = z
a = 1

x = x
y = y
z = z
コピー 
point2     pnt2.x

r = x
g = y
b = 0

r = x
g = y
b = 0
a = 1

x = x
y = y
z = 0

x = x
y = y
z = 0

コピー
string           
node           
pointer           
array           
matrix           

 

 

    ターゲット 
ソースstringnodepointerarraymatrix
enum     
boolean     
byte     
int     
uint     
float     
RGB     
RGBA     
vector     
point     
point2     
stringコピー    
node  シャロー コピー  
pointer  シャロー コピー  
array   シャロー コピー 
matrix    シャロー コピー

 

 

ここで、次の点に注意する必要があります。

  • ノード タイプ(AI_TYPE_NODE)はシーン作成時に解決され、ノード間のシェーダの接続は、シェーダ ノードの出力型に基づいて内部的に接続になるため、形式的には許可されません。ただし、1 つのノードを渡す場合、シェーダ メッセージ送信のような他のメカニズムを使用する代わりに、標準的なポインタ型として渡すことができます。ただし、シェーダの代わりにポインタ送信を使用することが多い場合は、設計を見直す必要があります。
  • 整数型と浮動小数点型の間に自動変換はありません。
  • 列挙型と他の型の間に自動変換はありません。
 

  • No labels