ノード一覧に戻る

サーフェース光プレビュー

surface_light_preview

サーフェースの高さ・法線・くぼみ・ざらつき・発光を使って、光を当てた見た目を確認します。

下書き
解説あり

入力ポート

名前説明
サーフェース
surface
Surface
必須
光を当てて確認したいサーフェースです。
パレット
palette
Palette
影段階やハイライト段階を指定色へ丸めるためのパレットです。

出力ポート

名前説明
画像
output
Image
光を当てた確認用画像です。

パラメータ

名前既定値範囲説明・選択肢
光の向き
angle
Angle
315— / step 1

光がどの方向から来るかです。315度は左上からの光です。

光の高さ
elevation
Angle
45— / step 1

光源の縦方向の軌道角です。0は光の向き側の水平、90は真上、180は反対側の水平、270は下/裏側から照らします。

最低の明るさ
ambient
Float
0.350–1 / step 0.01

光が当たりにくい面にも残す最低限の明るさです。

光の強さ
intensity
Float
0.850–2 / step 0.01

直接当たる光の強さです。

高さの効き
height_strength
Float
20–12 / step 0.1

高さマップから作る影やハイライトの強さです。

くぼみの暗さ
shadow_strength
Float
0.60–1 / step 0.01

AOマップでくぼみや隙間をどれだけ暗くするかです。

落ち影の濃さ
cast_shadow_strength
Float
0.450–1 / step 0.01

高い部分が低い部分へ落とす影の濃さです。0にすると落ち影は出ません。

落ち影の長さ
cast_shadow_length
Float
160–128 / step 1

正の光の高さで落ち影がどこまで伸びるかです。正の低い高さほど、同じ長さでも影が長く見えます。

落ち影の精度
cast_shadow_steps
Int
161–128

影を落とす高さを何回調べるかです。大きいほど細かくなりますが重くなります。

ライティング設定
lighting_definition_mode
Enum
Custom

影色やハイライト色のルールを、このノードで直接持つか、保存済みの定義から呼び出すかです。

  • このノードで設定Custom
    このノードに表示されている値を使います。
  • 定義を使うDefinition
    保存したサーフェースライティング定義を使います。定義を編集すると、それを参照するノードにも反映されます。
ライティング定義ID
lighting_definition_id
Text
core:pixel_basic

このプレビューで使う保存済みサーフェースライティング定義です。

影色の作り方
tone_grade_mode
Enum
Off

影やハイライトを、暗く明るくするだけにするか、色味もずらすかです。

  • 明暗だけOff
    ライト計算でできた明暗だけを使います。
  • OKLCH差分OKLCH
    影やハイライトを、明るさ・鮮やかさ・色相の差分で色づけします。
影色の段階
tone_grade_steps_mode
Enum
Smooth

OKLCH差分のかかり方を、なめらかにするか段階でそろえるかです。

  • なめらかSmooth
    光や影の強さに合わせて、色をなめらかに変えます。
  • 段階化Steps
    色の変化を少ない段階に丸めます。ドット絵の影色をそろえたい時に使います。
影色の強さ
tone_grade_strength
Float
10–1 / step 0.01

影色・ハイライト色のずらし方をまとめて弱めます。0で色味の変化なし、1で指定どおりです。

影の段数
shadow_grade_steps
Int
21–16

段階化するときの影色の段数です。2なら影1・影2のように分かれます。

ハイライトの段数
highlight_grade_steps
Int
21–16

段階化するときのハイライト色の段数です。2なら弱いハイライト・強いハイライトに分かれます。

影色の詳細
shadow_tone_detail_mode
Enum
Shared

普通の影を1つの色ルールでまとめるか、影の段数に合わせて分けるかです。

  • まとめて補正Shared
    影の強さに関係なく、1つの影色ルールでまとめて補正します。
  • 影段階ごとPerStage
    影の段数に合わせて、段階ごとの色ルールを使います。
影のOKLCH補正
shadow_oklch_adjust
OklchAdjust
[-12,0,8,0]

影になった場所の色の変え方です。明るさを下げたり、鮮やかさや色味を少しずらしたりできます。

落ち影の色
cast_shadow_tone_mode
Enum
SameAsShadow

