village on Eevee
・・・。な出来。 pic.twitter.com/I2E1aSKbKm— すいか (@blog_raspi) March 9, 2022
#Minecraft
やり直してレンダリング完了! pic.twitter.com/lrXAbon8fz— すいか (@blog_raspi) February 6, 2022
MinecraftをBlenderに持ち出して色々試しています。(まだまだな技術)
BlenderのレンダーにはEeveeとCyclesというものがあり、どちらにも長所と短所があります。
よく言われるのがEeveeはレンダリングが高速な代わりに光のライティングクオリティは低い、Cyclesはレイトレーシングというレンダリング方法で光のシミュレーションが精密な代わりにレンダリング速度が遅いというものです。
下の画像ではCyclesを使用してレンダリングをおこなっています。
室内だと反射が多いのでそれに伴いレンダリング時間も長くなります。
この場合だとMacBook Proでレンダリングした時2時間ほどかかりました。
かなり時間がかかり、その時間パソコンを使うことができないのは困るのでレンダリングを分散させることができないか調べたところオープンソースのプログラムがあったので使用してみたいと思います。
BlendFarm
https://github.com/LogicReinc/LogicReinc.BlendFarm
今回は分散レンダリングにBlendFarmという外部ツールを使用します。
よくあるツールにあるネットワークレンダリングは1フレームずつ各コンピュータでレンダリングさせて動画を作るものですが、BlendFarmは1つのフレームを分散させることもできます。
今回使用した参加者たちはこちら
- DELL inspiron (遅すぎて途中退場) intel Celeron 2GB Linux Debian
- Panasonic Let’s note intel core i5 8GB Windows 10
- Mac Pro early 2009 intel core i5 12GB Linux Ubuntu
- MacBookPro 2017 intel core i7 16GB Mac OS Monterey
- iMac late 2013 intel core i5 32GB Mac OS High Sierra
いつも使うPCと使っていないPCをかき集めたら速さが違いすぎてレンダリングに余計に時間がかかる結果になっていました。
iMac late 2013がHigh SierraなのはMacBookProのターゲットディスプレイモードが一番使いやすかったからです。
ダウンロードと起動
Mac OS
Mac OSの場合はGitHubのreleseからMacOSを選択してダウンロードしましょう。
2022/03/10現在では最新の1.0.9が「壊れているためゴミ箱に入れる必要があります。」と出て使用できないのでその前の1.0.8.1を使用することにします。
MacBookPro 2017のMac OS Moneteryでは使用できませんでしたがiMac late 2013のHigh Sierraでは使用できました。ご自分の環境で試してみてください。
サーバー専用のパッケージもありますが今回はWindows以外のPCにGUIのBlendFarmを使用します。
BlendFarm-1.0.8.1-OSX64.zipをクリックしてダウンロードし、展開します。
すると、展開したフォルダの中にLogicReinc.BlendFarm.appと、README.txtがあるのが確認できます。
このアプリは署名がされていないのでMacOSに起動が妨げられるので、システム環境設定→セキュリティとプライバシー→一般からこのまま開くをクリックして開きます。
Linux
Macのところと同様にこの部分からBlendFarm-1.0.8.1-Linux64.zipをダウンロードします。wgetでもいいですが、普通にブラウザを使用した方が楽です。
展開します。
$ unzip BlendFarm-1.8.0.1-Linux64.zip
GUIでも展開できますが、ここでは割愛します。
中にはrun.sh,README.txt,LogicReinc.BlendFarmというファイルがあります。
run.shはLogicReinc.BlendFarmを実行するシェルスクリプトになっています。
run.shに実行権限を付与して念の為sudoで実行します。
$ chmod +x run.sh $ sudo ./run.sh
Windows
Macの時と同様にwindows版をダウンロードします。
BlendFarm.Server-1.0.8.1-Win64.zipをクリックしてダウンロードします。
Windowsをホストとして使用する場合はBlendFarm-1.0.8.1-Win64.zipをダウンロードします。
展開すると、LogicReinc.BlendFarm.Server.exeが入っているのでダブルクリックで開きます。
Windows Defenderに確認されていない発行元と言われるので詳細情報から実行します。
FireWallからネットワークの通信を許可するか聞かれるので許可しましょう。
使用方法
起動すると次のようなメニューが表示されます。
何回か使用しているので下の欄に最近使用したプロジェクトが表示されています。
Select your fileから自分のBlenderのプロジェクトを選択します。Live Renderを使用する場合にもプロジェクトファイルは必要なので保存をしながらおこなってください。
選択したらLoad Projectをクリックしてロードします。
すると、このような画面になります。
同じプログラムを起動した同じネットワーク上のPCが表示されます。
レンダリング
レンダリングの視点はカメラが使用されます。
カメラの設定が正しいか確認してからレンダリングしましょう。
レンダリング用のPCに接続
まず、レンダリングに使用するPCをホストに接続します。
レンダリングに使用するPCの赤い丸をクリックして使用するPCを選択します。
すると自動でBlenderのダウンロードが始まります。
意外と時間がかかります。
終了すると赤い丸が緑の丸に変わっていることがわかります。
次にSync Allを押してプロジェクトを一致させます。
すると、黄色だったPC名が緑色に変わります。これで準備完了です。
画像のレンダリング
PCの性能によってレンダリングする量を変えることができますが、とりあえず初期設定でどれくらいかかるのか試してみましょう。
レンダリング設定からRenderをクリックしてレンダリングします。
すると、タイルがそれぞれのPCに分配されてレンダリングされます。
自分の環境ではなぜかFailed Renderというエラーが出ましたが、レンダリングは可能でした。
このような画面でレンダリングされた画像を見ることができます。
Renderの下のSave Imageでレンダリングされた画像を保存することができます。
レンダリングの高速化
レンダリングは全てのPCのレンダリングが完了しないと終われません。
そのため早いPCがさっさとレンダリングを終わらせているのに遅いPCのレンダリングが終わらずに遅くなってしまうということがあります。
その分配を変えてみましょう。
PCの横にある設定ボタンを押すと次の設定を見ることができます。
Performanceを自由に変えてみて早くなる時間を試してみてください。
Auto-Performanceより少し多くしたり、ふるいPCは小さくしたりすることで1/2の時間になりました。
レンダリング設定
Cyclesのレンダリングではサンプル数も設定できます。多くなればなるだけ高画質になりますが、それだけかかる時間も多くなります。デノイズをかけると32でもほとんど気になりません。手探りで探してみてください。
動画のレンダリング
動画は一コマ一コマが画像で書き出されます。pngなので書き出し用フォルダを作成します。
Render Animationをクリックすると、書き出すフォルダを選択できます。
このモードでは1フレームずつ各コンピュータに分配されます。
ライブレンダー
ライブレンダーでは、プロジェクトが保存されると自動でレンダリングが開始されます。
Live RenderタブのStart Live renderをクリックして開始しましょう。
ここでは画像がレンダリングされます。
レンダリング中の設定
Systemから、レンダリングのタイルの設定などが変更できます。色々触ってみてください。
まとめ
このように、簡単にいらないPCをたくさん集めたり、今回は使用していませんが、RaspberryPiなどを大量にセットしてレンダリングサーバーを作成することができます。
使っていないPCなどがあれば是非一度試してみてください。