Version: 2023.1
言語: 日本語
ライトマッピング
プログレッシブ GPU ライトマッパー (プレビュー版)

プログレッシブライトマッパー

プログレッシブライトマッパーはパストレーシングに基づく高速のライトマッパーシステムで、エディターで段階的に更新されるベイクしたライトマップとライトプローブを提供します。これは、面積と角度の誤差が小さく重複しない UV を必要とし、チャート間に十分なパディングを必要とします。

プログレッシブライトマッパーは短い準備手順でジオメトリとインスタンスの更新を処理し、G バッファとチャートマスクを生成します。その後、すぐに出力して経時的に段階的に精錬し、大幅に改善されたインタラクティブなライティングワークフローを可能にします。さらに、プログレッシブライトマッパーはベイクしている間に予定時間を提示するため、ベイク時間の予測がずっと容易になりました。

プログレッシブライトマッパーは、アップサンプリング手法や放射キャッシュやその他のグローバルデータ構造に頼ることなく、ライトマップの解像度 (個々のテクセルごとに) でグローバルイルミネーション (GI) をベイクします。これによりプログレッシブマッパーはしっかりと安定し、ライトマップの選択した部分をベイクすることができます。これにより、シーンをテストしイテレーションを行う早さが増します。

In Development - Progressive Lightmapper (YouTube) のビデオは、インタラクティブなワークフローを詳しく紹介しています。

プログレッシブ CPU ライトマッパーとプログレッシブ GPU ライトマッパー (プレビュー)

プログレッシブライトマッパーに対して 2 つのバックエンドから選択できます。プログレッシブ CPU ライトマッパーのバックエンドは、コンピューターの CPU とシステム RAM を使用するプログレッシブライトマッパーのバックエンドです。プログレッシブ GPU ライトマッパーは、コンピューターの GPU と VRAM を使用するプログレッシブライトマッパーのバックエンドです。

プログレッシブ GPU ライトマッパーは開発中のプレビュー機能であり、変更される可能性があります。プログレッシブ GPU ライトマッパーバックエンドについては、プログレッシブ GPU ライトマッパー (プレビュー) を参照してください。

レンダリングパイプラインのサポート

レンダーパイプライン全体のプログレッシブライトマッパーのサポートについては、レンダーパイプライン機能比較 を参照してください。

プラットフォームの互換性

アップルシリコンバージョンの Unity エディターは、CPU プログレッシブライトマッパーと互換性がありません。ただし GPU プログレッシブライトマッパー と互換性があります。

プログレッシブライトマッパーの使用

プログレッシブライトマッパーを使用するには、以下を行います。

  1. Window > Rendering > Lighting の順に選択します。
  2. Lightmapping Settings に移動します。
  3. LightmapperProgressive CPUProgressive GPU に設定します。

LightmapEditorSettingsLightmapping API を使用して、このウィンドウで使用可能な多くの機能をスクリプト経由で実行できます。

設定

This page lists settings specific to the Progressive Lightmapper. For all other lighting settings, see Lighting Settings Asset.

項目 説明
Lightmapper Use this to specify which internal lighting calculation software to use to calculate lightmaps in the Scene. The options are:


The default value is Progressive CPU.
Progressive Updates これを有効にすると、プログレッシブライトマッパーは、現在シーンビューに表示されているテクセルに変更を適用し、それから、ビューに表示されていないテクセルに変更を適用します。
Importance Sampling これを有効にすると、環境をサンプリングするのに多重重点的サンプリングを使用するかどうかを指定します。通常、これはライトマップを生成するときの収束を早めますが、ある低周波数環境ではノイズの多い結果になる可能性があります。この機能は、デフォルトでは無効になっています。
Direct Samples The number of samples (paths) shot from each texel. This setting controls the number of samples that the Progressive Lightmapper uses for direct lighting calculations. Move the slider to improve the quality of direct lighting in lightmaps and Light Probes, at the cost of longer bake times. You can only set the slider to powers of 2. The default maximum value is 1024, but you can change the maximum by typing a new value into the field next to the slider, up to a limit of 230
Indirect Samples The number of samples (paths) shot from each texel. This setting controls the number of samples that the Progressive Lightmapper uses for indirect lighting calculations. For some Scenes, especially outdoor Scenes, 128 samples should be enough. For indoor Scenes with emissive geometry, increase the value until you see the amount of noise is acceptable. Move the slider to improve the quality of indirect lighting in lightmaps, at the cost of longer bake times. You can only set the slider to powers of 2. The default maximum value is 8192, but you can change the maximum by typing a new value into the field next to the slider, up to a limit of 230
Environment Samples The Environment Samples property determines the total number of environment rays that Unity fires toward the skybox to gather light directly. Unity fires these rays from the lightmap texel or light probe position depending on the context. The default value is 256. Higher values might yield smoother results, but at the cost of increased bake times. You can only set the slider to powers of 2, with a minimum of 1 and a maximum of 2048.

