法線マッピングとは
3Dコンピューターグラフィックスでは、3Dモデルのディテールを必ずしもオブジェクトのジオメトリ内でモデリングしたりスカルプティングする必要はありません。それは、法線マッピングがあるからです。このテクニックは、架空のサーフェスのディテールを作成して、幾何学的な複雑度を上げずにデジタルオブジェクトのリアルさを増すために使用されます。

法線マッピングのプロセス
3Dモデリングでは、サーフェスはポリゴンで表されます。ライティングの計算は、それらのポリゴンのジオメトリにもとづいて実行されます。これは、アーティストがシェーディング技術を使用して3次元を模倣するのと同様の方法です。このアプローチは非常にうまく機能しますが、計算負荷が高くなることで、全体的なディテールのレベルが制限される可能性があります。法線マッピングは、基礎となるジオメトリを変更することなく、光とサーフェスの相互作用の方法を変更することで、効果的かつ軽量なソリューションを提供するものです。
法線マップには、サーフェスに関する情報がテクスチャ画像の形式で保存されます。法線マップでは、サーフェス法線をテクスチャにエンコードすることで、下にあるジオメトリを複雑化させることなく、表面のディテール(隆起、傷、しわなど)の外観をシミュレートできます。
法線マップは、法線マップから取得された変更後のサーフェス法線を使用してレンダリング時に計算されます。これらの計算は処理負荷が比較的低く、リアルタイムでも高いレベルのディテールを実現できるため、法線マップはビデオゲーム開発者が使用する一般的な手法となっています。
法線マッピングが現在使われている分野
一般的に言って、法線マッピングは汎用性が高いので、どのような3Dアーティストやデザイナーにとっても、ワークフローの迅速化や改善のために活用できる手法です。
法線マッピングは、シーンをリアルタイムでレンダリングする必要があるビデオゲームなど、ハードウェアの制約が非常に重要なシナリオにおいてはもちろん、コンピューターアニメーション映画、建築ビジュアライゼーション、製品設計などの用途にも活用されています。
法線マッピングはオブジェクトのカラーには影響しないので、オブジェクトのサーフェスが完全に平らではない場合や、滑らかでない場合に特に多く使用されます。大げさではなく、法線マップはほぼすべての3Dモデルに対して有効であり、使い古された革、凹凸のある木目、人間の皮膚、布地など、様々なモデルでリアルな質感を維持できる手法です。
法線マッピングによく使用される重要なツールとソフトウェアはいくつかあります。以下にその一部を紹介します。
1. 3Dモデリングソフトウェア:Blender、Maya、ZBrush、{{substance-3d-modeler}}などのツールは、法線マッピング用のモデルを作成するのに使用されます。モデリングやスカルプティング用に独自のアプローチを提供している優れたソフトウェアソリューションも数多くあります。
2. テクスチャペインティングソフトウェア:{{substance-3d-painter}}やAdobe Photoshopなどのソフトウェアは、法線マップを含むテクスチャマップを作成および編集するのに使用できます。
3. 法線マップジェネレーター:法線マップ生成ソフトウェアは、高解像度のジオメトリやテクスチャ情報から法線マップを作成するのに役立ちます。xNormal、CrazyBump、Substance 3D Designerなどのツールでは、様々な入力にもとづいて法線マップを生成できます。
4. ゲームエンジン:Unreal EngineやUnityなどのゲームエンジンには、法線マッピングのサポートが組み込まれています。これらのエンジンには、法線マップを活用するために必要なツールとレンダリング機能が備わっています。これらは、ゲーム体験の作成だけでなく、レンダリングの作成にも同様に役立ちます。
5. シェーダープログラミング言語:HLSL(High-Level Shading Language)やGLSL(OpenGL Shading Language)などのシェーダープログラミング言語を理解しておくと、法線マッピングを利用したカスタムシェーダーを作成するのに役立ちます。これらの言語を使用すると、開発者はライティングが法線マップやその他のテクスチャマップとどのように相互作用するかを定義して、驚くべき視覚効果を実現できます。
下記のリストはすべてを網羅しているわけではありませんが、法線マッピングの基礎を理解し、それをリアルタイムレンダリング環境で実装する方法を習得するための優れた出発点となります。

画像提供元:Playground Games

