How to use Blender as a simple Render Farm for animations

- by

Blender has a bafflingly simply way to let several computers render the same animation. Render Farms are usually setup in a way that one machine is the “master”, and the others are declared “render slaves” that each render a single frame or even a single bucket of a frame. The master then assembles everything into a single video file.

But rendering directly to a video file isn’t always desirable because single frames cannot easily be re-rendered if there was a problem. While there is a way to setup Blender using such a master/slave setup, there is a much easier way to render an image sequence: all we need are several computers that can see the same directory on the network. This could be a Dropbox folder, so the render nodes don’t even have to be on the same network.

Here’s how to let several computers render the same animation together, producing a directory full of images that can be assembled in a video editor.

Create your animation and head over to the Render Settings property. At the bottom of the screen, deselect Overwrite and select Placeholders. For the Output Path, navigate to your shared folder than can be seen by all networked computers.

Screen Shot 2015-04-18 at 09.27.41

Under Render, hit Animation to start rendering the image sequence. Do this on every computer on the network after loading the same animation file. Blender will go to work on all nodes, each of which will render the next frame in the sequence.

Screen Shot 2015-04-18 at 10.02.17

 

Minor Caveat (and solution)

The way this works is that each node looks at the folder and takes a look at what files are already there, then it picks the next one and renders it. Because there is no communication between the nodes you may experience occasional frames that have been rendered twice – because two nodes may see that 23 frames have been rendered and the 24th one would need to be picked next.

Such double-renders are marked in the sequence though, so it’s easy to delete them before assembling the sequence. The more computers are involved, the more this is prone to happen. In my tests I’d say that of a 100 frame animation there are perhaps 10 additional renders. Blender marks them as “conflicted copy” with the same image and the computer that caused them.

In my opinion this is a very small price to pay given the fact that you do not have to deal with complete re-renders or network communication trouble. This way of rendering can even utilise remote machines without nothing more than a simple shared folder.

The good news is that there’s a simple solution to avoiding such outtakes by dedicating a certain frame range to each machine that’s involved. Say you had a 1000 frame animation across 5 nodes. Node 1 would only render frames 0-200, node 2 would render frames 201-400 and so forth.



If you enjoy my content, please consider supporting me on Ko-fi. In return you can browse this whole site without any pesky ads! More details here.

Leave a Comment