Yesterday I had to render a 3d animation for a colleague working on 3D television. He needed a short street-view video with depth map. Because there were some problems with some real world footage he wanted to use, he asked me to create an artificial video in Blender. After I created a simple scene with some models from www.katorlegaz.com, I wanted to render the whole animation overnight on one of the computers in our lab. I had some trouble with getting the command line arguments right and wanted to share this, in case someone else has the same problem.
I first tried
blender -b -a foo.blend
the option -b is for background mode, so I could log out from the computer after I started the job, the options -a is for (according to the command line help):render frames from start to end (inclusive), only works when used after -b I thought this was the bare minimum to get the job done. However, nothing happened but this:
Compiled with Python version 2.5. Checking for installed Python... got it! ERROR: No camera Blender quit
Huh, no camera? There was an active camera, the scene rendered just fine from the UI, I checked my file over and over and everything seemed all right.
The problem is that, unlike most command line tools I'm used to, command line Blender consumes the arguments in the given order. So with the command blender -b -a foo.blend Blender executes the -a before it loads the file foo.blender, which explains why it can't find a camera.
The solution is to put the -a and other optionally arguments after the file name:
blender -b foo.blend -a
The help info you get from blender -h gives another example:
Note: Arguments are executed in the order they are given. eg:
"blender -b test.blend -f 1 -o /tmp"
...may not render to /tmp because '-f 1' renders before the output path is set
"blender -b -o /tmp test.blend -f 1"
...may not render to /tmp because loading the blend file overwrites the output path that was set
"blender -b test.blend -o /tmp -f 1" works as expected.
Blender is best left to the experts
I sort of grasp what you are doing here but after trying to make Blender work for me, I decided to pass it on to a programmer friend of mine and he works wonders! He doesn't understand why it is so hard for me thinking that this post might help. Can't say I didn't try!
100s are thankful
I have searched all over the forums and there are so many posts with this issue that are never answered.
thank you thank you thank you !
I am now considering downloading the blender source just to see how easy it would be to fix the command line parsing.
OR at least improve the error messages
Post new comment