① Height Map
白いほど高く、黒いほど低い高さ情報です。
② 法線ベクトル
高さの勾配から各点の法線 N を計算します。
③ Normal Map
法線の X,Y,Z 成分を R,G,B に保存します。
④ ライティング結果
平面ポリゴンのまま、法線だけ変えて凹凸があるように見せます。
ポイント:
Normal Map は「色のテクスチャ」ではなく、各ピクセルの法線方向を保存した画像です。
典型的には
Nx, Ny, Nz ∈ [-1, 1]
↓
R = Nx × 0.5 + 0.5
G = Ny × 0.5 + 0.5
B = Nz × 0.5 + 0.5
N = (0,0,1) → RGB ≈ (128,128,255)
となります。形状そのものを細かく分割しなくても、ライティング時の法線だけを変えることで細かな凹凸を表現できます。