
3Dコンピュータグラフィックスにおいて、法線マッピングまたはDot3バンプマッピングは、凹凸の照明を偽装するために使用されるテクスチャマッピング技術であり、バンプマッピングの実装です。ポリゴンを増やさずに詳細を追加するために使用されます。[1]この技術の一般的な用途は、高ポリゴンモデルまたは高さマップから法線マップを生成することにより、低ポリゴンモデルの外観と詳細を大幅に強化することです。
法線マップは通常、通常のRGB画像として保存され、RGB コンポーネントはそれぞれ表面法線の X、Y、Z 座標に対応します。
歴史
1978 年、ジム・ブリンは、表面の法線を乱して、幾何学的に平坦な面に詳細な外観を持たせる方法について説明しました。[2] 高ポリゴン モデルから幾何学的詳細を取得するというアイデアは、Krishnamurthy と Levoy による「Fitting Smooth Surfaces to Dense Polygon Meshes」( SIGGRAPH 1996論文集) [3で紹介され、このアプローチはNURBS上の変位マップの作成に使用されました。1998 年には、高ポリゴン メッシュから低ポリゴン メッシュに法線マップを使用して詳細を転送するための重要なアイデアを示す 2 つの論文が発表されました。Cohen らによる「Appearance Preserving Simplification」(SIGGRAPH 1998) [4と、Cignoni らによる「A general method for preserving attribute values on simplified meshes」(IEEE Visualization '98) です。[5]前者は、変位ではなく表面法線をテクスチャに直接保存するというアイデアを導入しましたが、低詳細モデルを特定の制約付き簡略化アルゴリズムで生成する必要がありました。後者は、高ポリゴンメッシュと低ポリゴンメッシュを分離し、低詳細モデルの作成方法に依存しない方法で高詳細モデルの任意の属性(色、テクスチャ座標、変位など)を再現できるようにする、より単純なアプローチを提示しました。法線をテクスチャに保存することと、より一般的な作成プロセスの組み合わせは、現在利用可能なほとんどのツールで今でも使用されています。
スペース
座標軸の方向は、法線マップがエンコードされた空間によって異なります。単純な実装では、法線をオブジェクト空間にエンコードして、赤、緑、青のコンポーネントが X、Y、Z 座標に直接対応するようにします。オブジェクト空間では、座標系は一定です。
ただし、オブジェクト空間法線マップは、表面の向きが異なるため、複数のモデルで簡単に再利用することはできません。カラー テクスチャ マップは自由に再利用でき、法線マップは特定のテクスチャ マップに対応する傾向があるため、アーティストにとっては法線マップが同じプロパティを持つことが望ましいです。

法線マップの再利用は、接線空間にマップをエンコードすることで可能になります。接線空間は、モデルの表面に接するベクトル空間です。座標系は、表面全体で滑らかに変化します (テクスチャ座標に対する位置の微分に基づきます)。

接線空間法線マップは、表面から直接外を向くベクトルに対応する、主な紫色で識別できます。計算を参照してください。
接空間の計算
表面法線は、コンピュータ グラフィックスにおいて、主に鏡面反射と呼ばれる現象を模倣して照明の目的で使用されます。物体の可視画像はその表面から反射する光であるため、表面の各点から得られる光情報は、その点の接線空間で計算することができます。

3次元空間における面の各接空間には、接空間のすべてのベクトルに垂直な2つのベクトルがあります。これらのベクトルは法線ベクトルと呼ばれ、これら2つのベクトルのいずれかを選択すると、その点で面がどのように向いているかが説明されます。これは、光の情報は光線と法線ベクトルの間の入射角に依存し、光は の場合にのみ見えるためです。このような場合、法線ベクトルに沿った方向の光線の反射は次のように表されます 。
直感的に言えば、これは単に、外側から見るとオブジェクトの外側の面しか見えず、内側から見ると内側の面しか見えないということを意味します。光の情報は局所的であるため、表面全体が必ずしも方向付け可能である必要はないことに注意してください。これが、メビウスの帯やクラインの壺などの空間が方向付け不可能であるにもかかわらず、視覚化が可能である理由です。
法線はさまざまな座標系で指定できます。コンピュータグラフィックスでは、表面の接線面を基準にして法線を計算すると便利です。これは、アプリケーション内の表面がレンダリングのプロセスや骨格アニメーションなどのさまざまな変換を受けるため、これらの変換で法線ベクトル情報が保持されることが重要であるため便利です。このような変換の例には、変形、回転、せん断と拡大縮小、透視投影、[6]または細かく描かれたキャラクターの骨格アニメーションなどがあります。
コンピュータグラフィックスの目的上、表面の最も一般的な表現は三角形分割であり、その結果、ある点における接平面は、その点と交差する三角形を含む平面の間を補間することによって取得できます。同様に、接空間を持つパラメトリック表面の場合、パラメトリック化によって偏微分が得られ、これらの微分はすべての点における接空間の基底として使用できます。
法線の摂動を見つけるには、接線空間を正しく計算する必要があります。[7]ほとんどの場合、法線はモデル行列とビュー行列を適用した後にフラグメントシェーダで摂動されます[要出典]。通常、ジオメトリは法線と接線を提供します。接線は接線平面の一部であり、行列の線形部分 (上部の 3x3) で簡単に変換できます。ただし、法線は逆転置によって変換する必要があります。ほとんどのアプリケーションでは、変換されたジオメトリ (および関連する UV) にバイタンジェントを一致させたいと思います。したがって、バイタンジェントが接線に対して垂直になるように強制するのではなく、通常はバイタンジェントを接線と同じように変換することが望ましいです。tを接線、bをバイタンジェント、nを法線、M 3x3 をモデル行列の線形部分、V 3x3 をビュー行列の線形部分とします。

計算

表面のランバート(拡散) 照明を計算するには、シェーディング ポイントから光源までの単位ベクトルに、その表面の法線方向の単位ベクトルを点線で結ぶと、その表面上の光の強度が求められます。球体の多角形モデルを想像してください。表面の形状は、近似値しか得られません。モデル全体にテクスチャを適用した 3 チャンネルのビットマップを使用すると、より詳細な法線ベクトル情報をエンコードできます。ビットマップの各チャンネルは、空間次元 (X、Y、Z) に対応します。これらの空間次元は、オブジェクト空間法線マップの場合は一定の座標系を基準とし、接線空間法線マップの場合は滑らかに変化する座標系 (テクスチャ座標に対する位置の導関数に基づく) を基準とします。これにより、特に高度な照明技術と組み合わせると、モデルの表面にさらに多くの詳細が追加されます。
u、v テクスチャ座標に対応する単位法線ベクトルが法線マップにマッピングされます。ビューアから遠ざかるジオメトリのベクトルは表示されないため、ビューアに向かうベクトル (左手方向の場合は z: 0 ~ -1 ) のみが表示されます。マッピングは次のとおりです。
X: -1 ~ +1 : 赤: 0 ~ 255 Y: -1 ~ +1 : 緑: 0 ~ 255 Z: 0 ~ -1 : 青: 128 ~ 255
薄緑 薄黄色 濃いシアン 薄い青 薄い赤 ダークブルー ダークマゼンタ
- 観察者に直接向いている法線 (0,0,-1) は (128,128,255) にマップされます。したがって、観察者に直接向いているオブジェクトの部分は明るい青になります。法線マップで最も一般的な色です。
- テクスチャの右上隅 (1,1,0) を指す法線は、(255,255,128) にマップされます。したがって、オブジェクトの右上隅は通常、明るい黄色です。カラー マップの最も明るい部分です。
- テクスチャの右を指す法線 (1,0,0) は (255,128,128) にマッピングされます。したがって、オブジェクトの右端は通常は明るい赤になります。
- テクスチャの上端 (0,1,0) を指す法線は (128,255,128) にマッピングされます。したがって、オブジェクトの上端は通常は明るい緑色になります。
- テクスチャの左を指す法線 (-1,0,0) は (0,128,128) にマッピングされます。したがって、オブジェクトの左端は通常、濃いシアン色になります。
- テクスチャの下部を指す法線 (0,-1,0) は (128,0,128) にマッピングされます。したがって、オブジェクトの下端は通常、濃いマゼンタ色になります。
- テクスチャの左下隅 (-1,-1,0) を指す法線は (0,0,128) にマップされます。したがって、オブジェクトの左下隅は通常、濃い青になります。カラー マップの最も暗い部分です。
拡散照明計算のドット積計算では法線が使用されるため、{0, 0, –1} は {128, 128, 255} の値に再マップされ、法線マップで見られるような空色になります (青 (z) 座標は遠近法 (深度) 座標で、画面上の RG-xy フラット座標です)。{0.3, 0.4, –0.866} は、({0.3, 0.4, –0.866}/2+{0.5, 0.5, 0.5})*255={0.15+0.5, 0.2+0.5, -0.433+0.5}*255={0.65, 0.7, 0.067}*255={166, 179, 17} の値に再マップされます ( )。 Z座標(青チャンネル)の符号は、法線マップの法線ベクトルを目(視点またはカメラ)または光ベクトルと一致させるために反転する必要があります。負のZ値は頂点がカメラの前(カメラの後ろではなく)にあることを意味するため、この規則により、光ベクトルと法線ベクトルが一致するときに表面が最大の強度で輝くことが保証されます。[8]
ビデオゲームにおける法線マッピング
インタラクティブな法線マップのレンダリングは、もともとノースカロライナ大学チャペルヒル校で構築された並列レンダリングマシンであるPixelFlowでのみ可能でした。[要出典]その後、マルチパスレンダリングとフレームバッファ操作を使用してハイエンドのSGIワークステーションで法線マッピングを実行できるようになりました[9]。または、パレットテクスチャを使用したいくつかのトリックを使用してローエンドのPCハードウェアで実行することもできます。 しかし、パーソナルコンピュータとゲームコンソールにシェーダが登場したことで、法線マッピングは2000年代初頭に普及し、最初に実装されたゲームにはEvolva(2000)、Giants: Citizen Kabuto、Virtua Fighter 4(2001)などがあります。[10] [11]リアルタイムレンダリングでの法線マッピングの人気は、同様の効果を生み出す他の方法と比較して、品質と処理要件の比率が優れているためです。この効率性の多くは、距離インデックス付き詳細スケーリングによって可能になります。これは、特定のテクスチャの法線マップの詳細を選択的に減らす技術 (ミップマッピングを参照) であり、より遠くにある表面では、より複雑な照明シミュレーションが少なくて済むことを意味します。多くのオーサリング パイプラインでは、法線マップで拡張された低/中解像度のゲーム内モデルにベイクされた高解像度モデルを使用します。
基本的な法線マッピングは、パレット化されたテクスチャをサポートする任意のハードウェアに実装できます。法線マッピング専用のハードウェアを備えた最初のゲームコンソールは、セガのドリームキャストでした。ただし、市販のゲームでこの効果を広く使用した最初のコンソールは、マイクロソフトのXboxでした。第 6 世代のコンソールのうち、 [出典が必要] 、 PlayStation 2のGPUだけが組み込みの法線マッピングサポートを欠いていますが、PlayStation 2 ハードウェアのベクターユニットを使用してシミュレートできます。Xbox 360とPlayStation 3のゲームは法線マッピングに大きく依存しており、視差マッピングを使用する最初のゲームコンソール世代でした。Nintendo 3DS は、バイオハザード リベレーションズとメタルギアソリッド 3 スネークイーターで実証されているように、法線マッピングをサポートしていることが示されています。
参照
参考文献
- ^ 「LearnOpenGL - 法線マッピング」。learnopengl.com 。 2024年5月21日閲覧。
- ^ Blinn.しわのある表面のシミュレーション、Siggraph 1978
- ^ Krishnamurthy と Levoy、「滑らかな表面を高密度ポリゴンメッシュにフィットさせる」、SIGGRAPH 1996
- ^ Cohen 他「外観を維持した簡略化」、SIGGRAPH 1998 (PDF)
- ^ Cignoni 他「簡略化されたメッシュ上の属性値を保持するための一般的な方法」IEEE Visualization 1998 (PDF)
- ^ アケニン=メラー、トーマス;ヘインズ、エリック。ホフマン、ネイティ。ペッシェ、アンジェロ。イワニッキ、ミハウ。イレール、セバスチャン (2018)。リアルタイム レンダリング第 4 版 (第 4 版)。米国フロリダ州ボカラトン:AK Peters/CRC Press。 p. 57.ISBN 978-1-13862-700-0. 2024年8月2日閲覧。
- ^ ミケルセン、しわのある表面のシミュレーションの再考、2008 年(PDF)
- ^ 「LearnOpenGL - 法線マッピング」。learnopengl.com 。 2021年10月19日閲覧。
- ^ Heidrich と Seidel、「リアルなハードウェア アクセラレーションによるシェーディングとライティング」、Wayback Machineに 2005 年 1 月 29 日にアーカイブ、SIGGRAPH 1999 ( PDF )
- ^ 「バーチャファイター4」。セガレトロ。2023年11月30日。 2024年3月3日閲覧。
- ^ “Tecnologías gráficas en los juegos”.メリスタシオン(スペイン語)。 2012-04-18 。2024 年 3 月 3 日に取得。
外部リンク
- 法線マップチュートリアル Dot3 法線マッピングのピクセル単位のロジック
- ブラウザ内で利用できる NormalMap オンライン無料ジェネレーター
- sunandblackcat.com の法線マッピング
- Blender 法線マッピング
- 古い OpenGL 拡張機能を使用したパレット テクスチャによる法線マッピング。
- 法線マップ写真 デジタル写真を重ね合わせて手動で法線マップを作成する
- 法線マッピングの説明
- シンプルな法線マッパー オープンソースの法線マップジェネレーター
