Command Line Rendering with Siren

This tutorial describes how to use Siren to render different types of images.  It assumes that you have the Siren renderer installed.

Siren is run from a DOS command shell.  For this tutorial we will use the mechtoy.rib file included with the distribution of Siren.

Change directories to the directory containing mechtoy.rib

Basic Command Line Options

Siren contains many command line options, allowing many image features to be specified at rendering time.  You can see a list of options by typing Siren with no parameters.  There are options to set image resolution, number of pixel samples, output file, and number of frames for animation.

When first started, Siren will look for the file Siren.rib in both its home directory (defined by the SIRENHOME environment variable) and in the current directory, and parse those files if present.  You can use these files to set default options and attributes.  You will probably at least want to set a default resolution and to specify pathes for textures, shaders, and rib archive files.  This tutorial relies on the settings in Siren.rib which we will selectively override.

To begin type:

You should see a low-resolution (320x200 pixel) 256-color image of a simple mechanical toy.  After the image is drawn, pressing W will save it to a file named "Siren.tif"

Depending on your video card, you may be able to render higher resolution pictures.  Try:

You should see a finer-grain image.  Siren can render "true color" 24-bit images on displays that support those video modes using the -tc option.  Try: You can use the -samples option to set the number of pixel samples.  For example: Siren will also accept any RIB statement enclosed in quotes.  You can use this feature to set options not provided among the command line options.  Example: Siren provides ray-traced shadows via an option switch.  The -shadows option turns ray-traced shadows on:


Mechtoy.rib is an animation, though that hasn't been apparent yet.  If you edit the file, you will see that it contains two motion blocks that define rotation paths for parts of the toy.  Siren has a command line option to generate the necessary frame blocks and shutter times to animate such a scene.  Try the following: You should see 20 frames of animation rapidly drawn in succession.  On a fast machine the rendering should be in real time.

The -phong option sets the limits for phong shading, with 0 disabling shading on a per-pixel basis.  This produces flat-shaded or Gouraud-shaded polygons which render more quickly.  Try the above line without -phong 0 for a comparison.

Using the -loops option you can cause the animation to loop:

You can also animate in higher resolutions:: A sequence of frames can be recorded as a FLI animation file.  The following line will make a 20 frame flic: You can press the spacebar at any time to interrupt rendering.

The -frames option restricts the range of frames that are rendered.

will render only the first 10 frames of the animation.

You can also easily render a sequence of still frames.  Siren supports wildcard expansion of the display filename.  #f is replaced with the current frame number.  So:

will produce 20 image files named m001.tif, m002.tif, etc.

(Note for BMRT users:  The limbo.rib file included as an example with BMRT animates just dandily.  Remember to compile the shaders first!)

Motion Blur

Siren supports motion blur.  Motion will be blurred if the appropriate attributes are set (pathsamples and objectsamples) and the camera shutter is open for a non-zero amount of time. will produce a single blurred frame.

To animate with motion blur, use the extended form of the -anim switch, which is:

-anim nframes starttime endtime fractionshutteropen
nframes is the number of frames to create, starttime and endtime are the starting and ending time for the series of shutter times, and fractionshutteropen is the fraction of time between frames the shutter is open.  Try:

Depth of Field

Siren also implements depth of field by supersampling a scene.  With the default minimum number of samples for depth of field of 16, this results in more geometry for this scene that will fit in memory.  We can get around this limitation by rendering the scene in strips, which uses a disk file to store the scene's geometry.  Try the following: Depth of field also works with animation, motion blur, and flat and Gouraud shading: That's it for the introduction.

Keep in mind that resolution, pixel samples, and motion samples were all kept to a minimum for this tutorial.  Higher-quality images can be produced by increasing any or all of these parameters.

Good luck, and have fun!

Last Modified March 31, 2000

Send questions, comments, and bug reports to: