BlenderのCyclesレンダリング時間を短縮(調整)する ver-2.79

無料なのに、ものすごい機能のBlender。しかし、機能がありすぎて使いこなすのは大変。適当にオブジェクトを作成すると、どうしてもレンダリング時間が延びてしまう。

ということで、Cyclesレンダーのレンダリング時間を少しでも短縮したいときのテクニック、というか設定方法をメモ。

※短縮するとクオリティは落ちる。どの辺でバランスを取るかという話。なお、間違っていることや見当違いな事を言っているかもしれないから、鵜呑みにしてはいけない。公式サイトのドキュメント(英語版)熟読を推奨。

RADEON RX570 8GBを購入してみたので追記

※※Blender Ver2.80bataがリリースされたので追記

はじめに

Blenderの標準レンダラーの設定方法は、公式のここらへんを参照

Cyclesレンダラーの設定方法は、公式ドキュメントのここらへんにある

動作環境

  • Blender Ver2.79b 日本語化環境
  • Cyclesレンダリングエンジン
  • GeForce GTX 750 Ti CUDA利用
  • Intel core i7 3770
  • DDR3-1600 32GB
  • windows 10

構成が少し古いが現行のミドルレンジよりだいぶ速い。環境や常駐ソフトなどでレンダリング速度は変動する、参考まで。

テスト用ファイル

公式デモファイルのページにあるBlender 2.74のスプラッシュ「Fishy Cat」を利用。CC0 by Manu Jarvinen (manujarvinen.com)。パーティクルで表現された大量のもふもふがキュートでクッソ重い

初期状態のレンダリング時間は約57秒(倍率200%)。これではブログではデカすぎる、等倍(100%)に変更。更にコンポジットノードを削除(レンダー出力のみ)。これをベースに調整してみた。

501×230(等倍)CPUレンダリングで約19秒

PCの設定(重要)

お約束事項。

  • 常駐ソフトを切る
  • オーバークロックをしない
  • 他のソフトを立ち上げない
  • CPUの冷却がしっかりできているか確認(ほこりのつまり等)
  • 最終手段 マシンスペックを上げる

GPGPU(CUDAかOpenCL)を利用する場合はグラボ増設必須

CUDAは2.0~6.1 必須。OpenCLはGCN architecture 2.0以上必須。個人的にはGeForce推奨。詳細はリンク先のwikipediaなどを参照。この業界は公式含め、日本語サイトはあまり役に立たないので注意(特にAMD)。

なお、連続して超高負荷がかかるため、安易なグラボ増設は電源容量不足を引き起こす。冷却も追いつかないから、スリム筐体のPCは諦めたほうが良い(GTX 1050 Tiでさえ75Wの2SLOT占有)。

エントリーからミドルロークラスのグラボを採用する意味は、全く無いので注意(詳しくは次項で)。

2017~2018年現在、消費電力の観点からGeForce GTX 1050 Tiあたりのコスパが高い。というより、その辺の採用が最低ライン。

対応状況などの詳細はblender公式サイト参照

多コアのCPU特有の設定

CPUコア数が増えるほど、タイルを分割(処理を分散)した方が処理が速くなる。でも、GPUは逆。そのため、GPU利用時はタイルサイズを大きく(タイル数削減)、CPU利用時は小さく(タイル数増加)した方が有利。ただし、極端なサイズに設定するとエラーになる・・・が、ならない時もある(特定verのドライバが怪しい)。

このファイル(Fishy Cat)は、タイルサイズが32×32。i7 3770+GTX 750 Tiの場合、単にGPUに切り替えただけでは逆にレンダリング時間は伸びてしまう(約19秒→44秒)。

出力サイズに合わせて、タイルサイズを512×512へ変更すると約19.5秒(CPU利用時とほぼ同じ)になった。

このことから、「i7 3770 ≒ GTX 750 Ti」この式が成り立つらしい(あくまで、Blender で使う場合)

前述したGTX 1050 Tiの処理速度は、単純計算するとGTX 750 Tiの1.5~1.6倍程度らしいから、概ね「i7 8700 ≒ GTX 1050 Ti」の式が成立すると思われる。

Xeon、Ryzen ThreadripperやQuadroの価格を考えると、i3以下利用のBlender使いにはGTX 1050 Tiのコスパは極めて高い・・・と思う、持ってないから断言はできないが。

