ノーマルマップのベイクとは、ハイポリゴンモデルの持つ詳細な表面の凹凸情報を、画像データ(ノーマルマップ)として抽出し、それをローポリゴンモデルに適用する技術です。これで、ローポリゴンモデルがまるでハイポリゴンモデルのように、リアルな陰影やディテールを持てるようになります。ゲームやリアルタイムレンダリングで非常に重要な最適化手法です。
-
モデルとマテリアルの準備:
ハイポリゴンモデルと、リトポロジーによって作成したローポリゴンモデルを同じ位置に配置します。ローポリゴンモデルは、ハイポリゴンモデルの形状を内包するように少しだけ大きくしておくと、ベイク時のエラーが少なくなります。
ローポリゴンモデルには、ノーマルマップを適用するための新しいマテリアルを設定し、ノードエディタで「画像テクスチャ」ノードを追加し、新規画像を作成します(この画像がベイク後のノーマルマップになります)。この画像ノードは、どの入力にも接続せず、アクティブな状態にしておきます。
-
ベイク設定:
レンダープロパティ(カメラのアイコン📷)の「ベイク」セクションを展開します。
ベイクタイプ (Bake Type) を「ノーマル」に設定します。
「選択→アクティブ (Selected to Active)」にチェックを入れます。これは、選択している複数のオブジェクトからアクティブなオブジェクトへベイクするという意味です。
「エクストルージョン (Extrusion)」や「マックスレイディスタンス (Max Ray Distance)」の値を調整します。これにより、ハイポリモデルからローポリモデルへ情報を投影する距離を設定します。モデルの形状に合わせて適切な値を設定しないと、ベイクエラー(黒い部分や歪み)が発生します。
-
ベイクの実行:
まずハイポリゴンモデルをShiftキーを押しながら選択し、次にローポリゴンモデルを選択します(ローポリモデルがアクティブな状態になります)。
ベイクパネル下部の「ベイク (Bake)」ボタンをクリックします。
ベイクが完了すると、ローポリゴンモデルのマテリアルに設定した「画像テクスチャ」ノードに、ノーマルマップが焼き付けられます。
-
ノーマルマップの適用:
ノードエディタに戻り、ノーマルマップを読み込んだ「画像テクスチャ」ノードと「プリンシプルBSDF」ノードの間に「ノーマルマップ」ノードを追加します。
「画像テクスチャ」ノードの「カラー」出力を「ノーマルマップ」ノードの「カラー」入力に接続し、「ノーマルマップ」ノードの「ノーマル」出力を「プリンシプルBSDF」ノードの「ノーマル」入力に接続します。
これで、ローポリゴンモデルにハイポリゴンモデルのディテールが再現されます。