Blender

From UFRC
Revision as of 18:16, 12 June 2008 by Hpc (talk | contribs) (→‎Build)
Jump to navigation Jump to search

Description

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.

Website

Location

/apps/blender/2.45

Usage

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.

Sample Script

The sample PBS script can now be found on the PBS Sample Job Scripts page.

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.

Build

Support programs needed by Blender for compilation:

In addition, a number of changes need to be made to /apps/blender/blender-<ver>/source/nan-definitions.mk in order for the compile to go through. In the linux section of the definitions file, change the following variables to point to /apps/blender:

    export NAN_PYTHON ?= /apps/blender
    export NAN_OPENAL ?= /apps/blender
    export NAN_JPEG ?= /apps/blender
    export NAN_PNG ?= /apps/blender
    export NAN_FREETYPE ?= /apps/blender
    export NAN_SDL ?= $(shell /apps/blender/bin/sdl-config --prefix)
    export NAN_SDLLIBS ?= $(shell /apps/blender/bin/sdl-config --libs)
    export NAN_SDLCFLAGS ?= $(shell /apps/blender/bin/sdl-config --cflags)

Environment Variables

PKG_CONFIG_PATH="/apps/blender/lib/pkgconfig/"
INCLUDE="/apps/blender/include:/apps/blender/include/OpenEXR"