Version: Unity 6.0 (6000.0)
言語 : 日本語
ベイクの最適化
Enlighten Realtime Global Illumination でランタイム時にライトマップを作成する

Lighting Settings アセットのライトマップ設定のリファレンス

その他のすべての Lighting Settings については、Lighting Settings アセットを参照してください。

プロパティ 説明
Lightmapper シーン内のライトマップを計算する際にどの内部ライティングの計算方法を使用するのかを指定します。これで HDRP がモーションベクトルをレンダリングできるようになります。オブジェクトモーションベクトルを有効にする場合は、デフォルトにより、新しいメッシュレンダラーがオブジェクトモーションベクトルを書きますので、注意してください。この動作を変更するには、メッシュレンダラーを選択し、Inspector で Motion Vectors プロパティーの値を変更します。
!


デフォルト値は Progressive CPU です。
Importance Sampling 環境の多重重点的サンプリングを使用する場合は、このプロパティを有効にします。通常、ライトマップの生成時の収束速度が向上するものの、特定の低周波の環境ではノイズが大きくなる可能性がある。これはデフォルトで無効になっています。
Direct Samples 各テクセルからショットされたサンプル (パス) の数。この設定は、プログレッシブライトマッパーが直接ライティングの計算に使用するサンプル数を制御します。スライダーを動かしてライトマップとライトプローブの直接ライティングの品質を向上させることができますが、ベイク時間は長くなります。スライダーは 2 の累乗にのみ設定できます。デフォルトの最大値は 1024 ですが、スライダーの横のフィールドに新しい値を入力すると、最大値を 230 まで変更することができます。
Indirect Samples 各テクセルからショットされたサンプル (パス) の数。この設定は、プログレッシブライトマッパーが間接ライティングの計算に使用するサンプル数を制御します。一部のシーン、特に屋外のシーンでは 128 サンプルで十分です。エミッシブジオメトリのある屋内シーンでは、ノイズ量が許容できるまで値を増やしてください。スライダーを動かしてライトマップの直接ライティングの品質を向上させることができますが、ベイク時間は長くなります。スライダーは 2 の累乗にのみ設定できます。デフォルトの最大値は 8192 ですが、スライダーの横のフィールドに新しい値を入力すると、最大値を 230 まで変更することができます。
Environment Samples Environment Samples プロパティは、Unity がライトを直接集めるためにスカイボックスに向けて発射する環境レイの総数を決定します。Unity は、コンテキストに応じてライトマップテクセルまたはライトプローブの位置からこれらのレイを発射します。デフォルト値は 256 です。値を大きくすると、より滑らかな結果が得られますが、ベイク時間が長くなります。スライダーは 2 の累乗にのみ設定できます。最小値は 1 で最大値は 2048 です。

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

デフォルト値は 2. 範囲: 0 - 100。

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

バウンスごとに、シーンのベイクに必要な計算リソースが増加します。屋内のシーンでは反射の値を大きくし、屋外のシーンや明るい面が多いシーンでは反射の値を小さくします。

Filtering Progressive Lightmapper が、ノイズを制限するために、ライトマップにポストプロセスを適用する方法を設定します。ライトマップのポストプロセスでは、ライトマップは DirectIndirectAmbient Occlusion のターゲットに分割されます。Unity はそれぞれのターゲットにポストプロセスを適用してから、それらを 1 つのライトマップに合成します。

