パストレーシングでレンダリングする際に「イラディアンスキャッシュ」というのを選択できます。
大域照明のレンダリングでは、レンダリングの仕組みを知ることでより品質や速度を上げやすくなります。
知らないと、目的の絵には到達できないことが多いかもしれません。
ここではイラディアンスキャッシュのパラメータの調整について、理論から意味合いを説明していきます。
イラディアンスキャッシュのパラメータは、「いかにサンプル点を適切に配置するか」という目的で用意されており、
それらを操ることにより品質向上につながります。
イラディアンスキャッシュとは ?
「イラディアンスキャッシュ」はパストレーシングでのレンダリングで拡散反射面での放射照度(irradiance : イラディアンス)をあらかじめ蓄えておき、
レイトレース時にキャッシュに情報がある場合は補間して再利用します。
キャッシュがない場合は、そのときの放射輝度(radiance : ラディアンス)を計算します。
これによりレンダリング時間を短縮することができます。
また、補間を行う手法のため高周波ノイズが低周波ノイズとなりざらざら感が緩和されます。
Shade3Dでは「パストレーシング」または「パストレーシング+フォトンマッピング」のレンダリング手法のときにイラディアンスキャッシュを使用できます。
以下は、パストレーシングでイラディアンスキャッシュを使用しない場合。
以下は、パストレーシングでイラディアンスキャッシュを使用した場合。
イラディアンスキャッシュを有効にする
レンダリング手法が「パストレーシング」または「パストレーシング+フォトンマッピング」のときに、
レンダリング設定で「大域照明」タブ内の「イラディアンスキャッシュ」チェックボックスをオンにすることで、
イラディアンスキャッシュが有効になります。
イラディアンスキャッシュのサンプル点を可視化する
レンダリング設定で「マルチパス」タブ内の「大域照明 : サンプル点」チェックボックスをオンにしてレンダリングすることで、
サンプリング箇所を視覚化することができます。
この「大域照明 : サンプル点」はStandard/Professional時に使用できます。
イメージウィンドウ下のRGB/RGBAなどを選択するポップアップメニューで「大域照明 : サンプル点」を選択。
このときの黄色い点でキャッシュが見つかった箇所、赤い点でキャッシュを追加生成した箇所を表示します。
イラディアンスキャッシュのパラメータ
レンダリング設定の「大域照明」タブの「イラディアンスキャッシュ」チェックボックスをオンにするとイラディアンスキャッシュが有効になり、
パラメータを調整することができるようになります。
大きく「キャッシュの品質」「キャッシュトレランス」で調整することになり、
それ以外のパラメータで詳細を調整することになります。
キャッシュの品質
キャッシュのサンプリング数に相当するパラメータになります。
この値を大きくするとノイズの低減につながりますが、レンダリング時間がかかります。
キャッシュの品質が1.0の場合は以下のようになりました。
角部分に乱れが見えます。
キャッシュの品質が2.5(デフォルト)の場合は以下のようになりました。
きれいに出ています。
キャッシュの品質が4.0の場合は以下のようになりました。
2.5のときとほとんど変わりませんが、角部分の乱れがより小さくなっています。
このとき、マルチパスの「サンプル数」を有効にしておくとイラディアンスキャッシュのサンプリングの数が目安として色で表現されます。
この「サンプル数」はStandard/Professional時に使用できます。
左から、キャッシュの品質 1.0/2.5/4.0になります。
この「サンプル数」は、青 → 緑 → 赤 → 白の順番でサンプル数の増加を表します。
キャッシュトレランス
イラディアンスキャッシュから放射輝度を補間/推定するときの、収集スケール(収集する際の半径)に相当するパラメータになります。
この値が小さいと計算時間がかかり高周波ノイズが出やすい状態になりますが、より正確になります。
値が大きいほど計算時間を短縮できますが、間接照明が補間の影響で平坦な感じとなります。
キャッシュトレランスが-4.0の場合は以下のようになりました。
ざらついています。
キャッシュトレランスが0.0の場合は以下のようになりました。
ざらつきは緩和されて、代わりにモヤモヤが出てきました。
キャッシュトレランスが3.0(デフォルト)の場合は以下のようになりました。
ちょうどいい具合になりました。
ただし、この処理は拡散反射面上のある位置から半径分のイラディアンスを収集する作業になりますので、
キャッシュトレランスが大きくなる場合に逆に時間がかかる場合もあります。
シーンにもよりますが、その場合はイラディアンスキャッシュを使用しないほうがレンダリングが速く完了することになります。
イラディアンスグラディエント
「イラディアンスグラディエント」(放射照度勾配)とは、放射照度の精度を改善するための位置と方向の勾配情報になります。
微小の面などで、イラディアンスキャッシュの補間により間接照明が大雑把になってしまうのを防ぐことができます。
「サンプル間隔」と「サンプル感度」
「サンプル間隔」は、イラディアンスキャッシュのサンプル間隔を調整します。
サンプル点は、角のような陰影の変化が大きい部分で多く割り当てられ、壁のような陰影の変化が緩やかな部分では少ない状態になっています。
「粗い」「普通」「細かい」を選択でき、「細かい」にするとサンプル間隔がより密になります。
正確性は増しますが、レンダリング時間がかかることになります。
「サンプル感度」を0.3(デフォルト)にして、「サンプル間隔」を左から「粗い」「普通」「細かい」にした場合、以下のようになりました。
角部分の密度が変化しているのが分かります。
陰影が平坦な壁部分では、密度はあまり変化していません。
「サンプル感度」は、サンプル点の間隔の密度を調整します。
値が大きくなると、壁のような陰影の変化が緩やかな部分でも密になりレンダリング時間がかかります。
値が小さくなると間引きされた状態になり、レンダリング時間の短縮につながります。
「サンプル間隔」普通、「サンプル感度」0.3の場合(デフォルト)。
「サンプル間隔」普通、「サンプル感度」0.5の場合。
「細部強調」と「品質倍率」
「細部強調」チェックボックスをオンにすると、
角部分などの陰影差がある部分でサンプル点が多くなります。
以下は左が「細部強調」オン、右がオフになります。
また、「細部強調」オンの場合は「品質倍率」で細部のサンプリング数を上げます。
大部分は「細部強調」をオンにして使用することになりそうです。
今回は難しい説明となりました。
この「イラディアンスキャッシュ」の調整のために、ある程度レンダリングの理論的な知識が必要になります。
Shade3Dではレンダリング品質と速度のバランス調整のために、一番有効な手段となりそうです。
次回はラジオシティについて説明していく予定です。