法線マップが主に青であるのはなぜですか?


44

法線マップがランダムな色ではなく主に青であるのはなぜですか?

3Dオブジェクトの法線ベクトルは、次のようにあらゆる方向を指すことができると思います。

(1.0, 0.1, 0.5), (0.1, -0.5, 0.3), (-0.51, 0.46, -1.0) ... 

ここに画像の説明を入力してください

回答:


71

ゲーム開発で一般的に使用される法線マップには2種類あります。あなたが彼らが働くべきだと思う方法は、1つのタイプが機能する方法です(モデル空間法線マップ)が、ほとんどのゲームは別のタイプ(接線空間法線マップ)を使用します。

モデル空間の法線マップの例

モデル空間法線マップ、各チャネルは、それが一緒に使用のモデルの頂点と同じ座標系を使用して、通常の正確な値を符号化します。これは、法線マップのさまざまな部分の色相が異なることを意味しますが、通常、互いに近いピクセルの色は似ています。モデル空間法線マップの例が上に表示されます(source)。

接線法線マップは通常水色です。このタイプのマップは、メッシュの表面上の各ピクセルの位置に固有の座標空間で法線を定義します。(補間された)頂点法線をZ軸として使用し、他の2つの直交ベクトル(タンジェントおよびバイタンジェントと呼ばれる)をXおよびY軸として使用します。基本的に、マップ内の法線は、頂点法線を補間することによって計算されたピクセルの法線からの「オフセット」と考えることができます。接線および両接線ベクトルも頂点データから補間され、法線マップの「上」および「左」に対応するメッシュ上の方向を決定します。質問で提供される画像は、典型的な接線空間法線マップがどのように見えるかの優れた例を提供するので、ここでは別の例を提供しません。

通常のコンポーネントは、通常(しゃれなし)の範囲です[-1, 1]。しかし、画像内の色の成分の範囲は[0, 1](または[0, 255]通常はに正規化されます[0, 1])。したがって、法線は、法線(0, 0, 1)が色になるようにスケーリングおよびオフセットされ(0.5, 0.5, 1)ます。これは法線マップに表示される水色であり、接線空間法線を使用する場合、補間された頂点法線からの偏差がないことを示します。

接線空間法線がモデル空間法線よりも優先される理由は、それらが作成しやすく、複数のメッシュに使用できるという事実によるものです。さらに、アニメーションメッシュで使用する場合、法線は常に変化するため、接線空間法線が常に使用されます。


6
この説明が大好き-簡潔で、数学を含み、法線マップに使用されるさまざまなタイプとそれらが使用される理由を詳しく説明します。
トム 'ブルー'ピドック14

ありがとうの区別を取得するためbitangentbinormal正しいです。
イマレット14

2
@imallettはい、サーフェスには法線、タンジェント、バイタンジェントがあり、曲線にはタンジェント、法線、およびバイノーマルがあります。少なくともそれは私の理解です。
bcrist 14

8

法線マップは、ほとんどがサーフェスの外側を指します。「深さ」方向であるXYZ法線ベクトルのZ成分の通常のマッピングと、RGB色空間のB成分へのマッピングを行うと仮定すると、ほとんどの法線ベクトルは主に青になります。

テクスチャがたとえば赤だった場合、それは法線マップがほとんど右を向いている表面であることを意味します。バンプの右端には赤味がかった色が付いているため、サンプル画像でその機能を確認できます。

赤みがかった色の完全な表面は意味をなさないでしょう。これは、完全に右側を向いている表面を示します。これは、法線マップの一部ではなく、ジオメトリでモデル化されるだけです。


3
これをもう少し明確にするために、normalmapは視点からの法線ベクトルを保持しませんが、facesの視点からの法線ベクトルを保持するため、顔から法線を取得した後、これをnormalmaps-normalvector。そして、ほとんどが青である(0、0、1)ので、これは既に取得した法線ベクトルが変わらないことを意味します。(これを考える前に、あなたがそれを描く前に床にすべての面を平らに置き、次に法線マップから法線ベクトルを使用するように、これは主に上になります、その右または左の場合、メッシュに何か問題があります)。
tkausl
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.