ほとんどの設定では、プログレッシブ GPU ライトマッパーはプログレッシブ CPU ライトマッパーよりもはるかに高速に動作します。パフォーマンスは、選択したベイクプロファイルによって異なります。
しかし、ベイクに使用する GPU の仕様と、その GPU に割り当てられている VRAM の容量は、ライトマッパーのパフォーマンスに影響を与えます。
GPU リソースで競合する他のアプリケーションも、ベイクのパフォーマンスに影響します。ハードウェアベンダーによっては、Unity で使用可能な VRAM の量が減ると、ベイクの処理が遅くなったり、失敗したりする可能性があります。
プログレッシブ CPU ライトマッパーと同じ品質を得るには、プログレッシブ GPU ライトマッパーには最大 4 倍の間接光サンプルが必要です。プログレッシブ CPU ライトマッパーは、分岐パストレーシングと呼ばれるアプローチを使用し、各バウンスでより多くの光線を放射します。分岐パストレーシングのアプローチは、GPU には適していません。
Unity では、プログレッシブ GPU ライトマッパーがシーンをベイクするために必要なメモリ量を判断するために役立つスプレッドシートを提供しています。詳細については、プログレッシブ GPU ライトマッパーのメモリ量スプレッドシートを参照してください。
プログレッシブ GPU ライトマッパーには、ライトマッパータイリングと呼ばれる機能が含まれています。ライトマッパータイリングにより、プログレッシブ GPU ライトマッパーは、使用可能なすべての GPU メモリを使用できなくなります。代わりに、Unity は CPU に一時的なメモリを割り当て、使用可能な GPU メモリ量に一致するサイズのタイルでライティングをベイクします。Unity は、選択したベイクプロファイルに基づいてタイリングを設定します。プログレッシブ CPU ライトマッパーには、タイリング機能は含まれません。
タイリング機能がアクティブで、ライトマップアトラスの解像度が 512 px 以上の場合、タイリングなしで同じシーンをベイクするよりも、ベイク処理が遅くなる可能性があります。
macOS では、使用可能なメモリ量の判断が難しくなります。その結果、このプラットフォームでは CPU へのフォールバックが発生する可能性が高くなるため、ベイクスピードを最適化するための指示に従うのがベストプラクティスです。
ベイク時間を短縮し、ベイクが指定された GPU で利用可能な VRAM を超えてしまう事態を回避する方法がいくつかあります。
他の GPU アクセラレーションアプリケーションを閉じます。GPU アクセラレーションによる 2D 画像編集ソフトウェアや 3D モデリングソフトウェアでは VRAM を使用します。グラフィックスアクセラレーション機能をオフにするか、これらのアプリケーションを終了してください。
小型のゲームオブジェクトにはライトプローブを使用します。破片や小さな道具のようなゲームオブジェクトは、ライトマップのスペースを使いますが、シーンの見た目にはあまり貢献しない場合があります。ベイクスピードを最適化するには、これらのゲームオブジェクトのメッシュレンダラーの Contribute Global Illumination を無効にし、代わりにライトプローブでライティングします。
レンダリング用とベイク用に別々の GPU を指定します。コンピューターに複数の GPU が搭載されている場合は、1 つをレンダリング用に、1 つをベイク用に指定できます。後述の、GPU 選択の設定のセクションを参照してください。
より数の少ないアンチエイリアスサンプルを使用します。Lightmap Parameters アセットでのこの設定のデフォルト値は 8 です。これを増やすと、Unity により多くの VRAM が使用されます。ライトマップのサイズが 4096 以上の場合は、多くのコンシューマー向け GPU のメモリをすぐに超過します。
使用するサンプル (直接サンプル、間接サンプル、環境サンプル) を減らし、ノイズ除去を使用して、ライトマップの残りのノイズをクリーンアップします。
ライトマップの解像度を下げます。
2 つ以上の GPU がある場合は、シーンのレンダリング用に 1 つの GPU を指定し、ライティングのベイク用に別の GPU を指定することができます。これはシーンのレンダリングと、プログレッシブ GPU ライトマッパーを使ったべイクの両方を行うために、デフォルトの GPU に使用できる VRAM が不十分な場合に望ましいことです。
Unity がベイクに使用する GPU を変更します。