このページでは、Unity のライトマッピングについて概要を説明します。ライトマッピングは、シーンのサーフェスの明るさを事前計算し、チャートやライトマップに結果を保存して後で使用するための処理です。
Unity は プログレッシブライトマッパー と呼ばれるシステムを使用しています。プログレッシブライトマッパーは、メッシュ、マテリアル、テクスチャ、ライトを考慮しながら、シーンの設定に基づいてシーンのライトマップをベイクします。ライトマッピングはレンダリングエンジンの不可欠な部分です。ライトマップが作成されると、ゲームオブジェクトは自動的にそれらを使用します。
ライトマッピング関連の特定の設定については、グローバルイルミネーション を参照してください。
Lighting ウィンドウを開くには、Window > Lighting > Settings の順に選択します。 ライトマップを適用したいメッシュが、ライトマッピングに適切な UV を持つようにしてください。これを行う最も簡単な方法は、メッシュインポート設定 を開き、Generate Lightmap UVs を有効にします。
次に、ライトマップの解像度を制御するために、Lightmapping Settings セクションに移動し、Lightmap Resolution の値を調整します。
ノート: ライトマップテクセルの使い方を理解するには、シーンビュー の小さな Shaded デバッグシーンの可視化モード を Baked Lightmap に切り替え、Show Resolution にチェックします。
ゲームオブジェクトの Mesh Renderer と Terrain コンポーネントで Lightmap Static プロパティを有効にします。これは Unity に、それらのゲームオブジェクトが移動したり変更されないように指示します。そのようにすると、Unity はそれらをライトマップに加えることができます。Mesh Renderer コンポーネントでは Scale In Lightmap パラメーターを使用して、ライトマップの静的な メッシュ または Terrain (地形) の解像度を調整することもできます。
Light Explorer でライトの設定を調整することもできます。
シーンのライトマップを生成するには、以下の手順を行います。
Lighting ウィンドウ の Scene タブの一番下にある Generate Lighting をクリックします (または、Auto Generate が有効になっていることを確認します)。
Unity エディターのステータスバーの右下にプログレスバーが表示されます。
ベイクが完了したら、ベイクしたライトマップすべてを Lighting ウィンドウの Global Maps と Object Maps タブで確認できます。
ライトマッピングが完了すると、Unity のシーンビューとゲームビューは自動的に更新されます。
メッシュの UV チャートを表示するには、Lightmap Static が有効になっているゲームオブジェクトをクリックし、Inspector ウィンドウに移動し、Object Maps タブを選択します。ここでは、異なるライトマップの表示モードを切り替えることができます。手動でライトを生成すると、Assets フォルダーに ライティングデータアセット、ベイクしたライトマップ、リフレクションプローブ が追加されます。
シーンの最終的な見た目は、ライティングの設定とベイクの設定によって異なります。ライト品質を向上させるための基本的な設定例を見てみましょう。
サンプル数 - プログレッシブライトマッパーは、ノイズを除去するために、1 本の光線から生じるカラー値を生成します。これらのカラー値はサンプルと呼ばれます。プログレッシブライトマッパーが直接ライティングと間接ライティングの計算に使用するサンプル数を制御する 2 つの設定があります。Direct Samples と Indirect Samples です。これらを見つけるには、Lighting ウィンドウ (Window > Lighting > Settings) を開き、Lightmapping Settings > Lightmapper の順に移動します。
サンプル値を高くするとノイズが減り、ライトマップの品質を向上させることができますが、ベイク時間も長くなります。以下の画像は、サンプル数が多いと、フィルタリングを使用せずにライトマップの品質が向上し、ノイズの少ない結果を生成することを示しています。
すべての 光源 に加えて、環境ライティング もグローバルイルミネーションに貢献します。デフォルトの Procedural Skybox の代わりにカスタムのスカイボックスマテリアルを割り当て、強度を調整できます。以下の画像は、シーン内で Environment Lighting の有無でライティングがどのように変化し、よりソフトな結果をもたらすかを示しています。光源は両方のシーンで同じに設定されています。Unity は アセットストアで、いくつかのカスタム HDRI アセットを提供しています。
フィルタリングを使うと、ノイズのある結果をぼかすことができます。プログレッシブライトマッパーは Gaussian と A-Trous の 2 種類のフィルタリングを提供します。 Advanced 設定を有効にすると、これらのフィルタを個別に Direct、Indirect、AmbientActlusion に適用できます。詳細は、プログレッシブライトマッパー を参照してください。
2018–03–28 限られた 編集レビュー で修正されたページ
プログレッシブライトマッパーは2018.1 で追加 NewIn20181