前回の試みの続き:
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 による用途は以下。
- テクスチャ/カラー → グレースケール変換
- 色の情報を無視して「明るさだけ」で処理したいとき。
- マスク/マットの生成
- たとえば “明るさが一定以上なら反応” とか、“暗い部分だけにエフェクトをかける” といった用途。
- フェード、ディゾルブ、ディゾルブマスク
- カラー画像の輝度差を利用して、部分的に透明/不透明を切り替えるような表現。
- ポストプロセス/エフェクトの輝度依存処理
- 明るさに応じてぼかし/エッジ/グローを変えるなど。
- ライティングや雰囲気の制御
- 色ではなく「明るさ」を元に音、パーティクル、光量の変化を制御する場合など。
「Reality Composer Pro の Share Graph で使えるノードを眺めてみる(Adjustment 編)」への5件のフィードバック