Man Linux: Main Page and Category List

NAME

       ranimove - render a RADIANCE animation with motion

SYNOPSIS

       ranimove  [  -s  ][ -e ][ -w ][ -f beg,end ][ -n nprocs ][ -t sec ][ -d
       jnd ] rnmfile

DESCRIPTION

       Ranimove is a program for progressive animation  rendering.   Variables
       in  the  given  rnmfile  indicate  input  files, output file names, and
       various other controls and options.

       Normally, progress reports are written to the standard output, but  the
       -s  option tells ranimove to do its work silently.  The -e option tells
       ranimove 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 and non-fatal rendering problems.

       Normally, ranimove will produce one animation frame for each view given
       in the specified view  file.   If  the  -f  option  is  specified,  the
       animation  will  resume  at the given frame, and continue to the end of
       the sequence, or to the second frame if one is  given  (separated  from
       the first by a comma but no space).

       The  -n  option specifies the number of processes to use for rendering.
       The default value is 1, which is appropriate  for  most  machines  that
       have  a  single central processing unit (CPU).  If you are running on a
       machine with multiple  CPUs,  a  larger  value  up  to  the  number  of
       processors  may  be  used  to improve rendering speed, depending on the
       system load.

       Because ranimove  renders  each  frame  progressively,  it  needs  some
       criteria  for  when to proceed to the next frame in the animation.  The
       -t option is used to specify the maximum number of seconds to spend  on
       any  one  frame.   The  default  value  for  this option is 60 seconds.
       Additionally, the -d option  may  be  used  to  specify  a  termination
       threshold  in just-noticeable-differences.  If the error can be reduced
       below this number  of  JNDs  over  the  whole  frame  before  the  time
       allocation  is  spent, ranimove will then proceed to the next frame.  A
       value of 2.0 JNDs is the point at which 75% of the people will notice a
       difference,  and  this  is  the  level  usually  selected  for  such  a
       termination test.  There is no default value  for  this  option,  which
       means  that  rendering  will proceed until the time allocation is spent
       for each frame, regardless.  If -t is set to 0, ranimove will spend  as
       much  time  as it takes to reduce the visible error below the value set
       by the -d option.

       Ranimove renders each frame in three stages.  In  the  first  stage,  a
       low-quality  image  is rendered using one ray sample per 16 pixels.  In
       the second stage, pixels from the previous frame  are  extrapolated  to
       their  corresponding  positions  in this one, based on the given camera
       and object movements.  A set of heuristics is applied to prevent errors
       in specular highlights and shadows, avoiding some of the errors typical
       with the pinterp(1) program.  In  the  third  stage,  additional  high-
       quality  samples are used to refine important regions of the image that
       are judged to have visible errors.  This proceeds  until  the  stopping
       criteria  specified by the -t and -d options are met, when the frame is
       filtered and written to the designated picture file.

       The chief differences between this program  and  ranimate(1)  are  that
       motion blur is computed for objects as well as camera movement, and its
       progressive rendering allows better control over the  tradeoff  between
       frame  accuracy  and  rendering  time.  Fewer controls are provided for
       managing the picture files produced by ranimove, and no facilities  for
       distributed  rendering  are  available other than executing ranimove on
       different machines using the -f option to manually partition the  work.

       Animation  variable  assignments  appear  one per line in rnmfile.  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.  Comments in rnmfile start with a pound sign  (’#’)  and
       proceed to the end of line.

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

       OCTREE    The name of the base octree file, which should  be  generated
                 by  the  oconv(1)  command  using the -f option.  There is no
                 default value for this  variable.   If  no  RIF  variable  is
                 given, the octree must be specified.

       RIF       This  variable  specifies  a  rad(1)  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 control rendering parameters.  Ranimate will also  extract
                 default   settings   for   the   common   variables:  OCTREE,
                 RESOLUTION,  and  EXPOSURE.    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.

       move      This  variable  specifies  an  object  (or  objects)  with  a
                 specific  motion  and/or  rendering  priority.   Four   value
                 arguments  are expected for each appearance of this variable.
                 The first is the name of a parent move object, or  "void"  if
                 none.    If   given,  the  object’s  transformation  will  be
                 prepended to that of its parent.  The second argument is  the
                 name  of  this object, which will be used to name surfaces it
                 contains, and as  a  modifier  for  any  child  objects  that
                 reference  it.   The  third  argument  is  the transformation
                 string or file for this object.  If this argument is enclosed
                 in  quotes  and  begins  with a hyphen (’-’), then it will be
                 interpreted  as  a  static  transform  specification   a   la
                 xform(1).   Otherwise, the argument will be taken as the name
                 of a file that contains one such transform specification  per
                 line,  corresponding  to  frames  in the animation.  A period
                 (’.’) may be given if no object  transformation  is  desired.
                 The  fourth argument is the name of a RADIANCE scene file (or
                 files) to be given to  xform  for  transformation.   If  this
                 argument begins with an exclamation point (’!’), then it will
                 be interpreted as a command rather than a file.  A final word
                 corresponding  to  the  frame  number will be appended to the
                 command, and its output will be passed to the input of  xform
                 for  each  frame.   An  optinal  fifth argument specifies the
                 rendering priority for this object.  Values  greater  than  1
                 will  result  in  preferential  rendering of this object over
                 other portions of the image  when  it  appears  in  a  frame.
                 Values  less  than 1 will cause the rendering to neglect this
                 object in favor of other parts of the image.  A value of  3.0
                 can  be  interpreted as saying the viewer is three times more
                 likely to look at this object than the  background.   A  file
                 may  be  given  rather  than a floating point value, and this
                 file  must  contain  one  floating  point  number  per  line,
                 corresponding to frames in the animation.

       VIEWFILE  This  variable  names  a file from which ranimove 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.  An exception is made for a view  file  with  only  a
                 single  view, which is used for every frame of the animation.
                 In this case, the END variable must also be specified.   This
                 variable is required, and there is no default value.

       END       The  final  frame number in the animation.  The default value
                 is computed from the number of views in the  given  VIEWFILE.
                 Normally,  this  variable  will  only be given if the view is
                 static.

       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, no exposure
                 adjustments will be made.

       BASENAME  The base output file name for the final frames.  This  string
                 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
                 "frame%03d".

       MBLUR     This variable specifies the fraction of a frame time that the
                 shutter  is  simulated as being open for motion blur.  Motion
                 blur is computed  by  ranimove  using  image-based  rendering
                 methods,  and  will  not  be  exact.  The default value is 0,
                 meaning no motion blurring.

       RATE      This variable specifies the animation frame rate,  in  frames
                 per  second.   This  is needed to compute the animation error
                 visibility.  The default value is 8.

       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.

       lowq      This variable may be used to specify  rendering  options  for
                 the initial, low-quality ray samples.  It may be given either
                 as a list of rendering parameter  settings,  or  as  variable
                 settings  for the rad command, in which case the RIF variable
                 must also be specified.

       highq     This variable may be used to specify  rendering  options  for
                 the  final, high-quality ray samples.  It may be given either
                 as a list of rendering parameter  settings,  or  as  variable
                 settings  for the rad command, in which case the RIF variable
                 must also be specified.

       oconv     This variable may be used  to  specify  special  options  for
                 oconv.   See  the  oconv(1)  manual  page for a list of valid
                 options.  (The -f option is specified by default.)

EXAMPLES

       A minimal input file for ranimove might look like this:

          ::::::::::
          sample.rnm
          ::::::::::
          # The rad input file for our static scene:
          RIF= tutor.rif
          # The view file containing one view per frame:
          VIEWFILE= anim1.vf
          # Our central character and its motion:
          move= void myguy myguy.xf myguy.rad 2.0

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

         ranimove -n 0 -e sample.rnm

       This will print the variables we have given as well as  default  values
       ranimove has assigned for us.

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

         ranimove sample.rnm >& sample.err &

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

          RES= 1024                # shoot for 1024x resolution
          MBLUR= .25                    # apply camera motion blur
          RATE= 15                 # 15 frames/second
          EXP= anim1.exp                # adjust exposure according to file
          lowq= QUAL=Low                # low quality ray sampling
          highq= QUAL=Med                    # high quality ray sampling

       Note the use of abbreviation for variable names.

AUTHOR

       Greg Ward

SEE ALSO

       fieldcomb(1),  oconv(1),  pfilt(1),  pinterp(1),  rad(1),  ran2tiff(1),
       ranimate(1), rpict(1), xform(1)