【Blender】CPUとGPUを使ったレンダリングが凄かった【Cycles】

untitled0001

Blenderのマテリアル設定を少しばかり学習。最初、適当に作ったオブジェクトをオブジェクトモードでShift + Dで複製したのだけど、マテリアルを設定すると、他のものまでそのマテリアル設定になってしまって、どうやってマテリアル設定の各オブジェクトごとのリンクを解除するのかわからずに右往左往ww

以前、別の3DCGソフトを使っていた経験からマテリアルの設定ファイルがリンクされていて、複製された各オブジェクトもそれを使っているのだろうな、とは当たりをつけていたんだけど、リンクの解除、新規のリンクさせるやり方がわからなかった……。orz

20121115095429 上段の「○」「 Material Number」「数字」「 F」「+」「 ×」にマウスカーソルを合わせると、各項目の説明やマテリアル設定の保存に関する情報が出てくる。

ちなみに「F Material.002」となっているものの「F」は、上の「F」をクリックすると付加され、ユーザーがいない状態でも設定が保存されるよ、という明示。

また、「数字」はこの設定にリンク(使用)しているユーザー数(オブジェクト)とのこと。

各項目にマウスカーソルを合わせると、ダイアログが出てくるので、知らない項目、わからない項目があったら一度はダイアログを表示させたほうがいいかも……。

ちなみに各オブジェクトは数分足らずで作れたのだけど、これらの設定や光源の設定に手間取った。まあ、まだまだ初心者で、Blenderの機能自体把握しているとは言いがたい状態だから、どの程度の数値や各項目の設定がどういった状態でレンダリングされるかなんて、わからなくて当たり前なんだけど……。

 

Original Paint.netの増殖
untitled0001 untitled0002
Paint.netのオーバーレイ Paint.netのスクリーン
untitled0003 untitled0004

レンダリングしたPNG画像をPaint.netで複製して、やっつけ合成したもの。レンダリングに時間が掛かるときはこう手法もありかと……。いちいちレンダリングしていたら時間が掛かってしようがないし。レンダリング時間は4分45秒程度だった。

 

マテリアル設定を弄り回しながらレンダリングを試みているうちに、Cyclesレンダーで高速なGPUレンダリングができることを知り、興味がそちらに移る。

ネットであれこれとCyclesレンダーの使用法を調べてみると、まずユーザー設定のシステムでOpenCL(nvidiaはCUDAとかも)を選択し、レンダリングエンジンを「Clyclesレンダー」、光源となる物体のマテリアルのサーフェイスを「放射」に設定し、3Dビューのシェーディングを「レンダー」、レンダーの機能セットを「実験的」、デバイスを「CPU ※1」にしていると、とりあえずCyclesレンダーの恩恵に与れることがわかった。

このレンダリングの精度はレンダー内のSamplingとLight Pathsによって決まるようだったので、適当に設定。とりあえずレンダー→200、プレビュー→100、インテグレータプリセットをFull Global IlluminationにしてBlenderのGPUレンダリングを体感してみることにした。

20121115062829

で、3Dビューでグリグリと視野を移動すると、Clyclesレンダーがリアルタイムでレンダリングしてくれる。その結果がこれ。(右に3Dカーソルが映っている)

