Provided by: radiance_4R1+20120125-1.1_amd64 bug

NAME

       ranimate - compute a RADIANCE animation

SYNOPSIS

       ranimate [ -s ][ -n ][ -e ][ -w ] ranfile

DESCRIPTION

       Ranimate  is  an  executive  program  that reads the given ranfile and makes appropriate calls to rad(1),
       rpict(1), pinterp(1), and/or pfilt(1) to render an animation.  Variables in ranfile indicate input files,
       process servers (execution hosts), output directories and file names,  and  various  other  controls  and
       options.

       Normally,  commands are echoed to the standard output as they are executed.  The -s option tells ranimate
       to do its work silently.  The -n option tells ranimate not to  take  any  action  (ie.  not  to  actually
       execute  any  commands).  The -e option tells ranimate to explicate all variables used for the animation,
       including default values not specified in the input file, and print them on the standard output.

       The -w option turns off warnings about multiply and misassigned variables.

       Normally, ranimate will produce one animation frame for each view given in the specified view  file.   If
       an  animation  has ended or been killed in an incomplete state, however, ranimate will attempt to pick up
       where the earlier process left off.  If the process is still running, or was started on another  machine,
       ranimate will report this information and exit.

       Animation  variable  assignments appear one per line in ranfile.  The name of the variable is followed by
       an equals sign ('=') and its value(s).  The end of line may be escaped with a backslash ('\'), though  it
       is  not  usually  necessary  since  additional  variable  values  may  be  given in multiple assignments.
       Variables that should have only one value are given in upper case.   Variables  that  may  have  multiple
       values  are  given  in lower case.  Variables may be abbreviated by their first three letters, except for
       "host", which must have all four.  Comments in ranfile start with a pound sign ('#') and proceed  to  the
       end of line.

       The animation variables, their interpretations and default values are given below.

       DIRECTORY The  name  of the animation directory.  All temporary files generated during the animation will
                 be placed in this directory, which will be created by ranimate if it does not  exist.   A  file
                 named  "STATUS"  will  also  be  created  there, and will contain current information about the
                 animation process.  This variable has no default value, and its setting is required.

       OCTREE    The name of the octree file for a static scene walk-through animation.   There  is  no  default
                 value  for  this  variable, and any setting will be ignored if the ANIMATE variable is also set
                 (see below).

       ANIMATE   The scene generation command for a dynamic animation.  This command, if given, will be executed
                 with the frame number as the final argument, and on its standard output  it  must  produce  the
                 complete  octree  for  that  frame.   Care  must be taken that this command does not create any
                 temporary files that might collide with same-named files created by  other  animation  commands
                 running  in parallel.  Also, the command should produce no output to the standard error, unless
                 there is a fatal condition.  (I.e., switch all warnings off; see  the  BUGS  section,  below.)
                 There  is no default animation command, and either this variable or the OCTREE variable must be
                 set.

       VIEWFILE  This variable names a file from which ranimate may extract the  view  for  each  frame  in  the
                 animation.  This file should contain one valid view per frame, starting with frame 1 on line 1,
                 regardless  of  the  setting  of the START variable.  An exception is made for a view file with
                 only a single view, which is used for every frame of a dynamic scene animation.  This  variable
                 is required, and there is no default value.

       START     The  initial  frame  number in this animation sequence.  The minimum value is 1, and if a later
                 starting frame is given, ranimate assumes that the earlier frames are included  in  some  other
                 ranfile,  which has been previously executed.  (See the NEXTANIM variable, below.)  The default
                 value is 1.

       END       The final frame number in this sequence.  The minimum value is equal to the  START  frame,  and
                 the default value is computed from the number of views in the given VIEWFILE.

       EXPOSURE  This  variable  tells  ranimate  how  to  adjust the exposure for each frame.  As in pfilt, the
                 exposure setting may be given either as a multiplier or as a number of f-stop adjustments  (eg.
                 +2  or -1.5).  Alternatively, a file name may be given, which ranimate will interpret as having
                 one exposure value per line per frame, beginning with  frame  1  at  line  1.   (See  also  the
                 VIEWFILE  variable,  above.)  There is no default value for this variable.  If it is not given,
                 an average level will be computed by pfilt for each frame.

       BASENAME  The base output file name for the final frames.  This string will be passed to the  -o  and  -z
                 options  of  rpict,  along with appropriate suffixes, and thus should contain a printf(3) style
                 integer field to distinguish one frame number from another.  The final  frames  will  use  this
                 name  with  a  ".hdr"  suffix.   The  default  value  is  the  assigned  DIRECTORY  followed by
                 "/frame%03d".

       host      A host to use for command execution.  This variable may be assigned a host name, followed by an
                 optional number of parallel processes, followed by  an  optional  directory  (relative  to  the
                 user's  home  directory  on  that  machine), followed by an alternate user name.  Multiple host
                 assignments may appear.  It is not advisable to specify more than one process on  a  single-CPU
                 host, as this just tends to slow things down.  The default value is "localhost", which starts a
                 single process in the current directory of the local machine.

       RIF       This  variable  specifies  a  rad  input file to use as a source of rendering options and other
                 variable settings.  If given, ranimate will execute rad and create an  options  file  to  later
                 pass  to  rpict  or rtrace.  Besides prepending the render variable, ranimate will also extract
                 default settings for the common variables: OCTREE, RESOLUTION, EXPOSURE and  pfilt.   Following
                 the  file  name,  overriding variable settings may be given, which will be passed to rad on the
                 command line.  Settings with spaces in them should be enclosed in quotes.  The execution of rad
                 will also update the contents of the octree, if necessary.  There is no default value for  this
                 variable.

       DISKSPACE Specify  the  amount  of disk space (in megabytes) available on the destination file system for
                 temporary file storage.  Ranimate will coordinate its batch operations based on this amount  of
                 storage,  assuming  that  there  is either enough additional space for all the final frames, or
                 that the given TRANSFER command will move the finished  frames  to  some  other  location  (see
                 below).  The default value is 100 megabytes.

       ARCHIVE   After  each batch rendering is finished and checked for completeness, ranimate will execute the
                 given command, passing the names of all the original pictures and z-buffer files  generated  by
                 rpict.  (The command is executed in the destination directory, and file names will be simple.)
                 Normally, the archive command copies the original files to a tape device or somewhere that they
                 can  be retrieved in the event of failure in the frame interpolation stages.  After the archive
                 command has successfully completed, the original renderings are removed.  There is  no  default
                 value  for  this  variable, meaning that the original unfiltered frames will simply be removed.
                 Note that the last one or two rendered frames may not be copied, archived or  removed  in  case
                 there is a another sequence picking up where this one left off.

       TRANSFER  The  command  to transfer the completed animation frames.  The shell changes to the destination
                 directory and appends the names of all the  finished  frames  to  this  command  before  it  is
                 executed.   Normally, the transfer command does something such as convert the frames to another
                 format and/or copy them to tape or some other destination device  before  removing  them.   The
                 fieldcomb(1)  script  may  be  used  to conveniently combine fields into frames for field-based
                 animations.  If this variable is not given, the final frames are left  where  they  are.   (See
                 BASENAME, above.)

       RSH       The  command  to  use  instead  of ssh(1) to execute commands remotely on another machine.  The
                 arguments and behavior of this program must be identical to the UNIX ssh command,  except  that
                 the  -l  option will always be used to specify an alternate user name rather than the user@host
                 convention.  The -l option may or may not appear, but the -n option will always  be  used,  and
                 the expected starting directory will be that of the remote user, just as with ssh.

       NEXTANIM  This  variable specifies the next ranfile to use after this sequence is completed.  This offers
                 a convenient means to  continue  an  animation  that  requires  different  control  options  in
                 different  segments.  It is important in this case to correctly set the START and END variables
                 in each ranfile so that the segments do not overlap frames.

       OVERSAMPLE
                 This variable sets the multiplier of the original image size relative to the final  size  given
                 by  the RESOLUTION variable.  This determines the quality of anti-aliasing in the final frames.
                 A value of 1 means no anti-aliasing, and a value of 3 produces very  good  anti-aliasing.   The
                 default  value  is  2.   (A  fractional  value may be used for previews, causing low resolution
                 frames with large, blocky pixels to be produced.)

       INTERPOLATE
                 This variable sets the number of frames to interpolate between each rendered frame in a  static
                 scene  walk-through.  Z-buffers for each rendered frame will be generated by rpict, and pinterp
                 will be called to perform the actual "tweening."  This results in a potentially  large  savings
                 in  rendering  time,  but  should be used with caution since certain information may be lost or
                 inaccurate, such as specular highlights and reflections, and objects may even  break  apart  if
                 too  few  renderings  are  used  to  interpolate  too  much motion.  The default value for this
                 variable is 0, meaning no interpolation.  Interpolation is also switched  off  if  the  ANIMATE
                 variable is specified.

       MBLUR     This  variable  specifies  the  fraction of a frame time that the shutter is simulated as being
                 open for motion blur.  A number of samples may be given as a second  argument,  which  controls
                 the  number  of additional frames computed and averaged together by pinterp.  If this number is
                 less than 2, then bluring is performed by rpict only,  resulting  in  greater  noise  than  the
                 combination  of  rpict and pinterp used otherwise.  (The default value for number of samples is
                 5.)  The default fraction is 0, meaning no motion blurring.  This  option  does  not  currently
                 work with the ANIMATE variable, since pinterp only works for static environments.

       DBLUR     This  variable  specifies the aperture diameter for depth-of-field blurring, in world units.  A
                 number of samples may be given as a second argument, which controls the  number  of  additional
                 frames computed and averaged together by pinterp.  If this number is less than 2, then blurring
                 is  performed  by  rpict  only,  resulting  in  greater noise than the combination of rpict and
                 pinterp used otherwise.  (The default value for  number  of  samples  is  5.)   To  simulate  a
                 particular camera's aperture, divide the focal length of the lens by the f-number, then convert
                 to  the corresponding world coordinate units.  For example, if you wish to simulate a 50mm lens
                 at f/2.0 in a scene modeled in meters,  then  you  divide  50mm  by  2.0  to  get  25mm,  which
                 corresponds  to  an  effective aperture of 0.025 meters.  The default aperture is 0, meaning no
                 depth-of-field blurring.  This option does not currently work with the ANIMATE variable,  since
                 pinterp only works for static environments.

       RTRACE    This boolean variable tells ranimate whether or not to employ rtrace during frame interpolation
                 using  the  -fr  option to pinterp.  If set to True, then the same rendering options and static
                 octree are passed to rtrace as are normally used by rpict.  The default value is  False.   Note
                 that this variable only applies to static environment walk-throughs (i.e., no ANIMATE command).

       RESOLUTION
                 This  variable  specifies  the  desired  final  picture resolution.  If only a single number is
                 given, this value will be used for both the horizontal and vertical picture dimensions.  If two
                 numbers are given, the first is the horizontal  resolution  and  the  second  is  the  vertical
                 resolution.   If  three numbers are given, the third is taken as the pixel aspect ratio for the
                 final picture (a real value).  If the pixel aspect ratio is zero, the  exact  dimensions  given
                 will  be those produced.  Otherwise, they will be used as a frame in which the final image must
                 fit.  The default value for this variable is 640.

       render    This variable may be used to specify additional options to rpict or rtrace.  These options will
                 appear after the options set automatically by rad, and thus will override the default values.

       pinterp   This variable may be  used  to  specify  additional  options  to  pinterp,  which  is  used  to
                 interpolate  frames  for  a  static  scene  walk-through.   (See  the pinterp man page, and the
                 INTERPOLATE variable.)  Do not use this variable to set the pinterp -fr  option,  but  use  the
                 RTRACE setting instead.

       pfilt     This variable may be used to specify additional options to pfilt.  If this variable is given in
                 the ranfile, then pfilt will always be used.  (Normally, pfilt is called only if pinterp is not
                 needed or automatic exposure is required.)  See the pfilt manual page for details.

EXAMPLES

       A minimal input file for ranimate might look like this:

          ::::::::::
          sample.ran
          ::::::::::
          # The rad input file for our static scene:
          RIF= tutor.rif
          # The spool directory:
          DIRECTORY= anim1
          # The view file containing one view per frame:
          VIEWFILE= anim1.vf
          # The amount of temporary disk space available:
          DISKSPACE= 50  # megabytes

       Note  that  most  of  the variables are not set in this file.  If we only want to see what default values
       ranimate would use without actually executing anything, we can invoke it thus:

         ranimate -n -e sample.ran

       This will print the variables we have given as well as default  values  ranimate  has  assigned  for  us.
       Also,  we  will  see  the  list  of commands that ranimate would have executed had the -n option not been
       present.

       Usually, we execute ranimate in the background, redirecting the standard output and standard error  to  a
       file:

         ranimate sample.ran >& sample.err &

       If  we  decide  that the default values ranimate has chosen for our variables are not all appropriate, we
       can add some more assignments to the file:

          host= rays 3 ~greg/obj/tutor ray   # execute as ray on multi-host "rays"
          host= thishost                # execute one copy on this host also
          INTERP= 3                # render every fourth frame
          RES= 1024                # shoot for 1024x resolution
          MBLUR= .25                    # apply camera motion blur
          EXP= anim1.exp                # adjust exposure according to file
          pfilt= -r .9                  # use Gaussian filtering
          ARCHIVE= tar cf /dev/nrtape        # save original renderings to tape

       Note the use of abbreviation for variable names.

FILES

       $(DIRECTORY)/STATUS animation     status     file     $(DIRECTORY)/*      other      temporary      files
       $(BASENAME).hdr          final animation frames

AUTHOR

       Greg Ward

BUGS

       Due  to the difficulty of controlling processes on multiple execution hosts, the -n option of ranimate is
       not useful in the same way as rad for generating a script of executable commands to render the  sequence.
       It  may  give  an idea of the sequence of events, but certain temporary files and so forth will not be in
       the correct state if the user attempts to create a separate batch script.

       If multiple processors are available on a given host and the RTRACE variable is set to True, then the -PP
       option of rtrace should be employed, but it is not.  There is no easy way around this problem, but it has
       only minor consequences in most cases.  (The -PP option is used for rpict, however.)

       The current implementation of the remote shell does not return the exit status  of  the  remote  process,
       which  makes  it  difficult  to  determine for sure if there has been a serious error or not.  Because of
       this, ranimate normally turns off warnings on all rendering processes, and takes any output  to  standard
       error  from  a remote command as a sign that a fatal error has occurred.  (This also precludes the use of
       the -t option to report rendering progress.)  If the error was caused by a process server going down, the
       server is removed from the active list and frame recovery takes place.  Otherwise, ranimate quits at that
       point in the animation.

       The current execution environment, in particular the RAYPATH variable, will not be passed  during  remote
       command  execution,  so  it  is  necessary  to set whatever variables are important in the remote startup
       script (e.g., ".cshrc" for the C-shell).  This requirement may be circumvented by substituting the  on(1)
       command for ssh(1) using the RSH control variable, or by writing a custom remote execution script.

       If  a  different  remote  user  name  is  used,  ranimate first attempts to change to the original user's
       directory with a command of the form cd  uname .  This works under  csh(1),  but  may  fail  under  other
       shells such as sh(1).

       If  multiple hosts with different floating point formats are used, pinterp will fail because the Z-buffer
       files will be inconsistent.  (Recall  that  pinterp  is  called  if  INTERPOLATE  >  0  and/or  MBLUR  is
       assigned.)   Since most modern machines use IEEE floating point, this is not usually a problem, but it is
       something to keep in mind.

SEE ALSO

       fieldcomb(1), pfilt(1),  pinterp(1),  pmblur(1),  rad(1),  ran2tiff(1),  ranimove(1),  rpict(1),  ssh(1),
       rtrace(1)

RADIANCE                                             6/24/98                                         RANIMATE(1)