ということで、

  • タイルサイズは512×512に変更

特記なき場合、この条件を追加して計測する。

Fishy Cat def-100pミドルハイレンジGPUよりハイレンジCPUの方が若干速いようだ

※追記 RADEON RX570(OpenCL)

RADEON RX570 8GBを購入。グラボ以外は全て同じ構成。

splash_279-rx570約90%へ短縮・・・あんまり速くならない!!

初回起動時のカーネル構築も遅いので、やっぱりCUDA(Nvidiaのグラボ)推奨。何か設定を間違っているのだろうか・・・

レンダーコンテキスト

レンダリング速度は主に「レンダー」コンテキストの設定調整による影響が大きい。(「プロパティウインドウのヘッダーにあるコンテキスト ボタン」と公式では呼んでいるらしい。レンダーコンテキストボタン=カメラマークのボタン)

blender render cont

※「推奨値」はあくまで管理人の推奨値。オブジェクトの性質やマシン環境によって変わる。

寸法パネル

解像度

高解像度でレンダリングしたものを縮小した方が品質は高い傾向にあるような印象。

200%化(Fishy Catデフォルト設定)
→約45秒

Fishy Cat 200-100p200%→レンダー後に50%縮小

解像度2倍だとピクセル数は4倍増のはずだが、正比例しないようだ。

※追記 RADEON RX570(OpenCL)

splash_279-rx570-double約70%へ短縮。重くなるほど差が出るようだ。

※※追記 Blender Ver2.80bata+RADEON RX570

splash_280-rx570-double約50%へ短縮。2.80ヤバイ、クッソ速くなってる!!

・・・ただし、2.80で保存すると、ファイルの互換性が無くなるようなので注意。というより、変わり過ぎて別のソフトになった感じが。

サンプリングパネル

パストレーシングと分散パストレーシングが選べる。

Fishy Catデフォルトでは、パストレーシングはサンプル数30、分散パストレーシングはAA4,1,1,1,1,1,1,1に設定されている(たぶん作者は分散パストレーシングを使っていない)。

二重サンプル(共通)

ONにすると、計算量激増、画質大幅アップ。推奨値「OFF」

ON化→約258秒

Fishy Cat sq-sample透明感がまるで違う。が解像度2倍からの縮小で良いと思う。

直接値/間接値を制限(共通)

ノイズ低減用。計算量の変化はあまり無い。推奨値0.1~3。

Fishy Cat clamp-00だとプチノイズが出やすい。

光のサンプリングしきい値

ノイズ低減用らしいが効果は良くわからなかった。推奨値0(無制限)。

パターン(共通)

ノイズパターンが変わる、品質と速度は大きく変わらないのでどちらでも可。格子状パターンとかのモアレ対策用?

分散パストレーシング固有の設定項目

パストレーシングよりクイック?だがノイズ多い。数値を上げ過ぎるとblenderが落ちやすい。

Fishy Cat 44-all1このファイルのデフォルト(AA4,on,on,1,1,1,1,1,1,1)

AAサンプル の数値

比例して計算量増加、品質上昇。1上げると5~6%くらい増えるようだ。上げすぎるとメモリが足りなくなる。推奨値「2~6」

Fishy Cat aa16-all1+12(AA16,on,on,1,1,1,1,1,1,1)

全直接光源のサンプル

やや速度に影響。スイッチングによる品質変化はあまりなかった。推奨値「OFF」

Fishy Cat aa16-doff-all1ぱっと見、違い解らず(AA4,off,on,1,1,1,1,1,1,1)

全間接光源のサンプル

15%くらい速度に影響する。この猫?はそうでもないけど、反射部の品質上昇幅が大きいと思う。推奨値「OFF」

Fishy Cat aa16-doffindoff-all1全体的に色が薄くなってる?(AA4,off,off,1,1,1,1,1,1,1)

サンプル の各数値

公式によると、AAの数値の乗数になってるらしい(The Sampling panel shows this total number of samples. というのが良く解らんけど)。少し上げただけで計算量が爆増するためなのか、blenderが非常に落ちやすい。なぜか影響は軽微なため全て推奨値は「1」。3以上は危険。今回、3回も落ちた。そして、再起動を繰り返していたらノイズパターンがなぜか変わってしまった。

