ライトモード
Light Inspector には 3 つの ライトモード があります。
- Baked: ライトからの直接光と間接光をライトマップにベイクします。これは時間のかかるプロセスです。ライトを処理するためのランタイムコストはありませんが、作成されたライトマップをシーンに適用するには、わずかなコストが生じます。
- Realtime: ライトからの直接光と影はリアルタイムであるため、ライトマップにベイクされません。シーンの複雑さ、投影するライトの数、重なるライトの数などによって、ランタイムコストが高くなる可能性があります。Enlighten リアルタイムグローバルイルミネーションを有効にすると、ランタイムに間接光が更新されるため、さらにパフォーマンスコストが生じます。
- Mixed: ベイクした間接光やリアルタイムの直接光など、ベイクとリアルタイムの特徴を組み合わせたハイブリッドモードです。シーンのすべての混合ライトの動作とパフォーマンスの影響は、シーンの Lighting Mode によって異なります。
ライトのモードは、ベイクしたグローバルイルミネーションシステムが有効になっている場合にのみ関係することに注意してください。グローバルイルミネーションシステムを使用しない場合や、Enlighten リアルタイムグローバルイルミネーションシステムのみを使用する場合は、すべてのベイクしたライトと混合ライトは、Mode プロパティが Realtime に設定されているかのように動作します。
Realtime
リアルタイムライトとも呼ばれます。
Unity はリアルタイムライトのライティング計算をランタイムにフレームごとに 1 回実行します。ランタイムにリアルタイムライトのプロパティを変更し、ちらつく電球や、暗い部屋を通って運ばれるトーチなどの効果を作成できます。
リアルタイムライトは、キャラクターや移動可能なジオメトリのライティングや影付けに便利です。
リアルタイムライトの動作
- リアルタイムライトは Shadow Distance まで投影できます。
- デフォルトでは、リアルタイムライトはリアルタイムの直接光のみをシーンに与えます。ビルトインレンダーパイプラインを使用していて、プロジェクトで Enlighten リアルタイムグローバルイルミネーション を有効にすると、リアルタイムライトはリアルタイムの間接光もシーンに与えるようになります。
リアルタイムライトの制限
- リアルタイムライトのランタイム計算を実行すると、。特に複雑なシーンやローエンドのハードウェアで負担が高くなる場合があります
- リアルタイムライトは、デフォルトではシーンに直接光を与えるだけなので、影は完全に黒く表され、色の跳ね返りなどの間接光の効果はありません。これにより、シーンに不自然なライティングが発生することがあります。
Mixed
混合ライトとも呼ばれます。
混合ライトはリアルタイムライティングとベイクしたライティングの両方の要素を兼ね備えています。混合ライトを使用すると、同じ光源からの動的シャドウとベイクしたライティングを組み合わせることができます。ライトがリアルタイムの直接光とベイクした間接光を与えるようにするときにも、混合ライトを使用できます。
混合ライトを使用するには リアルタイムライト と ベイクしたライト の利点と制限をまず理解する必要があります。
混合ライトの動作
- シーンのすべての混合ライトの動作は、Lighting ウィンドウの Lighting Mode 設定によって決まります。ライティングモードによってパフォーマンス特性は大きく異なり、見た目の忠実度も異なります。詳細は、ライティングモード を参照してください。
- ランタイムに混合ライトのプロパティを変更できます。これにより、リアルタイムのライティングは更新されますが、ベイクしたライティングは更新されません。これを行う場合は、不要な視覚効果を避けるように注意してください。
混合ライトの制限
- 混合ライトのパフォーマンスコストは、ライティングモードによってかなり異なります。ただし、混合ライトはリアルタイムライティングとベイクしたライティングを必ず組み合わせるため、ランタイムの計算が完全にベイクしたライティングよりも必ず多くなり、メモリ使用量が完全なリアルタイムライティングよりも多くなります。
シーンで ベイクしたグローバルイルミネーション を無効にすると、混合ライトは Mode が Realtime に設定されているかのように動くようになります。この現象が発生すると、Light コンポーネントのインスペクターに警告が表示されます。
Baked
ベイクしたライトとも呼ばれます。
Unity エディターでベイクしたライトの計算が実行され、結果はライティングデータとしてディスクに保存されます。このプロセスはベイクと呼ばれます。ランタイムには、ベイクしたライティングデータがロードされ、シーンのライティングに使用されます。複雑な計算は事前に実行されるため、ベイクしたライトによってランタイムのシェーディングコストと影のレンダリングコストが削減されます。
ベイクしたライトは、景観など、ランタイムに変化しないものをライティングするのに便利です。
ベイクしたライトの動作
- Unity はベイクしたライトからの直接光と間接光の両方をライトマップにベイクします。ライトマップの使用方法の詳細は、ライトマッピング を参照してください。
- Unity はベイクしたライトからの直接光と間接光の両方をライトプローブにベイクします。ライトプローブの使用方法の詳細は、ライトプローブ を参照してください。
ベイクしたライトの制限
- ランタイムにベイクしたライトのプロパティを変更することはできません。
- ベイクしたライトはスペキュラーライティングに影響しません。
- 動的ゲームオブジェクトはベイクしたライトからライトや影を受けません。
シーンで ベイクしたグローバルイルミネーション を無効にすると、ベイクしたライトは Mode が Realtime に設定されているかのように動くようになります。この現象が発生すると、Light コンポーネントのインスペクターに警告が表示されます。