Blender is an integrated suite of tools enabling the creation of a broad range of 3D content with the singular benefits of cross-platform interoperability and an incredibly small download file size. It is the most popular Open Source 3D graphics application in the world, and is one of the most downloaded.
Remember, the HPC computational resources are not to be used for developing the blend file! The idea is that you get the blend file ready to go, then transfer that blend file to the HPC Center and submit a job to do the rendering. This is where a good portion of the time takes place.
Command Line Arguments
Blender 2.44 (sub 0) Build Usage: blender [options ...] [file] Render options: -b <file> Render <file> in background -S <name> Set scene <name> -f <frame> Render frame <frame> and save it -s <frame> Set start to frame <frame> (use with -a) -e <frame> Set end to frame (use with -a)<frame> -o <path> Set the render path and file name. Use // at the start of the path to render relative to the blend file. Use # in the filename to be replaced with the frame number eg: blender -b foobar.blend -o //render_# -F PNG -x 1 -F <format> Set the render format, Valid options are.. TGA IRIS HAMX FTYPE JPEG MOVIE IRIZ RAWTGA AVIRAW AVIJPEG PNG BMP FRAMESERVER (formats that can be compiled into blender, not available on all systems) HDR TIFF EXR MPEG AVICODEC QUICKTIME CINEON DPX -x <bool> Set option to add the file extension to the end of the file. -t <threads> Use amount of <threads> for rendering Animation options: -a <file(s)> Playback <file(s)> -p <sx> <sy> Open with lower left corner at <sx>, <sy> -m Read from disk (Don't buffer) Window options: -w Force opening with borders (default) -W Force opening without borders -p <sx> <sy> <w> <h> Open with lower left corner at <sx>, <sy> and width and height <w>, <h> Game Engine specific options: -g fixedtime Run on 50 hertz without dropping frames -g vertexarrays Use Vertex Arrays for rendering (usually faster) -g noaudio No audio in Game Engine -g nomipmap No Texture Mipmapping -g linearmipmap Linear Texture Mipmapping instead of Nearest (default) Misc options: -d Turn debugging on -noaudio Disable audio on systems that support audio -h Print this help text -y Disable script links, use -Y to find out why its -y -P <filename> Run the given Python script (filename or Blender Text) -v Print Blender version and exit
As a note, all attempts so far to get the -o OUTPUTFILE option to work have been unsuccessful. Please be sure to define the output file location in the blend file itself.
#!/bin/csh -f # #PBS -N tux #PBS -r n #PBS -o tux.out #PBS -e tux.err #PBS -j oe #PBS -m abe #PBS -M <ADD EMAIL ADDRESS HERE!> #PBS -q firstname.lastname@example.org #PBS -l nodes=1:ppn=2 #PBS -l pmem=400mb #PBS -l walltime=2:00:00 set EXE = /apps/blender/2.44/blender cd /home/jka/ $EXE -b Tux.blend -f 1 -x 1 -t 2
Note that you should add your address to the appropriate line in this case. Also note that the walltime has been set to 2 hours. You will have to figure out through trial and error what the most appropriate amount of time for a rendering should be. In this particular example:
- Blender will render the first frame of either a static or dynamic animation.
- It will use two threads to perform this operation, hence defining that PBS should use two processors on a single node.
- With preliminary testing, this also does not appear to be working properly. There is a setting within the rendering options in Blender itself that you can set the number of threads to work from. I recommend setting this to four, and defining the ppn above to four as well.
- The output of the frame will be wherever it was defined in the blend file that was originally saved.
Setting the proper path for the output in the blend file is critical, as this is a batch based system and you will have no idea which computational node actually does the processing. Be sure to set the output path to a known location in the global filesystem, either /scratch/ufhpc or /home/<username>. The default in linux is to set this to /tmp, which will simply dump the output to that directory on the local computational node, which means you will not get the results.