Reality Composer Pro の Share Graph で使えるノードを眺めてみる(Data 編)

続き:
Reality Composer Pro の Share Graph で使えるノードを眺めてみる(2D/3D Procedural/Texture 編)
Reality Composer Pro の Share Graph で使えるノードを眺めてみる(Adjustment 編)
Reality Composer Pro の Share Graph で使えるノードを眺めてみる(Application 編)
Reality Composer Pro の Share Graph で使えるノードを眺めてみる(Compositing 編)

Data は、あるデータを異なる形式に変換したり、データ構造内の個々の値を操作するもの。

  • Data
    • Convert
    • Swizzle
    • Combine 2 / 3 / 4
    • Extract
    • Separate 2 / 3 / 4
    • Primver Reader

Convert

入力ストリームに流れる値を異なるデータ形式に変換するノード。変換のパターンは、単一の値(数値、Bool) からベクトル(vector, color) に変換したり、その逆も然りだが、各パターンで過不足するデータの埋め方/引き方は、ドキュメントに網羅的に記されている。

Swizzle

入力ストリームの値を指定したチャネルの順序に並び替えて出力するノード。チャネルは “r”, “g”, “b”, “a” や、”x”, “y”, “z”, “w” を使って、”xxx”, “abgr” のような文字列で指定する。具体例がドキュメントにあり一目瞭然。

Extract

マルチチャネルの入力ストリームから、指定インデックスに対応するひとつのチャネルを抽出し、出力する。

Combine / Separate

文字通り、複数の値をひとつのベクトル(vector, color) にまとめたり、逆にひとつのベクトル(vector, color) をそれぞれのチャネルに分離する。Separate 4 に関しては、(r, g, b, a) -> (r, g, b), a のように分離できるっぽい。

Primvar Reader

ChatGPT によると、

お、Primvar Reader 来た!ここは USD/MaterialX っぽさが一番強く出るところですね 🧱

ざっくり言うと:

「ジオメトリ側に埋め込まれたカスタム属性(primvar)を、シェーダー側から読むためのノード」

です。

ということだが、意味不明だし今は必要なさそうなので、その時が来たら学習する。

一応、どんなときに使うのかも ChatGPT に教えてもらった。

  • 例1: 頂点マスクで「塗り分け」したい
  • 例2: 頂点カラーをそのまま Albedo に使う
  • 例3: UV セットの切り替え
  • 例4: string primvar でテクスチャやバリアントを変える