Lumen は、次世代コンソール向けに設計された Unreal Engine 5 の完全に動的なグローバル イルミネーションおよび反射のシステムで、デフォルトのグローバル イルミネーションおよび反射システムです。Lumen は、大規模で詳細度の高い環境で、mm 単位から Km 単位までのさまざまなスケールで、無限のバウンスと間接スペキュラ反射を利用したディフューズ相互反射をレンダリングできます。
Lumen の使用を開始する
新しく作成されたプロジェクトでは、デフォルトで Lumen のグローバル イルミネーションと反射が、 Generate Mesh Distance Fields (メッシュ ディスタンス フィールドの生成 などの依存関係とともに、有効になっています。
Unreal Engine 4 から Unreal Engine 5 に変換された既存のプロジェクトでは、Lumen の機能は自動的に有効に なっていません 。これは、これらのプロジェクト内にあるライティング パスの破損や変更を防ぐためです。
Lumen は、[Project Settings (プロジェクト設定)] の [Rendering (レンダリング)] > [Dynamic Global Illumination (ダイナミック グローバル イルミネーション)] カテゴリおよび [Reflections (反射)] カテゴリで有効にすることができます。

グローバル イルミネーションおよび反射は個別に設定することができます。Lumen を有効にするには、各カテゴリで次のように設定します。
- Dynamic Global Illumination (ダイナミック グローバル イルミネーション):Lumen
- Reflection Method (反射メソッド):Lumen
有効にすると、まだ有効になっていない場合は、Generate Mesh Distance Fields プロパティが有効になります。これは、 ソフトウェア レイ トレーシング モードに必要です。エンジンを再起動する必要があります。
Lumen のグローバル イルミネーションは、 スクリーン空間グローバル イルミネーション(SSGI) および ディスタンス フィールド アンビエント オクルージョン(DFAO) に代わる機能です。また、Lumen の反射は、スクリーン空間反射に代わる機能です。
プロジェクトで Lumen を有効にすると、事前計算された静的ライトの影響が無効になり、すべてのライトマップが非表示になります。
Lumen のライティングの特徴
Lumen は、Unreal Engine に優れたダイナミック グローバル イルミネーション機能を追加します。また、Nanite、World Partition、仮想シャドウ マップなど Unreal Engine 5 に搭載されている他のサポート システムと適切に連携します。
スクリーン空間グローバル イルミネーション および レイ トレーシング グローバル イルミネーション (RTGI) などの Unreal Engine 4 の機能は、質の高いリアルタイム プロジェクトにおいては、信頼性やパフォーマンスが十分ではありませんでした。また、これらの機能は他の重要なシステムと完全には統合されておらず、エンジンのほとんどの機能を幅広くサポートすることができませんでした。
Lumen グローバル イルミネーション
Lumen グローバル イルミネーションはディフューズ間接ライティングの問題を解決します。たとえば、サーフェスからディフューズしてバウンスする光は、そのサーフェスの色を反映し、色の付いた光を他の近くのサーフェスに反射します。この効果はカラー ブリーディングと呼ばれます。シーン内のメッシュでは間接ライティングもブロックされますが、これにより、間接シャドウイングが生成されます。

Lumen は、この室内の白いペンキのような明るいディフューズ マテリアルが存在するシーンで重要となる、無限のディフューズ バウンスが提供されます。

Unreal Engine 5 の Nanite 仮想化ジオメトリ を使用すると、ジオメトリに対してこれまでにないディテールを追加することができます。Lumen は、フル解像度のシェーディングを表現できるだけでなく、リアルタイム時のパフォーマンス維持のためにはるかに低い解像度でも間接ライティングを計算できます。

スカイ ライトと Lumen
スカイ ライトは、Lumen の ファイナル ギャザー プロセスの一部として解決されます。これには、屋外ライティングよりも屋内の空間を大幅に暗くさせることができるスカイ シャドウイングも含まれており、はるかに自然なエフェクトが得られます。

Lumen は、 ライティングの透過処理 と ボリュメトリック フォグ のために、低品質のグローバル イルミネーションも提供しています。

Lumen とエミッシブ マテリアル
エミッシブ マテリアルは、Lumen のファイナル ギャザーを使用してパフォーマンスの負荷を増大させることなくライトを伝搬させることができます。ただし、ノイズ アーティファクトが発生する前にどのくらい放射領域を小さくかつ明るくできるかについては制限があります。これにより、手動で配置された光源よりも本質的に問題の解決がはるかに難しくなります。

Lumen の反射
Lumen は、マテリアルのラフネス値の全範囲で間接スペキュラまたは反射を解決できます。

ディフューズしたグローバル イルミネーションとシャドウ付きのスカイライトが、すべての反射で見られます。Lumen の反射は、以下の車のサンプルのように、クリア コート マテリアルもサポートしています。

Lumen は、以下の車の窓のサンプルのように、半透明の要素に光沢のある反射を与えます。
- ミラー反射は現在サポートされていません。

サポートされているライトのタイプとその他の機能
Lumen がサポートしている機能の概要は次のとおりです。
- ディレクショナル ライト、スカイ ライト、ポイント ライト、スポット ライト、および矩形ライトを含む、すべての ライト タイプ がサポートされています。
-
- ライト ファンクション は、ディレクショナル ライトでのみサポートされています。
- Mobility (可動性) が [Static (スタティック)] に設定されているライトはサポートされていません。静的ライトはライトマップに完全に格納されており、Lumen が有効な場合、静的ライトの影響が無効になるためです。
Lumen の設定
Lumen の設定は、[Project Settings (プロジェクト設定)] および ポストプロセス ボリュームにあります。
Lumen のプロジェクト設定
Lumen に関するまたは Lumen に影響するプロジェクト設定は、 [Engine (エンジン)] > [Rendering (レンダリング)]** セクションにあります。[Project Settings] にはプロジェクトの Lumen のすべてのデフォルト設定が含まれています。

以下は、Lumen に必要なまたは Lumen に影響するすべての設定のリストです。
プロパティ名 | 説明 |
---|---|
Global Illumination (グローバル イルミネーション) | |
Dynamic Global Illumination Method | プロジェクトで使用するダイナミック グローバル イルミネーションのタイプを選択します。 |
Reflections (反射) | |
Reflection Method | プロジェクトで使用する動的反射のタイプを選択します。 |
Lumen | |
Use Hardware Ray Tracing when available | ビデオ カード、RHI、オペレーティング システムでサポートされている場合は、Lumen 機能のハードウェア レイ トレーシングを使用します。サポートされていない場合、Lumen はソフトウェア レイ トレーシングに戻ります。ハードウェア レイ トレーシングでは、100,000 個以上のインスタンスを含むシーンの更新に多大な負荷がかかります。詳細については、「レイ トレーシング パフォーマンス ガイド」を参照してください。 |
Ray Lighting Mode | Lumen がハードウェア レイ トレーシングを使用している場合、Lumen の反射光をどのようにライティングする方法を制御します。デフォルトでは、Lumen は最高のパフォーマンスを得るために [Surface Cache (サーフェス キャッシュ)] を使用しますが、より高い品質を得るために [Hit Lighting for Reflections (反射用のライティングを当てる)] に設定することができます。 |
Software Ray Tracing Mode | シーンのレイ トレーシングを行う際に Lumen が使用するトレーシング メソッドを制御します。[Detail Tracing (詳細トレーシング)] では、最高の品質を実現するために、品質の個々のメッシュのディスタンス フィールドをトレースします。[Global Tracing (グローバル トレーシング)] は、最も迅速にトレースを行うために、グローバル ディスタンス フィールドをトレースします。 |
Hardware Ray Tracing (ハードウェア レイ トレーシング) | |
Support Hardware Ray Tracing | より高い品質結果を得るため、サポート対象のオペレーティング システム、RHI、ビデオ カードからレイ トレーシングを有効にします。 |
Software Ray Tracing (ソフトウェア レイ トレーシング) | |
Generate Mesh Distance Fields | スタティック メッシュのディスタンス フィールドをビルドするかどうか。これは、Lumen によるソフトウェア レイ トレーシング距離とディスタンス フィールド アンビエント オクルージョンに必要です。ムーバブル スカイ ライト シャドウ、ディレクショナル ライトにレイトレースしたディスタンス フィールド シャドウを実装するために使用します。この機能を有効にするとビルド時間、メモリ使用量、およびスタティック メッシュのディスク サイズが増加します。 |
Distance Field Voxel Density | メッシュのデフォルト スケールをディスタンス フィールドのボクセル サイズに変換する方法を決定します。これを変更すると、すべてのディスタンス フィールドで再ビルドが必要になります。値が大きいと、メモリがすぐに消費されます。 |
ポスト プロセス設定
ポストプロセス ボリュームには、Lumen のオーバーライドとアーティストが制御するプロパティが含まれています。この設定は、[Global Illumination] カテゴリおよび [Reflections] カテゴリにあります。

以下は、ポストプロセス ボリュームにある Lumen のすべての設定のリストです。
プロパティ名 | 説明 |
---|---|
Global Illumination (グローバル イルミネーション) | |
Lumen Scene Lighting Quality | スケールを大きくすると、Lumen シーンがより高い忠実度で計算され、ライティングが反射で表示できるようになりますが、GPU の負荷が増大します。 |
Lumen Scene Detail | Lumen シーンで表示できるインスタンスのサイズを制御します。値を大きくすると、小さなオブジェクトも確実に表示できるものの、GPU の負荷が増大します。 |
Lumen Scene View Distance | Lumen がレイ トレーシングに対して保持するシーンの最大表示距離を設定します。値を大きくするとスカイ シャドウイングやグローバル イルミネーションの有効範囲が広がりますが、GPU 負荷が増大します。 |
Final Gather Quality | Lumen のグローバル イルミネーションの品質を向上させ、レンダリングされるノイズを低減しますが、レンダリングにおける GPU の負荷が増大します。 |
Max Trace Distance | ライティングを解決するときに Lumen がトレースする最大距離を制御します。値が小さすぎると、洞窟などの広い範囲にライティングが漏れます。大きな値を設定すると、シーンのレンダリングにかかる GPU の負荷が増大します。 |
Lumen Scene Lighting Update Speed | パフォーマンスを向上させるために、Lumen シーンがライティング結果をキャッシュする量を制御します。スケールが大きいほど、ライティングの変化がより迅速に伝搬されますが、GPU の負荷が増大します。 |
Final Gather Lighting Update Speed | パフォーマンスを向上させるために、Lumen ファイナル ギャザーがライティング結果をキャッシュする量を制御します。スケールが大きいほど、ライティングの変化がより迅速に伝搬されますが、GPU の負荷が増大します。 |
Quality | サーフェス上の Lumen の反射の品質を向上させ、レンダリングされるノイズを低減しますが、レンダリングにおける GPU の負荷が増大します。 |
Ray Lighting Mode | Lumen によるハードウェア レイ トレーシング](building-virtual-worlds\lighting-and-shadows\global-illumination\lumen\TechOverview#ハードウェアレイトレーシング) を使用している場合、この設定は、反射がサーフェス キャッシュを再利用して負荷の低いライティングを行うか、ヒット ポイントでライティングを計算してより高い品質を実現するかを制御します。 |
追記
以下では、プロジェクトで Lumen 機能を使用する際に留意すべきいくつかの追加の考慮事項を説明します。
Lumen のライティングの更新速度
Lumen は、リアルタイムでの良いパフォーマンスを実現するために多くのキャッシュを使用しています。ローカル ライティングを変更した場合はすばやく反映されますが、太陽を無効にするといったグローバル ライティングの変更の場合は、反映されるまでに数秒かかることがあります。プロジェクトでは、ポストプロセス ボリューム の [Lumen Scene Lighting Update Speed (Lumen シーンのライティング更新速度)] コントロール と [Final Gather Lighting Update Speed (ファイナル ギャザー ライティング更新速度)] コントロールを使用して、この遅延に対処することができます。ただし、GPU の負荷は増大します。
プロジェクトの静的ライトを無効にする
Lumen が有効になっている場合、静的ライトから事前計算されたライティングが削除されます。[Project Setting] の [Engine] > [Rendering] セクションの[Allow Static Lighting (静的ライティングを許可)] を無効にすることで、プロジェクトで事前計算されたライティングを完全に無効化することができます。
静的ライトを無効にすると、シェーダーの順列によって発生する静的ライトのオーバーヘッドも軽減できます。また、 マテリアル アンビエント オクルージョン で Lumen グローバル イルミネーションと連携できるようになります。
静的ライトをすでに使用しているプロジェクトでは、レベルの [World Settings (ワールド セッティング)] で [Force No Precomputed Lighting (事前計算されたライティングなしを強制)] を有効にするまで、ライトマップがメモリとディスクにロードされます。その際は、ライティングを再ビルドしてレベルを保存することで、ライトマップ データを削除する必要があります。
マテリアルのアンビエント オクルージョン
Lumen のグローバル イルミネーションは、スケルタル メッシュで信頼性の高いセルフオクルージョンを提供する マテリアル アンビエント オクルージョン をサポートしています。
マテリアル アンビエント オクルージョンを Lumen と併用するには、次のように設定します。
- [Project Settings] で [Allow Static Lighting (静的ライティングを許可)] を無効にして、GBuffer にスペースを作成します。
- 出力するマテリアルを [Ambient Occlusion (アンビエント オクルージョン)] に設定します。

画面トレース (ソフトウェア レイトレーシング) のみのスケルタル メッシュ上の Lumen GI (左) とマテリアル アンビエント オクルージョン (右)
Lumen のグローバル イルミネーションは、マテリアルの ベンド法線マップ をサポートしています。ただし、これらはマテリアル アンビエント オクルージョンよりも大幅に負荷が高く、視覚的な改善はほとんどありません。
ベント法線マップを Lumen と併用するには、次のように設定します。
- プロジェクトの
DefaultEngine.ini
コンフィギュレーション ファイルの[SystemSettings]
セクションでr,GBufferDiffuseSampleOcclusion=1
を設定し、エディタを再起動します。 - Bent Normal カスタム出力ノードに出力するマテリアルを設定します。