This is the documentation for Enlighten.
7.12. パフォーマンス チューニング
Enlighten は、プリコンピュートの入力パラメーターにより詳細に構成でき、幅広い品質設定およびメモリ割り当て量に対応することができます。しかし、プリコンピュート パラメーターの選択を誤ると、パフォーマンスが低下します。このページでは、視覚的品質およびパフォーマンスに関するプリコンピュート パラメーターのチューニングに関する背景情報と、チューニング可能なプリコンピュート パラメーターのリストを提示します。
Enlighten の計算は、複数フレームにわたってメインとなるレンダースレッドに対し非同期で実行、またはフレームごとに固定の割り当て量で実行でき、フレームごとのレンダリング コストへの影響が無視できる程度にチューニングできます。主にプリコンピュートで生成されるデータのサイズに関して、パフォーマンスに影響を与えるパラメーターがいくつかあります。
実行時のパフォーマンスはプリコンピュートのデータ サイズと線形の関係にあり、小さいほど速くなります。これに関して最も重要な 2 つのパラメーターは、outputPixelSize
と irradBudget
です。前者は出力テクスチャのピクセル数に影響を与えるため、ラジオシティ計算を行う必要があるピクセル数にも影響します。後者は各ピクセルに格納されるフォーム ファクターの数に関係します。ここでは、割り当て量が低いということは、各ピクセルに関する計算が速くなるということを意味します。両方のパラメーターは、プリコンピュートの時間にも影響を与えます。
プリコンピュートのデータ サイズを最小化するには、シーンに適切なラジオシティ プロパティと間接ライティングの解像度を選択します。複雑なメッシュのライトマップ ピクセルの数を削減するには、プローブ ライティングまたは簡素化されたライトマップ UVを使用します。
また、システムとシステム依存関係も非常に重要な要素です。すべてが 1 つのシステムに含まれる場合、または各システムが他のすべてのシステムに依存している場合は、シーン全体ですべてのレイトレーシングなどを実行する必要があるため、プリコンピュートが遅くなります。シーンがジオメトリのローカル グループに分割されている場合、システム依存関係は近接するシステムにのみ設定できるため、プリコンピュートを局所的かつ速くすることができます。また、システム依存関係は実行時のパフォーマンスにも重要です。1 つのシステムのラジオシティ解決のためにメモリに保持するデータは、少なければ少ないほど良いです。
システムの規模について、単一の黄金律のようなものはありません。ストリーミングとジョブ システムがうまく連携するよう、データを小規模に保つようにしてください。たとえば、各システムが 1 秒未満で解決できるように、平均 1 から 2 MB のサイズのランタイム データにアクセスするシステムを自動または手動で作成できます。さらに、各システムを独立したノードでプリコンピュートし、独立したスレッドで解決することもできます。ここでも、最適な粒度と関連するオーバーヘッドがあります。
パフォーマンスに必要不可欠なもう 1 つの要素は、必要な場合にのみラジオシティ更新を行うこと、あるいは特定のヒューリスティックに基づきラジオシティ更新の時間を限定すること、またはその両方です。更新する対象、タイミング、頻度を割り出すためにスケジューラーを最適化するといったボトルネックへの対応に役立ちます。特に大きなシーンでは、ラジオシティを毎フレーム更新しない、さらにはレベルをロードした後はまったく更新しない場合があります。実際のラジオシティ更新のラウンドトリップ タイムは、入力ライティングがどれほど速く変化するかによります。レベルに雲のような常に変化する大気の効果などがある場合、レベル全体を 5 秒以内に更新した方が良いでしょう。リアルタイムの太陽の位置など、もっとゆっくりとした変化の場合、5 分のラウンドトリップ タイムが十分な速度でしょう。
動的な更新に必要なデータをアンロードしつつ (恐らく遠くのシステムだけに)、はるかに小さいライトマップ データをロードしたままにすることが望ましい場合があります。これにより、レベルの遠くのエリアのライティングを維持しつつ、動的な更新は行わないことが可能になります。
色々と試行して、ゲームと統合に最適な方法を見つけるのが重要です。
プリコンピュート パラメーターとパフォーマンスに関する意味合い
すべてのパラメーターの詳細については、プリコンピュート パラメーターをご覧ください。メモリ使用量の追跡および特定のパフォーマンスの問題を解決するための情報については、技術的トラブルシューティングをご覧ください。
パラメーター | ガイドライン |
---|---|
| これは出力ライトマップのサイズを直接制御します。線形のパラメーターであるため、 |
| Enlighten が格納し、転送できる入力ライトの解像度を制御します。 |
| Enlighten が格納するライティング環境に関するピクセルあたりのデータの量を制御します。従って、生成される Enlighten データはこの割り当て量と線形に近い形で増減します (ただし、他のメモリ オーバーヘッドがあるため完全には対応しません)。割り当て量が大きいほど、最終的な間接光の出力が詳細になります。しかし、Enlighten では対応したさらに多くのメモリと計算時間を消費します。一般的に、32 の最小割当量で許容できる結果が得られます。 |
| このパラメーターは、Enlighten がどの程度プリコンピュートされたデータを圧縮するかを制御します。推奨される値は 4 です。これより低い値では通常、メモリの使用量と実行時間が大きくなりますが、それに応じて品質が上がるわけではありません。 |
| このパラメーターは、Enlighten が潜在的なライティングのシームを平滑化する距離を制御します。この平滑化プロセスはメモリと時間を消費するため、値を小さくする必要があります。 |
| このパラメーターは、Enlighten が潜在的なライティングのシームを平滑化する角度の変化を制御します。先ほどと同様に、平滑化はメモリと時間を消費するため、値を小さくする必要があります。デフォルトは |
| このパラメーターは、Enlighten が潜在的なライティングのシームを平滑化する距離を制御します。この平滑化プロセスはメモリと時間を消費するため、値を小さくする必要があります。従って、デフォルト値は |