I would like to be able to render several files one after the other, when I am not using my computer, e.g. at night. Is there a way of doing this?
-
1$\begingroup$ possible duplicate of Is there a way to batch render multiple scenes? $\endgroup$– AldrikCommented Jun 29, 2013 at 9:55
-
1$\begingroup$ @Aldrik they are a bit different IMO. One is asking about different files, the other is about scenes in a file. $\endgroup$– iKlsRCommented Jun 29, 2013 at 13:12
-
$\begingroup$ @iKlsR I did notice that, and it's normally good to point out the difference. But the procedure is much the same and both are covered by answers in the other question. $\endgroup$– AldrikCommented Jun 29, 2013 at 14:48
-
$\begingroup$ @Aldrik yes, we cannot help that, but for now, it's ok and best to keep them separate. We can't mark as dupe as the titles and intentions are different and we can't merge them because not all the answers apply to both questions. $\endgroup$– iKlsRCommented Jun 29, 2013 at 14:50
-
$\begingroup$ I'm actually working on an application to do this. $\endgroup$– LetTheWritersWriteCommented May 25, 2017 at 0:06
4 Answers
Sounds like a job for Command Line Rendering. Sounds intimidating if you've never done it, but it's a simple matter of stealing someone's template and adjusting the parameters:
Windows: blender -b "C:\path\to\file.blend" -x 1 -a
Linux/Mac: blender -b "/path/to/file.blend" -x 1 -a
That's the simplest form of it which will use all the settings in the blend itself. To make a cue of it, simply put '&&' between the commands:
blender -b "C:\path\to\file.blend" -x 1 -a && blender -b "C:\some\other\project.blend" -x 1 -a && blender -b "C:\yes\another\one.blend" -x 1 -a
To adjust settings like start and end frames, path of the outputed images/video, whether to render the animation or a single frame, check out the wiki page on Command Line Rendering.
It's also useful to tell it to shutdown your computer when it's finished simply by adding this at the end:
Windows: && shutdown /s /t 0
Linux/Mac: && sudo shutdown -h now
And here's one with start/end frame set, output path and format and shutdown when done:
blender -b "C:\En Passant\08-08\shots\s1\awake\awake.blend" -x 1 -o "C:\En Passant\bear_render\awake\img_#" -F PNG -s 119 -e 150 -a && shutdown /s /t 0
Note that if it doesn't recognize the 'blender' command, you just need to cd into the directory of the blender executable before it'll understand you. E.g:
Windows: cd "C:\Program Files\Blender Foundation\Blender"
Linux/Mac: cd "/home/user/Downloads/Blender"
-
1$\begingroup$ All these commands are for Windows - if someone has the linux and mac versions please edit this answer. $\endgroup$ Commented Jun 29, 2013 at 8:00
-
$\begingroup$ thanks for that, yes it's intimidating. :) I used to program in Basic back in the early '80s and now I only use a Mac! $\endgroup$– SteveWCommented Jun 29, 2013 at 9:47
-
2$\begingroup$ I think the commands work on Unix systems too, except, instead "C:\path" you write somthing like "/Users/[yourusername]/Path/To/File.belnd". $\endgroup$ Commented Jun 29, 2013 at 15:24
-
$\begingroup$ Yes, almost the same except for the commands marked "windows only" when you run blender --help $\endgroup$– gandalf3Commented Jun 29, 2013 at 20:27
-
$\begingroup$ This appears to be what I'm looking for, I'll have to do some experimenting. Thank you. $\endgroup$– SteveWCommented Jun 29, 2013 at 22:03
The Brender renderfarm addon to Blender allows you to queue multiple renders, both from within the same file and from different .blend files. You can download the most recent version from this site.
The installation procedure is a little complicated, but once you have it set up, all you have to do is press the "New Job" button in the Render menu.
-
$\begingroup$ This looks great, although I must admit it looks a bit too advanced for me at this stage! :) $\endgroup$– SteveWCommented Jun 29, 2013 at 22:00
First see documentation on Blender from the command line
Once you can run blender --version
. You can then setup a queue.
You only have to launch blender once, then pass it all the files you want to render.
blender --background foo.blend -a bar.blend -a baz.blend -a
This renders (foo.blend
, bar.blend
, baz.blend
).
You can pass other arguments such as setting the output path or number of threads, be sure to position these after the blend
file and before the -a
.
This example uses the number system threads and reads to //path_to_render
.
blender --background foo.blend -t 0 -o //path_to_render -a
I just finished writing a little Python app because I got sick of writing the same command line options over and over again to accomplish this. Feel free to use it.