概要
UE4のライティングについて最低限知っておくべき事をまとめました。
社内用に書いてたけど、せっかくなので公開。
Dynamic LightingとStatic Lighting
UE4のライティングをまず大きく、動的(Dynamic)なライトと静的(Static)なライトに分けます。
Dynamic Lighting
動的(Dynamic)なライトの主な目的は
- 光が直接あたった部分の色を決める
- スペキュラハイライトを生成する
- 動的な影を生成する
の3つです。
UE4ではMovableとStationaryなライトが動的なライトに当たります。
Movableはすべての計算が動的に行われるもので、一番計算負荷が高いライトになります。
Stationaryは位置や方向は固定で、明るさや色を変更できるライトです。
Stationaryは変更しても静的な影の生成に影響を与えないライトと考えるとわかりやすいかもしれません。
注意して欲しいのはスペキュラは動的光源の反射なので、動的光源が無いと生成されませんし、影の中にも生成されません。スペキュラは物体の質感を現す大きな要素なので、質感を出すためには動的光源は必須と考えて良いでしょう。
Static Lighting
静的(Static)なライトの主な目的は
- 静的な影を事前計算する
- 影の中の静的な間接光を事前計算する
- 動的なオブジェクトに与える間接光を事前計算する
の3つです。
UE4ではStaticなライトが静的なライトに当たります。
Unreal Lightmassで事前計算することで、動的に移動しない光源による影や色を事前に計算してシーンに焼き付けます。
レベルに配置されたStaticなライトとStaticなアクターの色や影は事前計算されて、低い負荷で描画することができます。
UE4のスタンダードなライト構成
- StationaryなDirectional Lightが1つ
- StationaryかStaticなSkylightが1つ
- シーン内の光源があるところにStaticかStationaryなSpot LightやPoint Lightが複数
というのが基本的な構成です。
Directional LightとSky Lightはシーン全体に影響を与えるので、原則として1つしか配置できません。複数配置すると不具合の原因になったり、ライトのコントロールがしにくかったりするので注意が必要です。
複数のDirectional Lightを切り替えて使う場合はライティングシナリオを使用しましょう。
ライティングシナリオの公式ドキュメント
Sky Lightの主な目的は空から降り注ぐ無指向性の光をシミュレートすることです。直接光が当たっている部分よりも、影の中に強く影響を与えます。Staticにした場合は影の中にだけ影響を与えます。
太陽と空は常に1つずつと考えるとDirectional LightとSky Lightが1つなのが腑に落ちるかと思います。
Spot LightやPoint Lightは基本Staticで。光の色や強さを動的に変更したり、動的な影を生成したい場合のみStationalyにします。
リフレクション
ライトとは直接関係無いですが、リフレクションにちょっとだけ触れておきます。
リフレクションとスペキュラの大きな違いは、リフレクションは影の中でも描画されることです。
まとめ
UE4のライトについて、最低限知っておくことを簡単にまとめました。影のことやライトの強さなど語るべきことは多いのですが、キリが無いので。