In Scenes with HDR skyboxes, more samples are often needed to reduce noise in the final lightmap or probe. Scenes with skyboxes that include bright singularities (such as the sun) or high-frequency details with significant contrast (such as backlit clouds) also benefit from a higher number of samples.
Light Probe Sample Multiplier サンプル数の乗数としてライトプローブに使用するサンプル数を制御します。値を大きくすると、ライトプローブの品質が向上しますが、ベイクにより長く時間がかかります。この機能を使用可能にするには、Project Settings > Editor の順に移動し、Use legacy Light Probe sample counts (古いライトプローブのサンプル数を使用する) を無効にします。デフォルトの値は 4 です。
Bounces この値を使用して、パスを追跡するときの間接的な反射の数を指定します。大抵のシーンで 2 つの反射で十分です。室内の状況で、それよりも多く必要な場合があります。
Max Bounces The maximum number of bounces you want the Progressive Lightmapper to include in indirect lighting calculations.

Default value: 2. Range: 0 - 100.

Values of up to 10 are suitable for most Scenes. Values higher than 10 might lead to significantly longer bake times.

Each bounce increases the computational resources needed to bake your scene. Use higher bounce values for indoor Scenes, and lower bounce values for outdoor Scenes and those with many bright surfaces.

Filtering プログレッシブライトマッパーがライトマップにポストプロセスをライトマップに適用して、ノイズを制限する方法を設定します。ライトマップのポストプロセスの場合、ライトマップは DirectIndirectAmbient Occlusion のターゲットに分割され、Unity はポストプロセスを個別に適用してから、それらを 1 つのライトマップに合成します。

