Lightコンポーネント
Bake
負荷を下げるためにライトを焼く。
まず、ゲームオブジェクトをstaticに変更することで事前計算ライティングを有効にする。
LightコンポーネントのModeをMixedかBakedにする。
シーンを再生してライトの位置を動かしたとき、
Mixedの場合、その場に光が留まりつつ、リアルタイムに移動する光も確認できる。
Bakedの場合、光は一切動かない。
SoftShadowとHardShadow
SoftShadow: リッチ(負荷高い)
HardShadow: ラフ(負荷低い)
Culling Mask
ライトを当てたいレイヤーを指定して、一部のレイヤーだけにライトが当たるようにできる
グローバルイルミネーション(GI)
https://docs.unity3d.com/jp/current/Manual/GIIntro.html
https://docs.unity3d.com/ja/current/Manual/GlobalIllumination.html
Enlightenをベースとした広域照明
参考
Introduction to Unity 5 Lighting workshop - Part 1
【Unity】Unity5のリアルタイムGI と LightProbe
Lighting Settings
Window > Lighting > Settings
GIの詳細な設定を行う
Environment Lighting
環境光を何にするか。Skybox、グラデーション、単色が選べる。
Environment Reflections
世界が何を反射しているか。
ライトプローブ
GIによる光の影響をベイクした情報を格納する
主な用途は、動的なオブジェクトに疑似ライティングを行うこと
ライトマップ :静的ゲームオブジェクトを照らす
ライトプローブ:動的なライトのゲームオブジェクトを照らす
リフレクションプローブ
https://docs.unity3d.com/jp/current/Manual/ReflectionProbes.html
https://docs.unity3d.com/jp/current/Manual/class-ReflectionProbe.html
Light > Reflection Probe
この位置なら周りの景色がこのように映るはずだよね、という情報を記録しておく
TypeをRealtimeにすることで、動的オブジェクトに対応できるようにする
Refresh ModeはOn Awakeで最初の一瞬だけ記録する。
一方、たとえば回転している壁をリアルタイムに反映したい場合は、
Refresh ModeをEvery Frameにする必要があるが負荷が高い。
Box Sizeは反射したい部分だけ適宜調整しないと、不要な部分まで反射してしまうので注意。
キャラのMetalicとSmoothnessを最大値にすると、
あたかもリアルタイムに壁の色を反射しているかのような表現ができた。
ライティングの影響を受けない
Shaderを Unlit/Texture
に変更する。
Unlit: すべてのライトとシャドウイングを完全にバイパスするレンダリング