上の通りのライティングが施されたオブジェクトで、その輝度によってテクスチャを貼り変えるにはRampとSurfaceLuminanceを使います。
なおここではテクスチャを見やすくするために、陰影が描かれないSurfaceShaderを使用してご説明します。
- 作成 > Maya > 2Dテクスチャ > ランプ(Ramp)を取得して SurfaceShader.Color に接続します。 入力カラーを適宜設定して、ここでは理解しやすいように「補完=なし」としておきます。
「タイプ=Vランプ」としてレンダリングすると、ワールド空間のV方向にランプが効いて球の上下がカラー1,カラー2で塗り分けられます。
- 入力1,入力2の塗り分けを輝度で行うため SurfaceLuminance を使用します。
作成 > Maya > ユーティリティ > サーフェス輝度(SurfaceLuminance)はピクセル毎のオブジェクトの輝度(ライティングからの影響)を取得しますので、これをRamp.uvCoord.uCoord/vCoord につなぐことで入力1,入力2の塗り分けはライティングに従うようになります。
- 後は入力1,入力2にテクスチャを当てればテクスチャを輝度で切り替えますので、ライトの辺り方に応じてテクスチャも変化します。
- 入力1,入力2の比率を変えることで2つのテクスチャの比率も変わります。
ライトの強さが変わるとオブジェクト上のピクセルの輝度も変わりますので、貼られるテクスチャも変化します。