株式会社コロッサスへようこそ

menu

Colossus Studios

アーノルドレンダー検証 その16

  ロシアンルーレット

TopImage2

Arnoldはバージョンが上がるに連れて、機能の追加だけでなく、計算速度も速くなっています。
その中でも主にグローバルイルミネーション計算に直接関わってくるアップデートとしては、

MtoA 1.2.4.3 Arnold 4.2.11.0 core
HIGHLIGHTED NEW FEATURES
Russian Roulette: The standard and lambert shaders now use Russian Roulette termination to more efficiently render with high GI depth. For AA samples 5 or higher the increase in noise is typically very small. Indoor scenes with high GI depth will benefit the most, but also scenes with lots of glass and high refraction/reflection depth. In such scenes we have measured between 1.5x and 5x faster renders.

MtoA 1.2.6.0 Arnold 4.2.12.2 core
ARNOLD ENHANCEMENTS
Improved Russian Roulette: The standard shader now uses more aggressive Russian roulette termination. This reduces render time but increases noise, so to get renders with similar noise levels as before either AA_samples or GI_diffuse_samples, GI_glossy_samples and GI_refraction_samples can be increased. For interior scenes with high GI depth, this is a big win and we have found 2x to 3x faster renders for similar noise levels.

の2回にアップデートが行われています。
これはどういうものかというと、Arnoldはアンバイアスで物理的なレンダリングを得るために高度に最適化されたモンテカルロパストレーシングエンジンを使用しています。しかし、様々な光が反射する室内などの複雑な光路を計算する場合、パストレーシング法だけでは無限に再帰的な展開が行われてしまい、時間が掛かる割にはノイジーな結果になってしまいます。そこでロシアンルーレット(Russian Roulette)と呼ばれる処理を用いると、再帰を続けるかどうかを確立的に決定し、結果はロシアンルーレット導入前と同じでありながら計算の収束を早めることができるようになります。

では実際にどのような差があるのかをルームインテリアのシーンを使って検証してみましょう。
https://support.solidangle.com/display/AFMUG/Learning+Scenes

MtoA100_1
古いバージョンであるMtoA 1.0MtoA 1.2.6.0を比較しています。

サンプリング 3/2/2/2/3 レイデプスディフューズ 1
RenderSetting1
この設定でMtoA1.0のレンダータイムは2:06でした。
今回のレンダリングは全てi7-3770K 3.5GHzで計測しています。

ライトは内観ではノイズに不利なaiSkyDomeLight1灯のみColorにaiPhysicalSkyをリンクさせて使用しているのでかなりノイジーです。
同じものをMtoA1.2.6.0でレンダリングしてみると、
MtoA126_1
レンダータイムは1:51です。まだこれ位だと誤算の範囲と言えます。
ノイズを減らすためディフューズサンプルを2から6に上げてみました。
MtoA100_22
MtoA1.0のレンダータイムは3:59
MtoA126_22
MtoA1.2.6.0のレンダータイムは4:08
ディフューズサンプルだけでは差は付かないようです。(MtoA1.0の方が若干速いしw)
そこで、レイデプスのディフューズを1から10に上げてみました。
MtoA100_3
MtoA1.0のレンダータイムは9:13
MtoA126_3
MtoA1.2.6.0のレンダータイムは7:58
レイデプスのディフューズバウンスの回数を上げた場合には効果があるようです。1分以上速くなっています。
もう少し差がわかりやすいように、さらに負荷を掛けてみましょう。
カメラAAサンプルを3から5に上げてみます。
MtoA100_4
とたんに遅くなってMtoA1.0のレンダータイムは68:23
MtoA126_4
MtoA1.2.6.0のレンダータイムは23:14というこで確実にスピードアップしています。
カメラAAサンプルとレイデプスのディフューズが上がっている状態だと3倍程度の速度差があるようです。
ロシアンルーレットの再帰決定確立はシェーダーの反射率などによっても変わるらしいので、反射屈折マテリアルが沢山あるようなシーンだとさらに差がつきそうですね。

ちなみに、モンテカルロパストレーシングはカメラからの光路追跡のため、直接光源が当たらないような場所のサンプリングは計算上ノイジーになりがちです。回避策としては光源を十分に配置することが上げられます。
インテリアシーンなどの場合は、Webマニュアルにもあるように、HDRIだけに頼らず、窓外にエリアライトを配置して十分に光を当てることが推奨されています。

aiSkyDomeLightをディレクショナルライトとエリアライトに差し替えてみました。
maya1
すると、同じようなノイズ感でもサンプリング値を下げることが可能となり、レンダリング時間も大幅に短縮されました。

MtoA126_5Erea
MtoA1.2.6.0 レンダータイムは9:57でした。
インテリアシーンではこの手法が最も効果的です。