回答:
ゲーム開発で一般的に使用される法線マップには2種類あります。あなたが彼らが働くべきだと思う方法は、1つのタイプが機能する方法です(モデル空間法線マップ)が、ほとんどのゲームは別のタイプ(接線空間法線マップ)を使用します。
モデル空間法線マップ、各チャネルは、それが一緒に使用のモデルの頂点と同じ座標系を使用して、通常の正確な値を符号化します。これは、法線マップのさまざまな部分の色相が異なることを意味しますが、通常、互いに近いピクセルの色は似ています。モデル空間法線マップの例が上に表示されます(source)。
接線法線マップは通常水色です。このタイプのマップは、メッシュの表面上の各ピクセルの位置に固有の座標空間で法線を定義します。(補間された)頂点法線をZ軸として使用し、他の2つの直交ベクトル(タンジェントおよびバイタンジェントと呼ばれる)をXおよびY軸として使用します。基本的に、マップ内の法線は、頂点法線を補間することによって計算されたピクセルの法線からの「オフセット」と考えることができます。接線および両接線ベクトルも頂点データから補間され、法線マップの「上」および「左」に対応するメッシュ上の方向を決定します。質問で提供される画像は、典型的な接線空間法線マップがどのように見えるかの優れた例を提供するので、ここでは別の例を提供しません。
通常のコンポーネントは、通常(しゃれなし)の範囲です[-1, 1]
。しかし、画像内の色の成分の範囲は[0, 1]
(または[0, 255]
通常はに正規化されます[0, 1]
)。したがって、法線は、法線(0, 0, 1)
が色になるようにスケーリングおよびオフセットされ(0.5, 0.5, 1)
ます。これは法線マップに表示される水色であり、接線空間法線を使用する場合、補間された頂点法線からの偏差がないことを示します。
接線空間法線がモデル空間法線よりも優先される理由は、それらが作成しやすく、複数のメッシュに使用できるという事実によるものです。さらに、アニメーションメッシュで使用する場合、法線は常に変化するため、接線空間法線が常に使用されます。
bitangent
とbinormal
正しいです。
法線マップは、ほとんどがサーフェスの外側を指します。「深さ」方向であるXYZ法線ベクトルのZ成分の通常のマッピングと、RGB色空間のB成分へのマッピングを行うと仮定すると、ほとんどの法線ベクトルは主に青になります。
テクスチャがたとえば赤だった場合、それは法線マップがほとんど右を向いている表面であることを意味します。バンプの右端には赤味がかった色が付いているため、サンプル画像でその機能を確認できます。
赤みがかった色の完全な表面は意味をなさないでしょう。これは、完全に右側を向いている表面を示します。これは、法線マップの一部ではなく、ジオメトリでモデル化されるだけです。