Version: 2022.3
言語: 日本語
ライトマッピング
プログレッシブ 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 を使用して、このウィンドウで使用可能な多くの機能をスクリプト経由で実行できます。

設定

このページでは、プログレッシブライトマッパーに特有の設定を列挙します。Enlighten ベイクしたグローバルイルミネーション (非推奨、Enlighten リアルタイムグローバルイルミネーションとは異なります) 特有の設定については、Enlighten によるベイクしたグローバルイルミネーション を参照してください。その他のすべてのライティング設定については、Lighting Settings アセット を参照してください。

項目 説明
Lightmapper シーンのライトマップの計算に使用する内部のライティングの計算ソフトウェアを指定します。ユーザーインターフェースに表示されるデフォルトオプションは以下の通りです。br/>
The default value is Progressive CPU Enlighten ベイクしたグローバルイルミネーション (2022.2 で非推奨となり、2023.1 はありません) をライトのベイク処理に使用できるようにする方法については、Enlighten ベイクしたグローバルイルミネーションを使用したライトマッピング を参照してください。
Progressive Updates これを有効にすると、プログレッシブライトマッパーは、現在シーンビューに表示されているテクセルに変更を適用し、それから、ビューに表示されていないテクセルに変更を適用します。
Multiple Importance Sampling これを有効にすると、環境をサンプリングするのに多重重点的サンプリングを使用するかどうかを指定します。通常、これはライトマップを生成するときの収束を早めますが、ある低周波数環境ではノイズの多い結果になる可能性があります。この機能は、デフォルトでは無効になっています。
Direct Samples 各テクセルからのサンプル (パス) の数。この設定は、プログレッシブライトマッパーが直接ライティングの計算に使用するサンプル数を制御します。この値を大きくすると、ライトマップの質は向上しますが、ベイク処理に要する時間が長くなります。
Indirect Samples 各テクセルからのサンプル (パス) の数。この設定は、プログレッシブライトマッパーが間接ライティングの計算に使用するサンプル数を制御します。一部のシーン、特に屋外のシーンでは、100 サンプルで十分です。エミッシブジオメトリのある屋内シーンでは、望む結果が得られるまで値を増やします。
Environment Samples Environment Samples プロパティは、Unity がライトを直接集めるためにスカイボックスに向けて発射する環境レイの総数を決定します。Unity はこれらのレイを、コンテキストに応じてライトマップテクセルまたはライトプローブの位置から発射します。デフォルト値は 500 です。値を大きくすると、よりスムーズな結果が得られる可能性がありますが、ベイク時間が長くなります。

HDR スカイボックスを使用するシーンでは、最終的なライトマップやプローブのノイズを減らすために、より多くのサンプルが必要になることがあります。また、太陽のような明るい特異点や、逆光の雲のようなコントラストの強い高周波のディテールを含むスカイボックスを持つシーンでも、サンプル数を増やすと効果的です。
Light Probe Sample Multiplier サンプル数の乗数としてライトプローブに使用するサンプル数を制御します。値を大きくすると、ライトプローブの品質が向上しますが、ベイクにより長く時間がかかります。この機能を使用可能にするには、Project Settings > Editor の順に移動し、Use legacy Light Probe sample counts (古いライトプローブのサンプル数を使用する) を無効にします。デフォルトの値は 4 です。
Bounces この値を使用して、パスを追跡するときの間接的な反射の数を指定します。大抵のシーンで 2 つの反射で十分です。室内の状況で、それよりも多く必要な場合があります。
Max Bounces プログレッシブライトマッパーが間接照明の計算に含めるバウンスの最大数

デフォルト値:2。範囲: 0–100。

ほとんどのシーンには最大 10 の値が適しています。値が 10 より大きい場合、ベイク時間が著しく長くなる可能性があります。

バウンスごとに、シーンのベイク処理に必要な計算リソースが増加します。屋内シーンには高いバウンス値を使用し、屋外シーンや明るいサーフェスが多いシーンには低いバウンス値を使用します。

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 ライトマッパー (プレビュー版)