This script is designed to make it easier (especially on Windows, as DrQueue seems to be difficult to set up). It was originally posted in
this thread. That was before I had this site, though. The version number has an interesting story attached to it, though (see the thread).
Please Note: This script comes with absolutely no warranty, and I (the author) do not accept any responsibility for this script or anything that happens as a result of it. Other than that, you can use it (or do anything else with it) you like, providing it's legal, of course!
Blender Farm Package (5 KB Zip)
|This is the first version of this script released.
Setting up is relatively easy (I think so, anyway). Much of the task can be done by moving files.
- Extract the zip file located above. Move the files in the "Farm" Directory to a location with enough free space (about 1.75GB per minute, if you use bitmaps). You can replace "FarmFrames_" from the "Farm/Settings.txt" file with anything you like.
- Next, you should set up the environment variable "BlReFa" on the server computer. This would be the directory where the farm directory resides,
e.g. "C:\Farm". Make sure this directory is shared with permission
to both read and write.
- Next, set up an environment variable for each of the nodes (the involved computers that are not the server). First, you have to make the shared directory on the server
accessible. On windows, you would map a network drive. On Linux, you would mount the remote directory somewhere like /mnt/Farm. Then create an environment variable that points to this directory. This variable is also
- Next, you can put the submitter script in Blender's scripts directory. Any of the clients and the host can submit jobs, but only one job can be in progress at a time.
- Put the Listener script somewhere easy to find (e.g. keep it in the "Farm\" directory). This should keep the name "FR_Listen.py" to avoid
- If I haven't left anything out, you should be ready to set up your first farmed render.
The following details the rendering routine:
- Go to the Text Editor window.
- Enter the frame number of each frame you want Blender to visit (when it is previous to the current frame) during the animation. This is to allow for features like the Camera Changer script which requires that the frames
which a camera change are visited. Please note: This feature is
experimental. It is recommended that you leave the Lframes.txt file as I gave it to you in the setup.
- Change the Settings.txt as desired. I think the first parameter is obsolete
(but is still required). The second parameter allows for an extension, e.g. ".bmp". The third allows you to name the resulting frames.
- Make Job.txt starts with "d". This should be the case unless you interrupted the render.
- In blender, make sure the type of render matches the extension you gave. Make sure this is a single image format, and not an animation. They should be saved as single frames.
- Clear the output directory (in the output panel of the scene buttons, at the top). There should be nothing, not even a slash here.
- Go to "File-->Open" (in the script window) and open the "FR_Listen.py" script.
- Go to the Scripts window. Launch the "Scripts-->Render-->Farm Render" script.
- Hit "Submit" followed by "Activate".
- On each of the computers you want to render on (this can include the server), go to the Farm directory and open the FR.blend. On windows, you may be able to simply double click this. On Linux, you might have to open it through Blender.
- Go and do something else and hope I haven't missed anything out.
This procedure renders the animation as a sequence of frames. They might not open in order in the sequence editor, but
VirtualDub seems to open them correctly.
The process of setting up the render should create a file called "ExitPin" in the "Farm\" directory. If you delete/rename this file during the render, the farm will stop rendering. This is useful if you find an error in your animation or you want
to free one of the computers.
I hope this script is of use to you. If you find any errors or have any suggestions, feel free to tell me. I regard this script as "Very useful, but