ライトマップ
一般
簡単に言うと、ライトマップ方式は次のように機能します。カメラの写角から一連のサンプルが投入されます。これらのサンプルは反射していることが多く、(サンプルが初めにスカイなどに何もぶつからない場合に最大デプス値に応じて)、ジオメトリにぶつかった時に計算されるカラーが評価されます。この結果、他のサンプルチェーンを考慮したサンプルチェーン全体がすばやく(他のどのGI方式よりも速く)計算されます(反射が多い場合でも)。計算されたカラーは、セル分割パターン(または、希望によって、後で再利用することのできるファイルとして)で保存され、プライマリの方式を使って使用することが可能になります。このセル分割パターン自体も、ライト(サンプル)を集める時に、サンプルデプスが1以上のライトマップを使います。
レンダリングされた画像は、他のGI方式のものよりもサンプルデプスが高いために、明るめになることが多くなります。これは、強度値を小さくすることで補正することができます。
この方式には、メリットとデメリットが両方あります。
メリット:
GI計算をすばやく行うことができます(とても高い拡散回数で)。
ライトマップ を保存し、ある程度再利用することができます(写角によります)。
デメリット:
光漏れが生じる可能性があります(サンプルサイズ値を小さくし、補間を使わないことで最小限に抑えることができます。 1つのポリゴンサーフェイスではなく、厚めのオブジェクトを使用してみても良いでしょう)。
設定
まず、優れたライトマップがどのようなものなのかを見てみましょう(モードを可視化にセットするとライトマップを表示することができます)。
左上と右上は、それぞれ、質の低いライトマップの例と質の高いライトマップの例です。優れたライトマップのライトは均一に進みますが、質の低いライトマップは不均一に見えます。レンダリングする時には、プライマリの方式が数多くのサンプルを使ってライトマップをサンプリングして中間値を作り出すため、それ程差は感じられません。いずれにしても、最初に計算されたライトマップの質が悪い場合、最適な設定をしたとしても、プライマリの方式によって得られるのは次善の結果となってしまいます。左下の画像がこれを表していますが、ウインドウ周辺や左のボールの下の領域にちらつきが生じているのがわかります。
プレフィルタ設定と補間方式設定には、できる限り均一なライトの分散が得られるよう、セル分割パターンを削除したりスムージングしたりするために使うことのできる機能が用意されています(両方、レンダリングがとても速く行われます)。
光漏れを防ぐには、ライトマップの最適化も参照してください。
ライトマップの質を調整する時に、レコード密度設定の次に重要なのは、 パス数(1000倍)設定です。
パス数(1000倍)値(内部で1000がかけられます)は、シーン全体で計算が必要なサンプル数を定義します。最大デプス値に対応したデプスをもつサンプルチェーンが作られます。
数が大きいほど、ライトの分散がより均一になり、レンダリング時間も長くなります(セルエレメントごとにより多くのサンプルが使われ、隣のセルのランダムなカラーの広がり(上の画像。黒い継ぎ目にサンプルが偶然ぶつかっています)が小さくなります)。
これらの値を使ってセルサイズを定義します。セルが小さいほど、詳細の部分で正確な結果を得ることができます。セルが大きすぎると、光漏れがすぐに生じ、詳細の点で全体的に正確さの欠ける結果となってしまいます。つまり、シャドウがあちらこちらで欠けてしまうのです。定義されたスケールによってサンプルサイズを絶対値(ワールドまたは相対値(スクリーン)として定義することができます。
次のオプションから選ぶことができます。
サンプルサイズ値をワールド: ワールド座標システムで絶対値として出力することができます。サンプルサイズは、おおよそのセル直径を表し、これは、遠くの方のジオメトリのセル密度が近くのジオメトリよりも高く見えるということを表します。
スクリーン: セル直径が、出力サイズの割合として定義されます。0.1の値は、10セルの幅を表します。遠くのジオメトリのセルデプスは小さくなります。
この設定には、ダイナミックにセルサイズを決定するための他の基準(例えば、値がとても小さい場合は大きめのセルを作り、球体などのジオメトリのセルは小さめとなります)を使ういくつかのアルゴリズムが影響します。
このオプションを有効にすると、とても多くの実際のライトをもつプロジェクトのレンダリングが加速します。GI計算(そして、GIのみではなく)では、光源によって照らされたサーフェイスがライトマップに直接置かれます。
シーンによって、レンダリング速度が大幅に加速されます(簡単に言うと、ライトマップ計算の間に集められた光源情報が、その後もGIのプライマリの方式で再利用されます)。QMC+LM使用時には、とても優れた結果を適度なレンダリング時間で得ることができます。
次の画像で、左は、QMC+QMC (レコード密度が8)、中央は、QMC+LM (直接照明を含む 無効)、右は、QMC+LM(直接照明を含む有効)の例です。
直接照明を含むによるレンダリングがどれ程速く、優れた効果を生み出すかということに注目してください。ライトマップのレコード密度が高い場合、明るめでより現実的な画像を作り出します。
このオプションを有効にすると、カメラ動作全体の全てのサンプルの開始点が確定されます。この機能は、カメラ動作の開始フレームと終了フレームが大きく異なり、ライトマップから写角が「見えて」いることを確認する必要がある場合に役立ちます。その後、変化のない単一の、そして安定した(ライトマップ)キャッシュを使ってアニメーションの計算が行われます。カメラが少しだけ動き、写角がそれ程変わらない場合、このオプションを有効にする必要はありません。
このオプションは、ライトマップに直接影響を与えることはありません。有効にすると、計算されたばかりのサンプルの進捗状況が計算の間に表示されます。これらは、サンプルサイズに応じてセルでまとめられ、平均化されます。
このオプションを使うと、まるでターボブーストを入れたかのような効果を得ることができます。有効にすると、ライトマップが計算され、ラジオシティマップへと変換され、これが、内部でレンダリングに使用されます。これによって、基本的に同じレベルの質を保ちつつ、レンダリング時間が大幅に縮小されます(IR+LMでもQMC+LMでも)。
デメリット: ラジオシティマップを使うと、ハードドライブとRAM上にキャッシュを保存するための大量のメモリが必要となります。そのため、複雑なプロジェクトでは問題が生じることがあります。それを防ぐために、この種のラジオシティマップで作業を行う時には、キャッシュファイルタブの自動読み込みと自動保存を有効にしないことをお勧めします。正しい設定でライトマップをレンダリングしてもすばやく行うことができます。
この設定は、ラジオシティマップの同名の設定であるマップ密度と同様に機能しますが、サンプリングがより速く行われます。つまり、ここで、テクセルサイズを調整します。
この設定は、ラジオシティマップの同名の設定であるサンプリング分割数と同様に機能しますが、サンプリングがより速く行われます。つまり、ここで、テクセルに適用する一種の「アンチエイリアシング」を調整します。
ライトマップを均一にする
プレフィルタは、不均一でムラのあるライトマップ(またはラジオシティマップを、レンダリングや次の補間のうちのいずれかに使う前に、より調和したマップへと変換します。
これは、セルごとに行われます。設定に応じて、いくつかの隣合せのセルのカラーが平均化され、セルへと適用されます。このプロセスの計算はとても速く行われ、基本的に、レンダリング時間に影響を与えることはありません。
プレフィルタは、特に、イラディアンスキャッシュのプライマリの方式と併用することによってアニメーションのちらつきを抑えることができます。ただし、ディテールが失われ、光漏れを起こす一種のぼけ効果が生じる可能性がありますので注意してください(パス数(1000倍)設定とサンプルサイズ設定を改善すると、補正することができます)。
プレフィルタオプションを有効/無効にします。
この設定を使って、周りのセルを平均化し、現時点でのセルの放射の大きさを定義します。値を大きくし過ぎると、詳細が吸収され、光漏れが生じてしまいます。
設定値が十分高い場合には、レンダリングの間、ライトマップの(またはラジオシティマップの)セルが実際に補間され、セル構造が解除されます。これによって明るさがムラなく広がります。
プレフィルタを組み合わせて使うと、さらに優れた結果を得ることができます。ただし、補間を行うには、それに応じたさらなるレンダリング時間が必要となり、それに応じて、大きな補正によって光漏れが生じることになります。
断続的なカラーグラデーション(セル)の平面補間を行うには、いくつかの方法があります。
なし: 補間は行われません(計算がとても速くなります)。光漏れの発生は最小限に抑えられますが、GIのプライマリの方式がセルを見ます。十分なプレフィルタを行うと良いでしょう。
ニアレスト: 指定された隣合せのサンプルの数が(サンプル数 によって定義)が確認され、それらのカラーが平均化されます。これは、サンプルサイズ値も考慮され、サンプル密度を含みたいサンプルが置かれている範囲を減らすため、絶対値ではありません。
固定: スケール値とともに、計算したいポイント周辺の固定距離が確定され、それによってサンプルを得ることができます。この方式では、最も「ぼけ」の生じた結果が得られます。
これらの効果がどのように見えるかが下の画像でわかります(解説のために、プレフィルタは使用していません)。
ここでは、どのライトマップを表示するのかを選択します。可視化を選択した場合、GIのプライマリの方式が計算されず、セカンダリの方式のみが表示と計算が行われます。前ページの例は、全て、この方式を使ってレンダリングされたものです。これは、ライトマップの微調整をレンダリング前に行うのにとても適しています。
なぜなら、このモードはライトマップのキャッシュを(最終レンダリングせずに)事前計算を提供します。
最終レンダリングは、常に、通常モードで行う必要があります。