3
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

UnityのBaked Lightingまとめ

Posted at

前回はRealtime Lightingでの影の品質を調整する方法をピックアップしました

しかし影の品質を簡単に上げるならもっと簡単な方法があります

今回はBaked Lightingをまとめてみました

sample.png

↑↑サンプルシーン、ライティングはBakeを使用

Baked Lightingとは

事前にライティング結果をテクスチャに書き込んでおく(ライトマップ)
実行時にこのライトマップを参照することで、軽量にライティングを行うことができる

何を焼くか

太陽光の影だけでない
赤い物体の反射光は周りに影響を及ぼす。
赤い物体と青の物体の周りは混ざって紫になる

太陽光の光を直接光
周りの物体の反射光を間接光
間接光.png
↑↑右の青い壁が青い間接光を放って床を青くしている

これに環境光(Skyboxなどライト以外の影響を受けたもの)を加えたものを
大域照明(Global Illumination/GI) と呼びます

Baked LightingのライトマップにはこのGIがすべて書き込まれます

sample_baked_lightmap.png

Unityの左上メニューから「Baked Lightmap」にすると
Bakeされたライトマップが確認できるので便利です

GIとは

Bakeはどうやってるの?

Bakeの技術的なロジックは意外と普通です

Bake時に各ピクセルからランダムにRayを飛ばし、光源にたどり着いたらその光源の影響を受けます
オプションで直接光のサンプル数、間接光のサンプル数、光が跳ね返る回数、が指定でき、
その設定で光をシミュレーションしてライティング結果を算出します

フィルタリング(Filtering

ランダムにRayを飛ばしているので、ピクセルごとに光源に辿り着く/辿り着かないが起こりムラが発生します
フィルタリング機能でこのムラを減らすことができます

アンビエントオクルージョン(Ambient Occulusion)

物質の端が少し暗くなる現象を疑似的に表現する機能です
ONにすることでリアリティが増します

UVチャート

Baked LightingにおいてUVsは重要らしい
Lightmap UVsは日陰と日向で被ってはいけないので、albedo UVsとは別に作ることになる
UVのアイランド間では距離を置くようになってるが、稀にピクセルを共有しておかしくなる。これをオーバーラップと呼ぶ
オーバーラップ確認画面で赤く表示される。ただつぶしてるときりがないので、影響度を見て無視できるものは無視したほうがいい

Bake結果のテクスチャ(ライトマップ)

ライトマップはシーンのBaked Lightingで直接光・間接光の計算結果をシーンに焼き付けたテクスチャのこと
lightmap.png

Lightmap-0_comp_light.png

マスの大きさがライトマップの解像度割り当てになってる
マスが大きいほうが情報量が少なく、マスが小さいほうがより情報量が多い
UVのアイランド間で距離を置いているのが分かる

オマケ:どのオブジェクトの影をBakeするか?

Baked Lightingは負荷軽減に大きな効果をもたらしますが
影を変えることができないので多くの制限があります

何をBakeして何をBakeしないかはよく考えましょう
多くの場合、Mixed LightingでRealtime Lightingと併用することになると思います

  • プレイヤー・敵などの移動物はもちろんBakeしない
    • 移動物の影とBaked影の帳尻を合わせるにはMixed Lightingでライトプローブを利用することになると思います
  • 草や木々は風で揺らすのでBakeしない(揺らさないのであればBake可)
  • 破壊オブジェクトの影はBakeしない(破壊しても影が残る)
  • 光源が移動する場合はBakeできない
    • 昼夜を表現したいならライトマップを差し換えるなどで代用する手も

オマケ:シャドウマップとライトマップの違いは?

名前は似てますが利用されるシーンは別々です

Unityではリアルタイムの影をレンダリングするためにシャドウマッピングと呼ばれる技術を使用しています
光線がサーフェスをヒットするまでに移動する距離の情報をシャドウマップに入力されています
これでサーフェスから光源の距離と比較すると、影になっているかがわかります
デプスマップと似ていますが視点は光源なのでこれも別物です

参考資料

3
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?