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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

設定

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

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

Progressive CPU
Progressive GPU
Enlighten

The default value is Progressive CPU, because Enlighten Baked Global Illumination is deprecated (unlike Enlighten Realtime Global Illumination).
Prioritize View これを有効にすると、プログレッシブライトマッパーは、現在シーンビューに表示されているテクセルに変更を適用し、それから、ビューに表示されていないテクセルに変更を適用します。
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 つの反射で十分です。室内の状況で、それよりも多く必要な場合があります。
Min Bounces The minimum number of bounces you are willing for the Progressive Lightmapper to include in indirect lighting calculations.

Lower values reduce bake times, but might increase lightmap noise. To improve performance during bakes, the Lightmapper terminates light paths that contribute little to the appearance of the Scene using a technique called Russian Roulette.

Default value: 2. Range: 0–100
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.

As the range between Min Bounces and Max Bounces broadens, the amount of noise visible in your lightmaps increases.
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 テクセル半径の ガウシアンフィルターを使用します。
Advanced 各タイプのライトマップターゲットのオプションを手動で設定する場合に、Advanced を選択します。ターゲットのタイプは DirectIndirectAmbient Occlusion です。詳細については、以下の 高度なフィルタリング設定 を参照してください。

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

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

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

Optix: NVIDIA Optix は、ベイク処理されたライトマップのノイズを削減する AI 加速ノイズ消去です。4GB 以上の VRAM かつ、ドライバーバージョン 390 以上の NVIDIA GPU が必要であり、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 ライトマッパー (プレビュー版)