表面の重ね掛け(Surface Overlay)

雨・汗・雪・汚れを 1 つのモジュールで賄います。 「面がどれだけ覆われているか」を被覆率として出し、 その値で色の置き換え・沈み・法線の寝かせを動かします。 厚みの押し出しだけは頂点シェーダーで別に決まります(濡れと積もり)。

横軸が面の上向き度合い、縦の 8 段がベースカラー。上向きの面にだけ乗る設定
横軸が面の上向き度合い、縦の 8 段がベースカラー。上向きの面にだけ乗る設定
向きを問わず濡らし、素の色を沈ませる設定
向きを問わず濡らし、素の色を沈ませる設定

被覆率は次の順で決まります。

  1. 面の向き(Upward Bias が 1 に近いほど上向きの面だけ)とマスクを掛ける
  2. そこへ水滴と垂れの模様を足す(Droplets を上げたとき)
  3. 境界とぼかしでしきい値をかけ、最後に Amount を掛ける

粒と垂れは 1 の後に足されるため、下向きの面やマスクで抜いた場所にも付きます。 雨や汗を場所で抑えたいときは Upward Bias や Mask Channel ではなく、 Droplets そのものを下げてください。

基本

プロパティ説明
Amount全体の強さ。被覆率に掛かる(0 で色・法線の寝かせ・厚みが消える)
Overlay Texture重ねる模様。汚れや雪の粒に使う
Overlay Color重ねる色。アルファが色の置き換え量(雨や汗は 0)
Mask Channel共有マスクのどのチャンネルを使うか。None で全面
Upward Bias上向き面への寄り。雪や埃は高め、汚れは低め
Border / Border Blur覆われたと見なす境界とそのぼかし
Pattern Scale粒と筋の全体の細かさ。オブジェクトの大きさに合わせる

濡れと積もり

プロパティ説明
Wet Darkening覆われた部分の素の色を暗く濃くする。雨・汗向け
Settled Roundness覆われた部分の法線を上向きに寝かせる。雪向け
Settled Thickness頂点を押し出して厚みを出す。単位はメートル
Thickness Direction1 で真上、0 で面の法線に沿って押し出す
Vertex Color Mask厚みを抑える頂点カラーのチャンネル

厚みだけは被覆率とは別の経路です。頂点シェーダーではマスクテクスチャを 引けないため、Settled Thickness は面の向きと Vertex Color Mask(頂点カラー) だけで決まります。Mask Channel で抜いた場所も頂点は押し出されます。 厚みを場所で抑えるには頂点カラーを使ってください。境界のぼかしも、頂点が粗いと 面が三角形に割れて見えるため、ピクセル側より広く取ってあります。

厚みは頂点変位なので、積もりの縁は丸められません。 丸めるにはジオメトリが要りますが、モジュールはパスもテッセレーションも 足せません。縁をなだらかにしたい場合は頂点カラーで厚みを落とすか、 モデル側に縁を用意してください。

水滴と垂れ

Droplets を上げると、面に付く水の粒が被覆率に乗ります。 粒は Run-off で「その場に留まるもの」と「流れ出すもの」に分かれ、 流れた粒は Streaks で跡を残します。垂れる向きは重力方向です。

付着した粒だけの状態。大きさにばらつきがある
付着した粒だけの状態。大きさにばらつきがある
半分の列が流れ出した状態。止まる粒と流れる粒が混ざる
半分の列が流れ出した状態。止まる粒と流れる粒が混ざる
プロパティ説明
Droplets粒の量。濡れて見えるかはこれが効く
Droplet Density粒を置く格子の細かさ。下げると大きくまばらになる
Droplet Size格子に対する粒の大きさ。1 に近づけると粒同士がくっつく
Size Variance粒の大きさのばらつき
Droplet Bump粒で法線を歪める量。0 だと本体のハイライトが乗らず濡れて見えない
Run-off0 で全部その場に留まり、1 で全部が流れ出す
Streaks / Streak Speed流れた跡の残り方と速さ

作例

表現効かせるもの
雨Droplets + Run-off + Streaks + Wet Darkening、Overlay Color のアルファは 0
汗Droplets を弱め、Run-off を低く。Upward Bias は低め
雪Upward Bias を高く、Settled Roundness と Settled Thickness を上げる
汚れOverlay Texture と Overlay Color のアルファを上げ、Droplets は 0