サンプリングパネルまとめ

特殊なシーン以外、パストレーシングを使った方が良さげ。設定もしやすい。Fishy Catデフォルト設定が最適なのかもしれない。さすがだ公式スプラッシュ。

分散パストレーシングを使うとすればプレビューくらい。倍率2倍、設定0,3,3,0、AAサンプル4,off,off、サンプル1,1,1,1,1,1,1。からの縮小がそこそこ速くて便利かも。

Fishy Cat aa16-offoff-all1-200-50

ジオメトリパネル

設定は一度デフォルトに戻してから測定(倍率100%、タイル512)。

ボリュームサンプリングの数値

ボリュームレンダリング機能(おそらく特定のシェーダ)を利用しなければ影響はないようだ。

ステップサイズ

Fishy Catは影響なし。推奨値「0.1」Blenderデフォルト

最大ステップ

Fishy Catは影響なし。推奨値「1024」Blenderデフォルト

ヘアーを使用

ヘアーは使うと大幅に重くなる。これはレンダリング速度の設定というより表現方法の問題なので、個々人が納得するレベルに設定するしかない。

ここの設定ではなく、ヘアーの本数に比例する。

Fishy Cat NOhairこれではモフれない

ライトパスパネル

透明度

Fishy Catは影響が少ない。半透明やガラスの先に光源を置くと変化が大きい印象。

最大
計算量の増加量は4以上だと微増、8以下は品質が低くなりやすい。増やしすぎても変化は少ない。推奨値「10前後」

最少
+1あたり計算量20%~増えるときもある、。0~2の品質差が大きく、3~4は軽微。推奨値「3以上」


ON必須。OFFは通常不可(影が無くなると不自然)

反射/屈折コースティクス
ONにすると計算量増、ノイズ増。使うシーン不明。推奨値「OFF」

光沢フィルタ
コースティクスオンの場合は必須? 推奨値「0」

バウンス

最大最少値を決め、個別に4項目を調整するスタイル

最大
0で計算量大幅削減可能。しかし、反射や透過が一切無くなる。その代わりノイズは出ない。

最少
計算量品質共に変化わからず

反射部分の違和感が増大しない程度に最少で調整するのが良い。推奨値「1以上」。なお、ライト側のバウンスの値も影響する模様。

バウンス0。なんか怖い、暗黒面に落ちたか

Fishy Cat bounce1バウンス1、やや黒っぽいが許容範囲

パフォーマンスパネル

PC環境に依存する設定。

タイル

品質が変化しない設定の中では、最も速度変化が大きい。原則として大きい方が早いようだ。ただ、極端な値をとるとエラーで落ちる。512ピクセル又は256分割程度までが無難。

多スレッド環境だと、細長くすることにより左右端部分が各コア間のバッファのような感じになって、数%速くなる時がある。(左右端まで複雑なオブジェクトが映る場合を除く)

ビューポート

ケースバイケース。公式サイト参照

開始解像度

下げておくと3Dビューのシェーディングを「レンダー」にした時、フリーズしにくくなるようだ(メモリ不足っぽい時に起こる)。

スレッド

自動検知が基本だが、Bulldozer の Opteron は増減させると変化が大きいときがあった(OSの対応が怪しい)。

その他

AO(アンビエントオクルージョン)SSS(サブサーフェイススキャタリング)はめちゃくちゃ重いので、遊び用途の家庭用マシンでは使わない方が無難(玄人用)。

まとめ

Fishy Catの設定はよく練られてる。さすがだ。2.75以降のスプラッシュは重すぎて、家庭用PCではキツイ。フツーのマシンを使ってる人は、2.74の時代くらいが参考にするには最適だと思う。(2.74は2015年3月リリース、GTX750Tiは2014年2月の発売当時1.8万、i7 3770は3万くらいだったと記憶)



-

「BlenderのCyclesレンダリング時間を短縮(調整)する ver-2.79」への2件のフィードバック

  1. 屈折コーティクスはガラスとかで使うときがあります。オフにすると時々屋外から室内を見るとき真っ黒になることがあるので。

    1. コメント気づきませんでした・・・

      >ガラス
      ですね。シーン毎に、いらない(影響が少ない)パラメータを探すのが速度アップのキモなんじゃないかと思います。
      なかなか難しいですが・・・

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

CAPTCHA