- Direct: ライトからセンサー (通常はカメラ) に直接到達するライト。
- Indirect: ライトからセンサー (通常はカメラ) に間接的に到達するライト。これは、他のゲームオブジェクトに反射するライトに最も一般的に当てはまります。
- Ambient Occlusion: ライティングシステムが計算するアンビエントライト。
圧縮なし ライトマップにフィルターやノイズ除去を使用しない場合に選択します。
Auto ライトマップのポストプロセスにプラットフォーム依存のプリセットを使用する場合に選択します。
開発マシンが OptiX (NVIDIA OptiX AI-Accelerated Denoiser を実行するための要件を満たす場合、プログレッシブライトマッパーは、すべてのターゲットに対して半径 1 テクセルの ガウシアン (Gaussian) フィルターを備えたノイズ除去を使用します。
開発マシンが OptiX を実行できない場合、プログレッシブライトマッパーは、Direct に 1 テクセル半径、Indirect に 5 テクセル半径、Ambient Occlusion に 2 テクセル半径の ガウシアンフィルターを使用します。
開発マシンで OptiX を実行できない場合、プログレッシブライトマッパーは OpenImageDenoise にフォールバックします。
Advanced 各タイプのライトマップターゲットのオプションを手動で設定する場合に、Advanced を選択します。ターゲットのタイプは DirectIndirectAmbient Occlusion です。詳細については、以下の 高度なフィルタリング設定 を参照してください。

高度なフィルタリング設定

FilteringAdvanced に設定し、ライトマップターゲットのタイプごとにオプションを手動で設定します。対象となるタイプは以下のとおりです。

  • Direct: ライトからセンサー (通常はカメラ) に直接到達するライト。
  • Indirect: ライトからセンサーに間接的に到達するライト。他のゲームオブジェクトに反射したライトなどが最も一般的な例です。
  • Ambient Occlusion: ライティングシステムが計算するあらゆる環境光。
設定 説明 
ノイズ除去 ライトマップターゲットに使用するノイズ除去を選択します。オプションは以下の通りです。

- Optix: NVIDIA Optix は、ベイク処理されたライトマップのノイズを削減する AI 加速ノイズ消去です。ドライバーバージョン R495.89 以降を使用し、Maxwell 以降の世代のアーキテクチャを備えた NVIDIA GeForce、Quadro、または Tesla GPU が必要です。Optix は Windows でのみサポートされます。
RadeonPro: RadeonPro は、ベイク処理されたライトマップのノイズを削減する AI 加速ノイズ消去です。4GB 以上の VRAM を備えた OpenCL 対応の GPU が必要です。
- OpenImageDenoise: Intel Open Image は、ベイク処理されたライトマップのノイズを削減する AI 加速ノイズ消去です。
- None: ノイズ消去を使用しません。
Filter ライトマップターゲットに使用するフィルターを選択します。
- Gaussian: ライトマップターゲットにガウシアンフィルターを使用します。ガウシアンフィルターは、ライトマップにバイラテラルガウシアンフィルターを適用します。これにより、ライトマップがぼやけ、目に見えるノイズが減少します。
- A-Trous: ライトマップターゲットに A-Trous フィルターを使用します。A-Trous フィルターは、ライトマップの目に見えるノイズを取り除き、ぼかしの量を最小限に抑えます。
- None*: ライトマップターゲットのすべてのフィルタリングを無効にします。
Radius このオプションは、FilterGaussian に設定されている場合にのみ使用できます。Radius 値を使用して、ガウシアンフィルターのカーネルの半径をテクセル単位で設定します。Radius を大きくすると、ぼかしの強さが増し認識できるノイズが減少しますが、ライティングのディテールが失われる場合があります。
Sigma このオプションは、FilterA-Trous に設定されている場合にのみ使用できます。Sigma の値を使用して、ディテールを維持する量やライティングをぼかす量を調整します。Sigma の値を高くするとぼかしの強さが増し、認識できるノイズが減少しますが、ライティングのディテールが失われる場合があります。

統計

Auto GenerateGenerate Lighting オプションの下にあるパネルには、以下を含むライトマッピングに関する統計情報が表示されます。

  • Unity が作成したライトマップの数
  • メモリ使用量: 現在のライトマッピングに必要なメモリ量。
  • Occupied Texels: ライトマップの UV 空間で占有されるテクセルの数。
  • Lightmaps in view: シーンビューのライトマップの数。
  • Lightmaps Not in view: 非表示のライトマップの数。
    • Converged: すべての計算が完了したライトマップの数。
    • Not Converged: ベイクがまだ進行中のライトマップの数。
  • Bake Performance: 1 秒あたりのレイの数。これが低い場合 (つまり、2 より小さい場合) は、一度にもっと多くのレイを処理するように設定やハードウェアを調整する必要があります。 

ベイク中

プログレッシブライトマッパーは、必要な場合に、進行中のベイクを監視し停止するためのオプションを提供します。

ETA

Unity がライトマップをベイクしている間に表示されるプログレスバーは、“完了までの予定時間” (ETA と表示されます) を提供します。これは、現在のベイクが完了するまでの推定時間 (秒) です。これにより、ベイク時間を予測することがより容易になり、現在のライティング設定でベイクする時間がどれだけかかるかがすぐにわかります。

Force Stop

手動でベイクするときは、いつでも Force Stop をクリックしてベイク処理を停止できます。これにより、満足な結果とわかったらすぐに処理を停止することができます。

デフォルトの環境ライティング寄与の無効化

Unity は、自動的に アンビエントプローブデフォルトのリフレクションプローブ を生成することで、環境ライティングがデフォルトでシーンとその中のゲームオブジェクトに影響を与えるようにします。

手動作成のライトマップとライトプローブがないシーンやゲームオブジェクトで、ライティング結果への環境ライティングの寄与を無効にするには、デフォルトのリフレクションプローブとアンビエントプローブを無効化します。詳細は SkyManager の無効化 を参照してください。

ライトマッピング
プログレッシブ GPU ライトマッパー (プレビュー版)