法線マップとバンプマップの違い
法線マップでは、RGB画像を使って明示的なサーフェス法線情報が保存され、各カラーチャンネルによって、各テクセルのサーフェス法線ベクターのX、Y、Zコンポーネントが表されます。法線マップの方が、サーフェスの方向に関する情報をより多く保存できます。法線マップでは、モデル自体のジオメトリに影響が及ぶのではなく、モデルの周囲で光がどのように相互作用するかが変更されまです。
バンプマップと比べると、法線マップでは高さの変化だけでなくサーフェスのディテールもキャプチャできるので、より正確な結果が生成できます。
法線マッピングの長所と短所
1. サーフェスのディテールがリアル: 法線マッピングでは、ジオメトリを複雑化させることなく、複雑なサーフェスのディテールを追加できます。
2. 効率的: 法線マッピングは、サーフェスのディテールを表現するためにモデルのポリゴン数を増やす手法と比べて、計算効率の高い手法です。
3. メモリ要件が低い: 法線マップでは情報をテクスチャ形式で保存するため、通常は、ジオメトリ情報を保存するのに比べてメモリ使用量が少なくて済みます。
4. 再利用性: 法線マップは様々なモデルに簡単に適用できるので、アーティストや開発者が複数のアセットでマップを再利用できます。これにより、時間と労力が節約され、成果物の最終的なサイズも小さくなります。
5. インタラクティブなライティング効果: 法線マッピングでは、ライトとモデルの相互作用が強化されるので、鏡面反射光のハイライト、シェーディングのバリエーション、より正確な反射など、ダイナミックな3Dライティング効果を生成できます。
1. ジオメトリ変更が限定的: 法線マップはサーフェスディテールの外観にしか影響せず、ジオメトリを変更することはできません。これによって作り出される錯覚は多くの場合有用ですが、実際にジオメトリを変更する必要がある場合には、他の手法が必要になることもあります。
2. 作成と編集: 法線マップは高品質に作成するのが難しく、専門的な知識とソフトウェアが必要になります。データが複雑であるという性質上、法線マップは編集も難しい場合があります。
3. テクスチャ空間の制限: 法線マップは通常はRGB画像として保存されるため、追加のテクスチャ空間が必要になります。これは全体的なメモリ使用量に影響を与える可能性があり、場合によっては慎重な最適化が必要になることがあります。
4. 接線空間の制限: 法線マップは通常、接線空間で定義されるので、モデルの向きとUV座標に依存します。そのため、UVレイアウトや方向が異なるモデルに同じ法線マップを適用すると、視覚的なアーティファクトが生じることがあります。
いくつかの制限事項はあるものの、法線マップは3Dモデルのビジュアル品質とリアリティをリアルタイムで向上させる最も効果的な手法です。法線マッピングは、パフォーマンスと視覚的忠実性のバランスを適切に維持できるので、3Dテクスチャリングとレンダリングにおいて非常に有益なツールになります。
法線マッピングをいつ利用するべきか
法線マッピングについてさらに詳しく
よくある質問
ゲームデザインにおける法線マップとはどのようなものですか?
法線マップにはいくつのチャンネルがありますか?
法線はRGB(赤、緑、青)画像を使用して作成され、画像の各カラーチャンネルは、マップの各テクセルにおけるサーフェス法線のX、Y、Z成分を表します。つまり、法線マップには3つのチャネルがあり、それぞれに正または負の値が含まれています。
- 赤のチャンネル(R)は、サーフェス法線ベクターのX成分に対応します。
- 緑のチャンネル(G)は、サーフェス法線ベクターのY成分を表します。
- 青のチャンネル(B)は、サーフェス法線ベクターのZ成分を表します。
これら3つのチャンネルを使用して、各テクセルの明示的な方向データが示されます。これは、レンダリング時に3Dモデルのライティングとシェーディングの効果を強化するために使用されます。
なぜ法線マップと呼ばれるのですか?
コンピューターグラフィックスでは、「法線」とは、特定の点でのサーフェスに対する垂直なベクター(つまり「垂線」)を指します。法線マップは、3Dモデルのサーフェス法線に関する情報を格納するため、「法線マップ」と呼ばれます。
レンダリング時に法線マップが適用されると、マップ内に保存されている情報にもとづいて3Dモデルのサーフェス法線が変更され、ライティングとシェーディング効果によって複雑なサーフェスディテールが表現されます。