- Direct: ライトからセンサー (通常はカメラ) へ直接到達するライト。
- Indirect: ライトからセンサーへ間接的に到達するライト。これは最も一般的なものとしては、他のゲームオブジェクトに反射するライトに当てはまります。
- Ambient Occlusion: ライティングシステムが計算するあらゆるアンビエントライト。
None ライトマップにフィルターやノイズ除去を使用しない場合に、選択します。 Auto ライトマップのポストプロセスにプラットフォーム依存のプリセットを使用する場合に、選択します。
開発マシンが OptiX (AI によって加速される NVIDIA のノイズ除去 OptiX) の実行要件を満たしている場合、Progressive Lightmapper はノイズ除去で、すべてのターゲットに対して 1 テクセルの半径のガウシアンフィルターを使用します。
開発マシンが OptiX を実行できない場合、Progressive Lightmapper は OpenImageDenoise に戻ります。
Advanced それぞれのタイプのライトマップターゲットに対して手動でオプションを設定するには、Advanced を選択します。ターゲットのタイプは、DirectIndirectAmbient Occlusion です。詳細は、後述の高度なフィルタリング設定を参照してください。
Lightmap Resolution ライトマップに使用する、ユニットごとのテクセル数を指定します。この値を増やすと、ライトマップの品質は向上しますが、ベイク時間も長くなります。テクセル数によってライトマップの高さと幅の両方が決定されるため、この値を 2 倍にすると、テクセル数は 4 倍になります。Lighting ウィンドウの統計エリアにある Occupied texels 数を参照してください。
Lightmap Padding ベイクしたライトマップにおける別々の形状の間の区切り (テクセル単位) を決定します。デフォルトは 2 です。
Max Lightmap Size 含まれている個々のゲームオブジェクトの離れた領域を合併する、完全なライトマップテクスチャのサイズ (ピクセル単位) を指定します。デフォルト値は 1024 です。
Lightmap compression エディターがライトマップに使用する圧縮のレベル。
- None: ライトマップを圧縮しません。
- Low Quality: Normal Quality よりもメモリとストレージの使用量が少なくて済む場合がありますが、視覚的なアーティファクトが発生する可能性もあります。
- Normal Quality: メモリ使用量と視覚的な品質のてきせつなバランスを維持します。
- High Quality: Normal Quality よりも多くのメモリとストレージが必要になりますが、視覚的にはより優れた結果が得られます。
Ambient Occlusion ベイクしたアンビエントオクルージョンのサーフェスの相対明度を制御します。.これは、ライティングのベイクに使用しているライトマッパーによって計算された間接光にのみ適用されます。このプロパティはデフォルトで有効になっています。Ambient Occlusion が有効になっていると、Max Distance、Indirect Contribution、Direct Contribution の 3 つの設定が表示されます。3 つの設定すべてにおいて、値が高いほど、オクルージョンされた領域と完全に照らされた領域のコントラストが大きくなります。
Max Distance オブジェクトにオクルージョンを適用するかどうかを判断するために、ライティングシステムがレイを投射する距離を指定します。指定する値が大きいほど、長いレイが生成され、ライトマップにより多くのシャドウが生成されます。指定する値が小さいほど、短いレイが生成され、オブジェクトどうしが互いに非常に近い場合にのみシャドウが生成されます。0 の値を指定すると、最大距離がなく無限に長いレイがキャストされます。デフォルト値は 1 です。
Indirect Contribution 最終的なライトマップのオブジェクトから反射、放出される間接的なアンビエントライトの明度をスケールします。これは 0 から 10 までの値です。初期値は 1 です。1 未満の値にすると強度が下がり、1 より大きい値にすると強度が上がります。
Direct Contribution 直接光の明度をスケールします。これは 0 から 10 までの値です。初期値は 0 です。指定する値を大きくすると、エディターが直接光に適用するコントラストが強くなります。
Directional Mode ライトマップが、オブジェクトのサーフェスの各位置で入ってくる主なライトに関する情報を保持できるようにします。詳細については、Directional ライトマッピングを参照してください。デフォルトモードは Directional です。
Directional Directional モードでは、入ってくるライトの主な方向に関する情報を保持するために、2 つ目のライトマップが生成されます。これによって、ディフューズ法線でマップされたマテリアルをグローバルイルミネーションシステムに使用できます。シェーダーは、レンダリング中に両方のライトマップテクスチャをサンプリングします。その結果、Directional モードでは、追加のライトマップデータ用にNon-directional モードの約 2 倍のビデオメモリが必要になります。追加の指向性テクスチャを生成すると、ベイク処理のパフォーマンスに影響します。SM2.0 ハードウェアまたは GLES2.0 を使用している場合、Directional ライトマップはデコードできません。
Non-directional Non-directional モードのライトマップには 1 つのテクスチャしかありません。その結果、ディレクショナルライトマップに比べて、必要なビデオメモリとストレージが少なくて済み、シェーダーでのデコードも速くなります。これらの最適化を行うと、視覚的な品質は低下します。
Indirect Intensity リアルタイムおよびベイクしたライトマップに保存されている間接光の明度を決定します。これは 0 から 5 までの値です。1 より大きい値にすると間接光の強度が上がり、1 未満の値にすると間接光の強度が下がります。デフォルト値は 1 です。
Albedo Boost サーフェス間で反射するライトの量を指定します。この値の範囲は 1 から 10 です。この値を増やすと、間接光の計算のために使用されるアルベド値が白に近づきます。デフォルト値の 1 は、物理的に正確です。
Lightmap Parameters Lightmap Parameters アセットは、ベイクしたグローバルイルミネーションに関連する設定の値を格納します。エディターには、選択可能ないくつかのデフォルトのライトマップパラメーターアセットが用意されていますが、Create New オプションを使用して、独自のライトマップパラメーターファイルを作成することもできます。詳細は、Lightmap Parameters を参照してください。デフォルト値は Default-Medium です。オプションは、Default-Medium、Default-HighResolution、Default-LowResolution、Default-VeryLowResolution です。

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

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

  • Direct:ライトからセンサー (通常はカメラ) へ直接到達するライト。
  • Indirect:ライトからセンサーへ間接的に到達するライト。これは最も一般的なものとしては、他のゲームオブジェクトに反射するライトに当てはまります。
  • Ambient Occlusion:ライティングシステムが計算するあらゆるアンビエントライト。
