Subtractive モード
グローバルイルミネーション

ベイクしたライティング

ベイクしたライトは Mode プロパティーを Baked に設定した Light コンポーネント です。

Baked モードは、全機能を備えたライトよりむしろ、局所的な環境光に使用します。Unity は、ランタイム前に環境光からの照明を事前計算し、ランタイム時のライティング計算には入れません。つまり、ベイクしたライトにはランタイムの負荷がありません。

Unity はベイクしたライトから ライトマップ (静的ゲームオブジェクトを照らすため) と、ライトプローブ (動的なライトのゲームオブジェクトを照らすため) に直接的および間接的な光をベイクします。ベイクしたライトは、ダイナミックなゲームオブジェクト上であっても、スペキュラーライトを発光することはできません(詳細については、[Wikipedia:Specular highlight](https://en.wikipedia.org/wiki/Specular_highlight)を参照してください)。ベイクしたライトは、プレイヤーが行ったアクションやシーンで発生したイベントによって変化することはありません。これらは主に、シーン内のすべての照明を調整することなく、暗いエリアの明るさを増すのに使用されます。

また、ベイクしたライトは、動的ゲームオブジェクトが他の動的ゲームオブジェクトに投影できない唯一のライトの種類です。

ベイクしたライトの長所

  • 負荷を加えることなく、ライトマップで静的ゲームオブジェクトから静的ゲームオブジェクトに高品質の影を作成します。

  • 間接ライティングを提供します。

  • 静的なゲームオブジェクトのすべてのライティングをシェーダーのライトマップから収集して 1 つのテクスチャにできます。

ベイクしたライトの欠点

  • リアルタイムの直接ライティングは含まれません (つまり、スペキュラーライティングエフェクトは含まれません)。

  • 動的ゲームオブジェクトから静的ゲームオブジェクトへの影は含まれません。

  • ライトプローブを使用して、静的なゲームオブジェクトから動的ゲームオブジェクトへ低解像度の影しか作成できません。

  • 直接ライティングの情報を加えるためにライトマップがより詳細でなければならないため、ライトマップテクスチャセットのリアルタイムライティングに比べ、より高いメモリ要件が必要です。

技術詳細

ベイクしたライトの場合、カメラから表面へのパスセグメント以外は Unity はすべてのライトパスを事前計算します。ライトパスに関して詳しくは Light Modes を参照してください。

Baked モード - すべてのライトパスは事前計算されています
Baked モード - すべてのライトパスは事前計算されています

Unity はベイクした直接ライティングも事前計算します。つまり、ライトの方向情報はランタイムに Unity で使用できません。代わりに、少ないテクスチャ操作でそのシーンでベイクしたライトのすべての計算を処理します。この情報なしには、Unity はスペキュラー反射とグロッシーな反射の計算を行えません。スペキュラー反射が必要な場合は、リフレクションプローブ混合 ライト、または、リアルタイム ライトを使用します。詳しくはドキュメントの 指向性ライトマッピング を参照してください。

ベイクしたライトは、ランタイムに動的なゲームオブジェクトを照らすことはありません。動的なゲームオブジェクは ライトプローブ をとおすことを唯一の方法として、ベイクしたライトから光を受け取ることができます。これは、ベイクしたライトとランタイムに動的ゲームオブジェクト上の直接ライティングを計算する Subtractive モードの混合ライト (メインのディレクショナルライトを除く) との唯一の違いです。


Subtractive モード
グローバルイルミネーション