ノード一覧に戻る

法線から相対高さ

normal_to_relative_height

規約を明示したタンジェント法線マップから、編集・ライティングに使える相対高さを復元します。

確認済み
解説あり

入力ポート

名前説明
タンジェント法線
normal
TangentNormal
必須
「タンジェント法線マップ」でOpenGL/DirectXのY規約を指定した法線です。

出力ポート

名前説明
相対高さ
height
Image
平均面を0.5にそろえた相対高さです。法線だけから元の絶対高度は復元できません。

パラメータ

名前既定値範囲説明・選択肢
元の法線強度
normal_strength
Float
20.1–16 / step 0.1

法線を作った時の強さです。復元した高さが深すぎる時に上げます。まず1〜4で合わせてください。

高さの倍率
height_scale
Float
10–8 / step 0.05

復元後の高低差です。布や肌は0.5〜1、石や浮き彫りは1〜2を目安にします。

左右ループ
wrap_x
Bool
false

左右端の高さがつながるよう積分のずれを除きます。シームレスタイルでオンにします。

上下ループ
wrap_y
Bool
false

上下端の高さがつながるよう積分のずれを除きます。シームレスタイルでオンにします。

概要

配布素材などのノーマルマップを、PixPipelineで加工できる高さマップへ戻す入口です。 法線は「傾き」しか持たないため元の絶対高度は復元せず、不透明な素材島ごとに平均0.5の 相対高さを作ります。出力は通常のImageなので、レベル補正・手直し・Surface化ができます。

使い方のポイント

  • 定番は image_load → tangent_normal_map → normal_to_relative_height → image_to_surface(height_map) → surface_rebuild_normal。最初のadapterで素材配布元の OpenGL/DirectX規約を必ず指定する
  • 「元の法線強度」は法線作成時の値に合わせる。分からない時は2から始め、復元結果が 深すぎるなら3〜4へ、浅すぎるなら1前後へ動かす
  • 「高さの倍率」は復元後の見た目調整。布・肌は0.5〜1、石・浮き彫りは1〜2が目安。 先に元の法線強度を合わせ、最後にこちらで高低差を整える
  • シームレスタイルだけ左右/上下ループをオンにする。通常のスプライトでオンにすると、 本来別の端を無理につないで形が平らになることがある
  • 透明領域は別の素材島として積分しない。離れた複数パーツがあっても、それぞれの平均面が 0.5になるため、背景を横切る不自然な傾斜が入りにくい

よくある失敗

  • 出っ張りが凹みに見える: tangent_normal_mapのOpenGL/DirectX選択が逆。 高さ倍率でごまかさず、まずY規約を直す
  • 元の高さと完全一致しない: 仕様です。法線には絶対高度と一定オフセットがなく、急な崖や 飽和した法線から元の段差量も一意に戻せない。形の傾きが合うことを照明で確認する
  • 高さが白/黒に張り付く: 高さの倍率を下げるか、元の法線強度を上げる。 0.5付近の階調が残る設定の方が後段で編集しやすい
  • Surfaceのnormal_mapを直接adapterへ入れた: Surface法線はビュー空間で、外部素材の タンジェント空間法線とは意味が違う。通常は外部のノーマル画像を直接読み込んで使う

関連ノード

  • tangent_normal_map — OpenGL/DirectX規約を型に持たせる必須の前段
  • image_to_surface — 復元高さをSurfaceへ入れる
  • surface_rebuild_normal — 高さ編集後に整合する法線を作り直す
  • surface_curvature — 復元した凹凸から曲率を生成する
ノード一覧に戻る