落ち影の色を、普通の影と同じにするか、落ち影だけ別に調整するかです。

  • 影と同じSameAsShadow
    落ち影も普通の影と同じ色ルールで描きます。
  • 別に補正Separate
    落ち影だけ別の色ルールで描きます。接地影や段差の影を少し濃くしたい時に使います。
落ち影の段数
cast_shadow_grade_steps
Int
21–16

落ち影を何段階の色に分けるかです。

落ち影のOKLCH補正
cast_shadow_oklch_adjust
OklchAdjust
[-18,-0.01,10,0]

落ち影だけに使う色の変え方です。接地影や物の後ろに落ちる影を、普通の影より少し濃くしたい時に使います。

ハイライトのOKLCH補正
highlight_oklch_adjust
OklchAdjust
[8,0,-4,0]

ハイライトになった場所の色の変え方です。明るくしたり、光が当たる色味へ少しずらしたりできます。

パレット段階化
palette_stage_mode
Enum
Off

ライト計算後にパレット色へどう丸めるかです。

  • 使わないOff
    ライト計算後の色をそのまま使います。
  • 近い色へ丸めるNearest
    ライト計算後の色を、接続したパレットの一番近い色へ丸めます。
  • 影/ハイライト段階StageIndices
    影1・影2・ハイライト1・ハイライト2を、指定したパレット番号の色で塗ります。
パレット丸めの強さ
palette_snap_strength
Float
10–1 / step 0.01

選ばれたパレット色へどれだけ寄せるかです。1で完全にパレット色になります。

影1の色番号
shadow_stage_1_index
Int
10–255

少し暗い影に使うパレット番号です。

影2の色番号
shadow_stage_2_index
Int
20–255

より暗い影に使うパレット番号です。

ハイライト1の色番号
highlight_stage_1_index
Int
30–255

少し明るいハイライトに使うパレット番号です。

ハイライト2の色番号
highlight_stage_2_index
Int
40–255

より強いハイライトに使うパレット番号です。

影1のしきい値
shadow_stage_1_threshold
Float
0.180–1 / step 0.01

どのくらい暗くなったら影1にするかです。

影2のしきい値
shadow_stage_2_threshold
Float
0.450–1 / step 0.01

どのくらい暗くなったら影2にするかです。

ハイライト1のしきい値
highlight_stage_1_threshold
Float
0.750–2 / step 0.01

どのくらい明るくなったらハイライト1にするかです。

ハイライト2のしきい値
highlight_stage_2_threshold
Float
1.050–2 / step 0.01

どのくらい強く光が当たったらハイライト2にするかです。

透明度を保つ
palette_preserve_alpha
Bool
true

パレット色で塗り替えても、元の透明度をそのまま残します。

発光の強さ
emission_strength
Float
10–4 / step 0.05

発光マップをどれだけ明るく足すかです。

光の色
light_color
Color
[1,0.9599999785423279,0.8799999952316284,1]

当てる光の色です。

概要

Surface に簡易的な光を当てて、影やハイライト、発光の見え方を確認するノードです。

法線マップがあればそれを使います。法線マップがない場合は、高さマップから簡易的に面の向きを作ります。発光マップがあれば、暗い場所でもその色が足されます。

使用例

  • Image to Surface に高さマップを入れ、angle を動かして影の向きが変わるか確認する。
  • ランプの emission_map を入れ、emission_strength で光り方を調整する。
  • height_strength を上げてレンガの目地がどのくらい影になるか確認する。
  • レンガやブロックの Surfacecast_shadow_strength を上げ、elevation を低くして、段差から影が伸びるか確認する。
  • tone_grade_mode = OKLCH にして、shadow_oklch_adjust のHを少しプラス、highlight_oklch_adjust のHを少しマイナスにすると、影とハイライトに絵全体で同じ色味のルールを付けられる。
  • tone_grade_steps_mode = Stepsshadow_grade_steps = 2 にすると、影がなめらかなグラデーションではなく、影1・影2のような少ない段階にまとまる。
  • shadow_tone_detail_mode = PerStage にして、shadow_grade_steps = 4 にすると、定義管理では影1から影4までの補正欄が出る。弱い影は軽く、強い影ほど暗くするように並べると、絵全体で影段階のルールをそろえられる。
  • cast_shadow_tone_mode = Separate にして、cast_shadow_grade_steps = 3 にすると、落ち影も落ち影1から落ち影3まで別の補正を持てる。接地影やブロックの段差を普通の影より濃くしたい時に使う。
  • palette に作品用パレットを接続し、palette_stage_mode = StageIndices にして、影1・影2・ハイライト1・ハイライト2をパレット番号で固定する。