ちなみにレンダー数やプレビュー数を上昇させるほどに綺麗にレンダリングしてくれる。CPUとGPUが酷使されるけど(汗。プレビュー数が0のときは延々とレンダリングし続けるので、要注意。Cyclesのレンダリングがかなり綺麗だったので正直、驚いた。

PCの性能が許すならかなりの数値を割り振ってもいいんじゃないかと……。

 

AA2012000561

※1 デバイスがCPUでもGPUレンダリングは有効だった。CPUの各コア→100%、GPU→60~70%前後というような感じ。

以前、使っていた7900GSが寿命でお亡くなりになったときは、余り3DCGをやることを考えていなかったのだけど、こうしてGPUレンダリングの恩恵に与れるとなると、もう少し性能の高いものを買っておけばよかったと思わないでもない。こういう処理を想定していなかったので、安かったDDR3(遅いww)のほうだし。

まあ、あのときはデュアルモニタが映ればいい、という条件のみで探していたから間違った買い物ではないんだけど……次にPCを新調するときは、グラボも選別しようかと。

 

ちなみにGPU演算にすると、amdocl.dllが原因のエラーでBlender自体が落ちてしまう。

問題の署名:
  問題イベント名:    APPCRASH
  アプリケーション名:    blender.exe
  アプリケーションのバージョン:    2.6.4.0
  アプリケーションのタイムスタンプ:    5074793d
  障害モジュールの名前:    amdocl.dll
  障害モジュールのバージョン:    10.0.1016.4
  障害モジュールのタイムスタンプ:    5065fb3c
  例外コード:    40000015
  例外オフセット:    00c5472f
  OS バージョン:    6.0.6002.2.2.0.256.1
  ロケール ID:    1041
  追加情報 1:    4d9b

このバージョンにおけるBlenderのバグなのか今ひとつわからない。ネット上で簡単に調べた限りだと、Blenderは、AMDよりもnVidiaのCUDAのほうが相性がいいらしい。

 

 

20121115063512

Cyclesのレンダリングの途中の様子。ここからサンプリングされるたびにノイズが消えていく。

 

自分のPCのレンダリング速度ってどうなんだろうと思ってネット上で検索をかけたらBenchmarkをしているサイトがあった。

 

 

ここはサイトに貼ってあるtest.blendというファイルをDLし、設定を変えずにブレンダーでレンダリングさせて、レンダリングの時間を測り、結果を掲載している。(Cyclesレンダーではなく通常のレンダリング)

うちのPCだと、1スレッドで大体1分ぐらい。掲載されている情報で一番早い人が1スレッドで6秒ぐらい。つまりうちのPCよりも10倍くらい速い。

この結果は以前書いた【覚書】自作PCの構成候補【半分以上自分用】という記事に載せたCPUのベンチマークサイトの数値と結果を概ね反映している感じ。

 

20121115064546

上の画像のレンダリングが完了したもの。ノイズが消えているし、影なんかも綺麗になっている。Cyclesレンダーはかなり良い感じ。

 

しかし、未だに解決しない問題も。3Dビュー内のレンダリングはGPUが働くのだけど、実際のレンダリングになって「CPU」を選択していると、GPUが働かないし、「GPU演算」にすると、エラーを吐いてBlenderが落ちる。

Cyclesレンダーがそういうものなのか、AMDとの相性が悪いからなのか、Blenderの設定が悪いのか現在もわからない。

 

 

ちなみにこちらは各使用条件に合わせて最適化されたBlenderの配布サイト。レンダリング時間のかなりの短縮が図れる様子なので、自己責任を理解できる人柱向け。普通に使っている人もいるみたいだからそこまで覚悟を決めなくても大丈夫だろうけど……。

 

そこそこの処理性能があって、そこそこの値段で買えるGPU。左がGeforceの660Tiで、右がRadeonのHD7870。現在の時点だと、27Kと26K程度。

これらミドルアッパークラスのグラボがあれば処理も捗る……はず。まずはこれらの製品が必要になる程度には、Blenderに習熟することのほうが重要なんだけど。現在の目標は未だに脱Blender初心者だし。

 

関連記事

関連記事
スポンサーサイト

4 Comments

ガルーダ  

blender 2.67でradeon6870使っているのですがcyclesで機能セット 実験的
に変更してもopenclが使えません。ネットで調べると2.65はできるとあったので
バージョンを色々変えてみてもだめでした。radeonドライバーの更新やopenclドライバー
も更新など行いましたが変わらず・・・
解決策があれば教えていただけませんか?><

2013/06/04 (Tue) 01:08 | REPLY |   

Ψ(`∀´)Ψケケケ  

Re: タイトルなし

3DビューにおけるCyclesの簡易レンダリングではなくて、レンダーによるレンダリング(F12を押すと、レンダリングされる機能)のお話ですよね。あと、主にCPUによるレンダリングではなくGPUによるレンダリング。

であれば、以前はCyclesでレンダーのレンダリングをしようとすると、エラーでBlenderが落ちたのですが、当方でも2.67bだと落ちなくなってます。ただし、そのときのレンダリングは、CPU使用率がほぼ100%、GPUのほうはCCCでOCしているのですが、刹那的にクロックが上昇したりしなかったり、GPUの負荷による温度上昇は認められずという感じですので、GPU演算はキャンセルされているのかもしれません。

ちなみに3DビューでのCyclesレンダーを使った簡易レンダリングのほうは、CPU100%、GPU20~70%(温度上昇あり)なので、以前と同じく使えている状態です。openclの実装が終わったという情報を得ていないので、GPUによるレンダリングはまだ簡易レンダリングのみ可能ということなのではないかと思われます。

2013/06/04 (Tue) 03:56 | REPLY |   

ガルーダ  

返答ありがとうございます!
すみません。。そもそも演算装置でなぜかCPUしか認識していないのです
3dsmax、vrayレンダラだとopencl(radeon)で認識しているので
blenderの設定か何かだと思うのですが・・・
設定画面の演算装置でnone その下に cpu とだけしかない状態です
ペコリ m(_ _ )m

2013/06/04 (Tue) 19:05 | REPLY |   

Ψ(`∀´)Ψケケケ  

Re: タイトルなし

> 設定画面の演算装置でnone その下に cpu とだけしかない状態です

私の方でも現在は、『ユーザー設定→システム→演算装置→なし→CPU』という感じになってます。何バージョン前のBlenderだと、確かにここにGPU(?)といった項目があったような記憶がありますが、数バージョン前からこんな感じになっていたように思います。

ただこの状態でも、3DビューでのCyclesレンダーによる簡易レンダリング(CPU+GPU)は可能になっているので、幾つか平面や球、光源を簡単に配置し、ノードを設定してみて、GPUが処理をしているかしていないか(不可が掛かっているか否か)確認してみてはどうでしょう。

2013/06/05 (Wed) 00:00 | REPLY |   

Post a comment