導入
このドキュメントでは、ライトマップとは何か、および正しい結果を得るための適切なレンダリング方法について説明します。
ライトマップとは何ですか?
ライトマップは、オブジェクトにベイクされた照明と影を保存するための専用のテクスチャファイルです。
ライトマップは、現実的な照明、影、および色滲みを効率的に実現する非常にパフォーマンス効率の良い方法です。
注意:ライトマップは拡散光のみを保存します。スペキュラーハイライトを取得するには、ダイナミックライトまたはスペキュラーエンビマップ、またはその組み合わせを使用する必要があります。
ライトマップのレンダリング
ライトマップのレンダリングは、照明情報をテクスチャファイルにベイクするプロセスです。各ソフトウェアでは、ライトマップをレンダリングする方法が異なります。
例えばBlenderの場合、正しいライトマップをベイクするには「The Lightmapper」アドオンが必要です。
ライトマップをレンダリングする際の注意点:
- ライトマップにはアルファチャンネルを含めないでください。一部のモデリングソフトウェアではライトマップにアルファチャンネルを設定できますが、最終的な画像は破損する可能性があります。
- ほとんどのモデリングソフトウェアでライトマップを生成する際、オブジェクトのディフューズ色が黒の場合、その領域のライトマップは黒になります。
- 一部のケースでは、これは色チャンネルごとに適用されます。例えば、オブジェクトのディフューズ色が赤の成分が0の場合、その領域のライトマップの赤成分は黒になります。
- この動作を回避したい場合は、拡散色に小さな非ゼロ値を設定してください。
- ライトマップ用のUVマッピングを自動展開で作成する場合、結果を確認してください。自動アルゴリズムがスペースを無駄に消費する可能性があります。
- オブジェクトを分割または結合することで、この問題を回避できる場合があります。
- ライトマップは16ビットハーフフロートRGB .exrファイル形式でレンダリングすることを推奨します。RGBAを使用しないように注意してください。この形式では背景が透明になり、望ましくない結果になります。
注意: 一部のレンダラー(Blender - Cyclesなど)はデフォルトでライトマップではなく完全なマップを生成し、正しいライトマップを生成するにはアドオンが必要になる場合があります。
完全なマップはライトマップに似たテクスチャですが、アルベド/ディフューズで着色されており、ダイナミックライトと正しく機能しません。
完全なマップは、マテリアルのベースカラーなどのプロパティがテクスチャに既に反映された状態で、マテリアルから出る光を表示します。一方、ライトマップには入ってくる光のみが含まれます。ライトマップでは、シェーダーで出る光が計算されます。
以下の画像で違いを確認できます:
ノイズの多いライトマップ
ライトマップのレンダリング時に、多くの要因により最終的なライトマップがノイズが多くなる場合があります。
改善するためのいくつかの方法があります:
- レンダリングのノイズ閾値を下げます。このオプションはレンダリング時間を延長する可能性がありますが、最終結果を大幅に改善する可能性があります。
- レンダリング時間を延長します。レンダリング時間を長くすると、最終テクスチャのノイズ量が減少します。
- デノイザーを使用します。デノイザーは画像からノイズを削除するための特定のアルゴリズムを使用します。ほとんどの3Dソフトウェアには独自のデノイザー機能があり、この目的専用のソフトウェアも存在します。
- デノイザー処理後にデータが失われないようにし、ファイル形式が変更されないことを確認してください。
- 解像度を上げます。他の2つのオプションほど効果的ではありませんが、高い解像度はより良い結果をもたらす可能性があります。
これらのライトマップは当社の多くのシェーダーと組み合わせて使用できます。最もよく使用されるのは [Common]:Shaders\PBR\PBR_IBL_Norm_Light.xshad です。
PBRシェーダーの詳細については、こちらをご覧ください。