This is the documentation for Enlighten.

3.2. 間接光の解像度


Enlighten の仕組みで説明しているように、Enlighten は以下の処理を行うことができます。

  • シーンをクラスタと呼ばれるまとまりに分割してラジオシティを計算する
  • ライトマップおよびプローブから拡散した間接光をサンプリングする

クラスタのサイズによって、ラジオシティ解像度が定義されます。また、ライトマップ ピクセルのサイズとプローブの間隔によって、出力解像度が定義されます。実際には、2 つの解像度は一定の比率で直接変化します。これらを合わせて間接光の解像度が定義されます。

ラジオシティ解像度

出力解像度

サンプリングされたライティング

品質対コスト

間接光の品質は、シーンに対して選択されたラジオシティ解像度と出力解像度の両方に依存します。 

  • ラジオシティ解像度より小さいサーフェスから反射または照射された明るいライトの効果は失われます。
  • 出力解像度より小さい間接シャドウのディテールは失われます。

ライティング解像度を上げると、必要なクラスタ、ライトマップ ピクセル、およびプローブの数も増加します。その結果、プリコンピュートの時間が長くなり、Enlighten データが大きくなり、ランタイム ライティング更新の遅延が増加します。ライティング品質を落とさずにコストを最小化するには、ライティング解像度を慎重に選択してください。

解像度の選択

理想的なライティング解像度とは、以下のような重要な機能をキャプチャするのに過不足のない解像度です。

  • 明るい色付きの壁から反射した黄色いライト
  • 空から射し込む光を遮る窓枠によって発生する柔らかい間接シャドウ

標準的なヒューマン スケールの屋内シーンで、精度とコストのバランスを適切に取れるのは以下の解像度です。

  • ラジオシティ解像度2 メートル
  • 出力解像度:1 メートル

単一の家や街路などの小さいシーンでは、シーン全体でこの解像度を使用することが実用的である場合もあります。これより大きいワールドでは、プリコンピュート時間を適度に抑えるために、一部のエリアで解像度を制限する必要があります。

通常、開けた屋外エリアには邪魔になるオブジェクトが少ないので、これらのエリアでは品質を目に見えるほど落とすことなく解像度を下げることができます。間近で見ることがないワールドのエリアでは、間接光の解像度を大幅に低くする必要があります。

Enlighten では、ラジオシティ解像度と出力解像度の比に約 2:1 を使用したシーンで開発およびテストが行われています。

解像度の制御

多数のメッシュが含まれたシーンでのライティング解像度の管理を容易にするために、Enlightenワークフローでは、ラジオシティ解像度と出⼒解像度を定義した、⾼/中/低品質などのプリセットを提供することが望ましいです。それぞれに個別に割り当てる代わりに、事前に定義されたメッシュのグループに品質のプリセットを割り当てることで時間を短縮できます。完全な管理を可能にするには、アーティストがシーン内のメッシュごとに出力解像度をオーバーライドできるようにする必要があります。

ライトマップを使用してライティングされている静的なメッシュの場合、ターゲット ライトマップ ピクセル サイズは出力解像度によって決まります。プローブを使用してライティングされている静的なメッシュの場合、メッシュの周囲に自動的に配置されるプローブの最小間隔は出力解像度によって決まります。

Enlighten は、プローブを自動的に配置し、静的なメッシュおよび事前に位置がわかっているその他のオブジェクトにライティングを提供することで、アーティストの時間を節約できます。

プローブのサンプリング解像度

ライティング結果の精度は、Enlighten の出力解像度と、Enlighten の出力からシェーダーがサンプリングする方法の両方に依存します。

ライトマップを使用してライティングされるメッシュの場合、標準的なレンダラーは画面ピクセルごとにライトマップ テクスチャをサンプリングします。この場合、最終的なライティングの精度はライトマップの解像度のみで決まります。

プローブを使用してライティングされるメッシュの場合、同じレンダラーが近くのプローブから一度だけサンプリングし、メッシュ全体に同じサンプルを使用することがあります。メッシュが大きい場合、これによって明らかに正しくないライティングが生成される可能性があります。

Enlighten は、ピクセルごとまたはメッシュごとにプローブ ライティングをサンプリングする方法を提供しています。それぞれの方法に利点と欠点があります。

メッシュごとのサンプリング

(tick) 小さいメッシュに対しては、1 つのサンプルで許容可能なライティング精度が得られます

(tick) 少数のメッシュしかない場合のコストは低くなります

(tick) 壁の背後で近くのプローブのサンプリングすることによってライトリークを除去できます

(error) 大きいメッシュで十分なライティング品質を得るには複数のサンプルが必要です

(error) メッシュが多数ある場合、またはメッシュごとに多数のサンプリングを行う場合、サンプル 1 つあたりのコストが問題になる可能性があります

ピクセルごとのサンプリング

(tick) プローブを使用してライティングされるメッシュの数に制限はありません

(tick) 任意のサイズのメッシュに対して最大のライティング精度を提供できます

(error) プローブを使用する画面ピクセルごとの GPU コストはやや高めです

(error) 壁の背後で近くのプローブのサンプリングによってライトが漏れる可能性が高くなります