設定 説明
Denoiser ライトマップターゲットに使用するノイズ除去を選択します。これで HDRP がモーションベクトルをレンダリングできるようになります。オブジェクトモーションベクトルを有効にする場合は、デフォルトにより、新しいメッシュレンダラーがオブジェクトモーションベクトルを書きますので、注意してください。この動作を変更するには、メッシュレンダラーを選択し、Inspector で Motion Vectors プロパティーの値を変更します。
!

- Optix:NVIDIA Optix は、AI によって加速されるノイズ除去で、ベイクしたライトマップのノイズを削減します。NVIDIA GeForce、Quadro、Maxwell またはそれ以降の世代のアーキテクチャを搭載した Tesla GPU が必要で、バージョン R495.89 以降のドライバーを使用します。Optix は Windows でのみサポートされています。
- OpenImageDenoise:Intel’s Open Image Denoise は、AI によって加速されるノイズ除去で、ベイクしたライトマップのノイズを削減します。
- None:ノイズ除去を使用しません。
フィルター ライトマップターゲットに使用するフィルターを選択します。

- Gaussian:ライトマップターゲットで、ガウシアンフィルターを使用します。ガウシアンフィルターは、ライトマップにバイラテラルガウシアンフィルターを適用します。これにより、ライトマップがぼやけ、目に見えるノイズが減少します。
- A-Trous:ライトマップターゲットに A-Trous フィルターを使用します。A-Trous フィルターは、ライトマップの目に見えるノイズを取り除き、ぼかしの量を最小限に抑えます。
- None:ライトマップターゲットのすべてのフィルタリングを無効にします。
Radius このオプションは、FilterGaussian に設定されている場合にのみ使用できます。Radius 値を使用して、ガウシアンフィルターのカーネルの半径をテクセル単位で設定します。Radius を大きくすると、ぼかしの強さが増して認識できるノイズが減少しますが、ライティングのディテールが失われる場合があります。
Sigma このオプションは、FilterA-Trous に設定されている場合にのみ使用できます。Sigma の値を使用して、ディテールを維持する量やライティングをぼかす量を調整します。Sigma の値を高くするとぼかしの強さが増し、認識できるノイズが減少しますが、ライティングのディテールが失われる場合があります。

Statistics

Generate Lighting ボタンの下にあるパネルには、ライトマッピングに関する統計が表示され、以下の情報が示されます。

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

ETA

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

ベイクの最適化
Enlighten Realtime Global Illumination でランタイム時にライトマップを作成する