このサイトではBlenderやMaxwell Renderの使い方を初めての方でも分かり易いように解説したチュートリアルと藤堂+の作品やCGに関連した参考書、Webサイト、CG(VFX)を使った動画を紹介しています。

CGrad Project Logo

Archive for the 'Network Rendering' Category

BlenderのNetwork Rendering

対象Blenderバージョン: 2.56 Beta (r34076)
(2.57以降:Network Renderingはアドオン機能になりました。まずアドオンを有効にしてから使います)

Blender 2.5系からはNetwork Renderingの機能が付いてます。Network Renderingとは複数のPCや複数のプロセスで1つのレンダリング処理を分担して、レンダリングを早くやってしまおうというもの。世の中にはレンダリング用のサーバーとそれにぶら下がるPCをオンラインで貸し出してレンダリングを支援する商売している会社もあるくらいです。一度、少し長いアニメーションを作ったり、処理に時間のかかるシーンをレンダリングしたことがあるなら身に染みていると思いますが、これが馬鹿にならない。期限がある場合には、泣きそうになります。そんなNetwork RenderingがBlenderでも使えます。

(Network Renderingで知っておくべきこと)
実際に操作方法を紹介する前にNetwork Renderingには処理を分担するためにMaster、Slave、Clientという役割をするBlenerを起動しておく必要があります。

  • Master Node・・・Clientから作業要請(ジョブ)を受け、Slaveにレンダリングを指示し、レンダリング処理を管理する担当。
  • Slave Node・・・レンダリングを実際に実施する担当。複数あってもよい。
  • Client Node・・・Clientで開いているBlenderのシーン(Blendファイル)をMasterに送付して、Master Nodeにレンダリングを指示する担当。

これら全部を1台で起動してもOKです。その分、PCのリソースを割くことになりますが・・・。
また、レンダリングするBlendファイルでテクスチャファイルなど外部データを使っている場合、Packして同じBlendファイルに含めるようにするか、インフォ・エディタの「File」メニューの中から「External Data」を選択し、「Make All Paths Relative」(相対パス)を選択して保存しておきます。

 

このチュートリアルでは以下のようなコンフィギュレーションを構築してレンダリングします。

Step 1 Network Renderに変更
Blenderを起動し、画面上部のインフォ・エディタの真ん中から少し右にあるプルダウンメニューから「Network Render」を選択します。
Step 2 Materの起動
プロパティ・エディタの「Render」ボタンを押し、表示された「Network Settings」パネルで「Master」ボタンを押します。 その後、「Start Service」ボタンを押します。ファイヤーウォールが機能しているPCは、ブロックするか、解除するかを聞いてきますので、ブロックは解除して通信ができるようにします。
なお、「Server Address」ではMasterとしてのットワーク上のIPアドレスを設定できますが、デフォルトのままでOK。同様に「Port」もそのまま。Masterを停止するには「ESC」キーを押します。なお、「Master Settings」パネルの「Clear on exit」にチェックを入れておくと、Masterを停止したとき「Path」に指定しているフォルダに作成されたテンポラリファイルを削除します。
 
Step 3 Slaveの起動
Masterと同じPCと別のPCでBlenderを起動し、今度は「Slave」ボタンを押し、2つの矢印が回転している模様のボタン(Refreshボタン)を押します。すると、SlaveはMasterから配信されるIPアドレスとポート番号を探します。見つけるとパネルにその情報が表示されます。「Start Service」ボタンを押して、Slaveを起動します。
なお、「Slave Settings」パネルの「Generate thumnails」ボタンを押すと、Slaveでレンダリングした結果のサムネイルを作成してくれます。
 
Step 4 Clientの起動
Masterが起動しているPCで別のBlenderを起動します。レンダリングしたいBlendファイルを開き、「Network Setting」パネルで「Client」を選択します(補足:開くBlendファイルのレンダリング設定は既に完了しているものとします)。ここでもRefreshボタンを押して、Masterの配信情報を設定します。

 
Step 5 アニメーションのレンダリング
ClientでMasterが見つかると図のよう「Job Settings」パネルが変わります。
ここで、「Open Master Monitor」ボタンを押します。すると、ブラウザが起動し、Masterの状態を見ることができます。
「Animation on network」ボタンを押すと、Clientで開いているBlendファイルがMasterとSlaveに送られ、アニメーションのレンダリングが開始されます。
Master Monitorの項目で、「Jobs」の「Status」の部分がFinishedになれば終了です。
 
なお、Clientの「Job Settings」パネルにある「Priority」は複数のジョブがMasterで走っているとき、ここに設定した番号で処理の優先度を設定します。数値が大きいほど優先度が高くなります。
「Chunk」は何フレームを一度にSlaveでのレンダリング処理に送付するのか設定します。
 
 
Step 6 後から取り出すやり方
「Job Setting」パネルの「Send job」ボタンを押すと、レンダリングが開始されますが出力はされません。
パネルの「Get Image」ボタンを押せば、現在のフレームのレンダリング結果がレンダリングしたSlaveから引き上げられて表示されます。また、「Get Animation」ボタンを押すと、Slaveから画像が引き上げられ、アニメーションの動画が出力されます。 つまり、先にレンダリングしておいて、後ですぐに静止画でも動画でも出力することができます。
 
 
最後に使用上の注意
・Masterを先に閉じると、ファイルが壊れるらしい(Blender.orgサイトより)。
・無効なIPアドレスを指定すると、ファイルが壊れるらしい(Blender.orgサイトより)。
・Slaveに処理が遅いPCがあるとき処理時間がかえって遅くなる。
・そのとき、Chunk値が大きいと更に処理時間が長くなる場合がある。