ハイト変換

ハイトマップをノーマルマップに変換

グレースケールのハイトをタンジェント空間ノーマルへ変換。Sobel/Scharr、深度、高さ反転、Y方向を選びPNGで保存できます。

ハイト変換PNG、JPEG、WebP、BMP(50MBまで)を選択してください。
画像をローカル処理
画像をここにドロップPNG、JPEG、WebP、BMP(50MBまで)を選択してください。画像をローカル処理

確実なワークフロー

ハイト値には外部スケールが必要

ハイトマップは相対的な高さであり、外部スケールがなければ実寸を表しません。

Height gradient to RGB normal directionA grayscale height change becomes horizontal and vertical gradients, then a normalized vector encoded into RGB.1 · ハイト2 · 勾配dx + dy + level Z3 · RGB 法線normalize → 0…255
1

ScharrとSobelを目的で選ぶ

Sobelは単純なエッジ応答、Scharrは回転バランスに優れます。Clampは通常境界、Wrapは反復用ハイトだけに使います。

2

ClampとWrapが扱う境界の違い

強度は相対傾斜、レベルはZを調整しますが、明暗から実寸スケールを復元することはできません。

3

ハイトマップからノーマルマップへ変換する手順

ハイトマップからノーマルマップへ変換する前に、明るい画素を高くするか低くするか決めます。解釈が逆なら、ベクトルのチャンネルではなくInvert Heightで修正します。弱い強度から始め、縦横だけでなく斜め形状でもSobelとScharrを比較してください。単体画像にはClamp、両端が本来つながるハイトマップだけにWrapを使います。平坦部は中立の青に近く、傾斜部は滑らかに変化する状態が基準です。

4

最終マテリアルで変換を評価する

ブラウザはハイトマップからノーマルマップへの計算を確認できますが、利用先のUV、タンジェント基底、非カラー設定、ミップ、圧縮までは決定しません。PNGを法線データとして読み、対象メッシュで光を縦横に動かします。縦方向だけ凹凸が反転するならGチャンネルを確認します。UV境界だけが崩れる場合は、ハイトマップからノーマルマップへの変換をやり直す前にタンジェントと島の分割を調べます。