Man Linux: Main Page and Category List

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)