自宅にクラスタ構築、を検討

Indogo Renderer を使った作品を見ると、デジタルカメラで撮影したようなノイズがある。
これは写真風に見せるためノイズエフェクトを追加したものだとばかり思っていたが、そうではなくて、最初ノイズだらけの画像でそれを処理によってくっきりさせていくという形でレンダリングが進んでいき十分な画質が得られたところで作者の判断で処理を中止する、という工程なのだそうだ。
ノイズの多い画像はエフェクトを強めにかけたのだと思っていたが、実はレンダリングを早めに切り上げたということだった。


レンダリングには通常2~3時間かけるようだ。
特に高品質の映像を作りたい場合は丸一日処理を続けるとか。
これは静止画の場合。
要するに1フレーム生成するために1日かかってしまうわけで、fps30で1秒のアニメーションを作ろうと思ったらレンダリングに1ヶ月かかるということだ。
よほど強力な設備がない限り静止画専用として使うほうがいい、と。
もっとも、動画のほうがノイズ許容度が高いので、静止画ほど1フレームに時間をかけなくてもいいだろうとは思う。
それに解説文はようやくデュアルコアCPUが出てきたころに書かれたものだったので、今は事情がかなり違う。


Indigoを使っている人がどんなプラットフォームで作業をしているか、というアンケートがあったので見てみた。
最も多いのはLinux、ついでWindowsMacWindows x64。
Indigo自体はWindows用しかないのでLinuxではWineを使って動かすことになるが、Windowsで動かすよりも処理が早いとのこと。
Linuxは無料で手に入るし、モデリングLinuxでは定番のBlenderを使っている人が多いこともあって、より高速なレンダリングを求めてLinuxを選ぶ人が多いのだろう。


レンダリングは非常に時間のかかる処理だが、Indigoはこれをネットワークで接続した複数のコンピュータで分散処理することができるようになっている。
処理の中核になるコンピュータでマスタープロセスを起動し、他のコンピュータではスレーブになるプロセスを起動してマスタープロセスが動いているコンピュータの port 7777 に接続すればいい。
至極簡単。
マルチコアCPUを使っている場合、コアの数だけプロセスを立ち上げてループバックアドレスで自機の port 7777 に接続する形をとる。
要するにIndigoそのものはマルチコアCPUに対応しているわけではない。
なので、たとえば 4way Quad Core のシステムをフルにレンダリングに使用する場合、Indigoを16個同時に起動することになるわけで、エレガントなやり方ではないなぁ、というのが正直な感想。
まあ、そのうち対応するだろうとは思う。


最新版では64it版もあるので、Win x64 の性能を活かせる。
今手元に6台PCがあるが、クラスタを構築してレンダリングに使ってやれば結構高速に処理できるんじゃないかな、と。
うむ、なんかおもしろそう。


が、しかし、その前にまずBlenderで作品を作るスキルを身につけないと始まらない。