Unityでライトマップをベイクをする際の、目的に応じた設定方法を検証しました。
- ベイク周りの基礎知識
- 検証用のシーンを作る
- 全部リアルタイムにしたい
- 環境は完全ベイク、キャラクターはリアルタイムにしたい
- 環境はベイクだけどSpecularは入れたい
- 環境ベイクだけどSpecular入れたいし遠くの影も表現したい
- 関連
Unity2018.2.0
ベイク周りの基礎知識
この記事では実践的な設定方法のみ説明します。
ベイク周りの基礎知識については下の記事に書いているのでこちらを参照してください。
検証用のシーンを作る
まず検証用にこんなシーンを作りました。
実際のゲームでは、キャラクターを動的にして環境のオブジェクトはStaticにすることが多いかと思います。
そのため今回は猿のモデルをキャラクターであると想定してDynamicに、それ以外はStaticにしました。
また、シャドウマップのdistanceは途中で消える範囲に設定してあります。
全部リアルタイムにしたい
まずはベイクなしで、全部リアルタイム処理してみます。
設定は下記のようにします。
- LightのModeはRealtime
- Lighting SettingsのMixed LightingのBaked Global IlluminationはOFF
- (Realtime LightingのRealtime Global IlluminationはOFF)
という感じです(前節の画像と同じ設定です)。
すると、次の結果が得られます。
直接光によるSpecularは綺麗に出ていますが、
間接光が表現されないため、Diffuseは単調な仕上がりになります。
また、影もすべてリアルタイム計算なのでシャドウマップ範囲外の影は消えてしまいます。
環境は完全ベイク、キャラクターはリアルタイムにしたい
次に環境はすべてベイクにして、キャラクターだけリアルタイムで処理してみます。
設定は下記のようにします。
- LightのModeはMixed
- Lighting SettingsのMixed LightingのBaked Global IlluminationはON
- Lighting SettingsのMixed LightingのLighting ModeはSubtractive
- (Realtime LightingのRealtime Global IlluminationはOFF)
にしました。
結果はこんな感じになります。
前節のものより間接光が正確に表現され、遠くの影も表示されるようになりました。
ただしStaticなオブジェクトのSpecularは消えました。
Specularは視点に依存するため、ベイクはされません(できません)。
環境はベイクだけどSpecularは入れたい
前節ではStaticなオブジェクトからSpecularが消えてしまいました。
そのため次に、ベイクをしつつもスペキュラが表現される設定にしてみます。
- LightのModeはMixed
- Lighting SettingsのMixed LightingのBaked Global IlluminationはON
- Lighting SettingsのMixed LightingのLighting ModeはBaked Indirect
- (Realtime LightingのRealtime Global IlluminationはOFF)
というように設定しました。
これは「間接光のみベイクして直接光はリアルタイム計算する」という設定になります。
結果はこんな感じです。
間接光はベイクを行っているので前節のようにDiffuseはいい感じに表現されています。
また、直接光はライティング計算を行っているのでSpecularも出ています。
ただし、直接光をリアルタイム計算した影響でシャドウマップ範囲外の影がまた消えてしまいました。
環境ベイクだけどSpecular入れたいし遠くの影も表現したい
前節ではシャドウマップ範囲外の影が消えてしまったので、
最後に間接光のベイクを行いつつ影をちゃんと表示する設定をしてみます。
- LightのModeはMixed
- Lighting SettingsのMixed LightingのBaked Global IlluminationはON
- Lighting SettingsのMixed LightingのLighting ModeはShadowmask
- (Realtime LightingのRealtime Global IlluminationはOFF)
Lighting ModeをShadowmaskにしました。
これは「シャドウマップ範囲内の影はリアルタイム計算し、範囲外の影はベイクしたものを使う」という設定です。
結果はこんな感じになります。
SpecularもDiffuseもいい感じに表現され、遠くの影もしっかり落ちました。