実際に法線マップがどのように機能するかを説明するために、まず最初に法線とは何か、リアルタイムライティングでどのように利用されるかを説明します。おそらく最も基本的な例は、各サーフェスポリゴンが、ライトに対する表面角度に従って単純に照らされるモデルです。表面の角度は、面から垂直方向に突き出た線として表現することができ、この面に対する方向 (ベクトル) が、面法線または単に法線と呼ばれます。
上の画像では、左側のシリンダーは基本的なフラットシェーディングになっていて、ポリゴンごとにその光源に対する相対的な角度で陰影がつけられています。面が平らなため、各ポリゴンのライティングはポリゴンの領域全体で一定です。ここに、メッシュのワイヤーフレームが表示された同様のシリンダーが 2 つあります。
右のモデルのポリゴン数は左のモデルと同じですが、シェーディングは滑らかに見えます。ポリゴン間のライティングによって曲面のような外観になっています。なぜでしょうか。理由は、ライトの反射に使用される各ポイントの面法線がポリゴンの幅全体で徐々に変化するため、ライトはサーフェス上の任意のポイントに対して、実際のフラットな定数ポリゴンではなく、面がカーブしているかのように反射するためです。
平面図で表すと、平たんなシェーディングを使用した円柱の表面の 3 つのポリゴンは以下のようになります。
面法線はオレンジ色の矢印で表されています。これらは、ライトがサーフェスでどのように反射するかを計算するために使用される値です。面法線が同じ方向を指しているため、各ポリゴンの長さ全体でライトが同じように反応することがわかります。これにより “フラットシェーディング” が得られ、そのため左のシリンダーのポリゴンでハードエッジが見られます。
一方、スムーズシェーディングを使用した円柱では、ポリゴンの面の各地点で面法線が変化します。
法線の方向は、平たんなポリゴンの表面で徐々に変化するため、表面を横切るシェーディングによって滑らかなカーブの印象が得られます (緑の線で表現されています)。これはメッシュの実際のポリゴンの性質には影響せず、平たんな表面でのライティングの計算方法のみに影響します。この見かけの曲面は実際には存在せず、斜めの角度から見ると平面ポリゴンの真の性質が分かりますが、ほとんどの視野角からは、シリンダーに滑らかな曲面があるように見えます。
この基本的なスムーズシェーディングを使うと、法線の方向を決めるデータは頂点ごとでしか保存されないため、表面の全体で値を変更すると、ある頂点から次の頂点に内挿されます。以下の表では、赤い矢印が頂点ごとに保存された法線の方向を表し、オレンジの矢印は、ポリゴンの領域全体にわたって内挿された法線の方向の例を示しています。