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

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

  • Adjustment
    • Remap
    • Smooth Step
    • Luminance
    • RGB to HSV
    • HSV to RGB
    • Contrast
    • Range
    • HSV Adjust
    • Saturate
    • Step (RealityKit)

名の通り値や範囲を変換するノードカテゴリ。分からなかったものだけ以下にまとめてみた。


Remap

In を In Low~In Hight の区間に正規化 (clampはしない) した上で、Out Low~Out Hight の区間に線形補間する。以下が参考になった。
ShaderGraphのRemapについて

たとえば

  • InMin = 0
  • InMax = 1
  • OutMin = 0
  • OutMax = 100

の場合、In 0.3 は Out 30 に変換される。

ChatGPT によると以下のような使い所があるらしい。

  • ノイズの出力を別レンジにマッピング
    • 0〜1 → -0.2〜0.8 とか
  • 距離(Position から算出した長さ)を 0〜1 に正規化
  • depth / mask などの 特定範囲だけを抽出して強調
  • テクスチャから取った値を別の物理量レンジに変換
    • 例:0〜1 のテクスチャ → 金属度 0.1〜0.8 に変換

参考:
Remap ノード | Shader Graph | 10.0.0-preview.27

Range

Remap に対し、さらにガンマ補正と clamp を可能にしたもの。といってもイメージがわかないのだが、ChatGPT によると使い所は以下らしい。

  • ノイズのコントラスト調整
    • ガンマで “柔らかい山” や “トゲのある山” を作れる
    • OutLow/High でオフセット付きノイズにできる
  • テクスチャのレベル補正(Photoshop の「レベル」みたいなこと)
    • InLow/High = 0.2〜0.8
    • Gamma = 0.8
    • → 暗部/明部の強調ができる
  • マスクの精密調整
    • Smoothstep より鋭い/柔らかいコントロールが可能
  • エッジ表現
    • Gamma > 1 で “暗い部分を広く、明るい部分を締める” ことができる

Step (RealityKit)

In が Edge よりも大きいか小さいかに従って、0 / 1 に二値化する。

Smooth Step

In が Low~High の区間で clamp し、区間内ではなめらかにS字状で補完 (エルミート補完) する。「これは補間が開始点から徐々に加速し、終了点に向かって減速することを意味します。この補間は、自然なアニメーション、フェード、その他の遷移を作成するのに有用」らしい。
Smoothstep Node | Shader Graph | 14.0.12

Step と Smooth Step の違いは以下がわかりやすかった。
ShaderGraphの頻出ノード!機能別で覚えよう #ポケテク|ポケラボ

Luminance

RGB を人の視覚的特性にあわせたグレースケースに変換する。輝度係数 (Luma coefficients) とカラーベクトルの内積を計算することで画像のグレースケール値を算出する。(ドキュメントにサンプル画像あり)

ChatGPT による用途は以下。

  • テクスチャ/カラー → グレースケール変換
    • 色の情報を無視して「明るさだけ」で処理したいとき。
  • マスク/マットの生成
    • たとえば “明るさが一定以上なら反応” とか、“暗い部分だけにエフェクトをかける” といった用途。
  • フェード、ディゾルブ、ディゾルブマスク
    • カラー画像の輝度差を利用して、部分的に透明/不透明を切り替えるような表現。
  • ポストプロセス/エフェクトの輝度依存処理
    • 明るさに応じてぼかし/エッジ/グローを変えるなど。
  • ライティングや雰囲気の制御
    • 色ではなく「明るさ」を元に音、パーティクル、光量の変化を制御する場合など。