光の向きと高さ

angle は画像の平面上で、光がどの方向から来るかです。角度パラメータなので、インスペクターでは循環ノブで操作できます。315度は左上から光が来る向きです。

elevation は光の高さを表す縦方向の軌道角です。Angle パラメータなのでインスペクターでは循環ノブで操作します。0 は光の向き側の水平、90 は真上、180 は反対側の水平、270 は下/裏側から照らします。光の向き を固定して elevation0→180 に動かすと、太陽が昇って真上を通り反対側へ沈む動きになります。高さマップの落ち影は上側ライト(0〜180)で有効です。下側ライト(180〜360)では、不自然な投影を避けるため高さマップ由来の落ち影は無効です。

shadow_strength はAOマップでくぼみを暗くするための値です。cast_shadow_strength は高さマップを見て、実際に高いピクセルが低いピクセルへ落とす影の濃さです。

OKLCH差分

tone_grade_mode = OKLCH にすると、ライト計算で「影になった量」「ハイライトになった量」を見て、色を OKLCH 基準でずらします。

tone_grade_mode = Off の時は、OKLCH差分に関係する詳細パラメータはインスペクターで非表示になります。値は消えずに残るので、もう一度 OKLCH に戻すと前に調整した値がそのまま出ます。

たとえば shadow_oklch_adjustL=-12, C=0, H=8 にすると、影は少し暗くなり、同時に色味も少し回ります。全体の影が同じルールで色づくので、ノードごとに影色を手で合わせるより一貫した見た目を作りやすくなります。

tone_grade_steps_mode = Steps は、補正のかかり方を少ない段階に丸めます。shadow_grade_steps = 2 なら、影なし・影1・影2のように分かれます。パレットへ完全に丸める前に、OKLCH差分だけでドット絵らしい段階影を試したい時に使います。

shadow_tone_detail_mode = PerStage にすると、影の強さごとに別の補正値を使います。shadow_grade_steps = 1 なら影1だけ、4 なら影1から影4までを使います。定義管理画面では段数に合わせて補正欄が増減します。固定の影色ルールを作りたい時は、弱い段階を軽く、強い段階ほど深く暗い補正にしておくと扱いやすくなります。

処理の順番は、ライト計算、OKLCH差分、パレット段階化の順です。そのため、OKLCHで色味を整えてから、最後に palette_stage_mode = Nearest で作品パレットの近い色へ丸めることもできます。

落ち影は、初期設定では普通の影と同じ shadow_oklch_adjust を使います。これはドット絵で色数や影ルールを増やしすぎないためです。段差や接地感をもっと強く出したい時だけ cast_shadow_tone_mode = Separate にします。Smooth なら cast_shadow_oklch_adjust で落ち影全体を調整し、Steps なら cast_shadow_grade_steps に合わせて落ち影1・落ち影2...の補正を設定できます。

ハイライトも tone_grade_steps_mode = Steps の時は highlight_grade_steps に合わせて補正欄が増減します。たとえば2段なら弱いハイライトと強いハイライト、4段ならより細かい光の当たり方をパレット的にそろえられます。

パレット段階化

StageIndices は、ライト計算でできた色をそのまま使うのではなく、影やハイライトの段階をパレット番号へ置き換えます。

たとえばパレットの 1 番を「影1」、2 番を「影2」、3 番を「ハイライト1」、4 番を「ハイライト2」にしておくと、影の色味はライト計算ではなくユーザーが作ったパレットで制御できます。palette_snap_strength = 1 なら、最終結果は必ず接続したパレット内の色になります。

この仕組みは、定義管理のライティング定義でも同じ考え方を使います。ノードごとに色を直接変えるのではなく、まず作品全体で「影段階とハイライト段階をどのパレット番号へ対応させるか」を定義し、必要な時だけノード側で上書きできる形にします。

同じ考え方で、OKLCH差分の影段階もライティング定義で管理できます。作品全体の影1・影2・影3...、落ち影1・落ち影2...、ハイライト1・ハイライト2...のルールを定義し、個別ノードでは必要な時だけ上書きする、という運用にできます。

ノード一覧に戻る
サーフェース光プレビュー — PixPipeline ノード解説