Provided by: radiance_4R1+20120125-1.1_amd64 bug

NAME

       rad - render a RADIANCE scene

SYNOPSIS

       rad [ -s ][ -n | -N npr ][ -t ][ -e ][ -V ][ -w ][ -v view ][ -o device ] rfile [ VAR=value ..  ]

DESCRIPTION

       Rad  is  an  executive  program  that  reads  the  given  rfile  and makes appropriate calls to oconv(1),
       mkillum(1), rpict(1), pfilt(1), and/or rvu(1) to render a specific scene.  Variables in rfile give  input
       files   and  qualitative  information  about  the  rendering(s)  desired  that  together  enable  rad  to
       intelligently set parameter values and control the simulation.

       Normally, commands are echoed to the standard output as they are executed.  The -s option tells rad to do
       its work silently.  The -n option tells rad not to take any action  (ie.  not  to  actually  execute  any
       commands).   The  -N  option instructs rad to run as many as npr rendering processes in parallel.  The -t
       option tells rad to bring rendering files up to date relative to the  input  (scene  description)  files,
       without  performing  any actual calculations.  If no octree exists, it is still necessary to run oconv(1)
       to create one, since the -t option will not create invalid (i.e. empty) files,  and  a  valid  octree  is
       necessary  for the correct operation of rad.  The -e option tells rad to explicate all variables used for
       the simulation, including default values not specified in the input file, and print them on the  standard
       output.

       Normally,  rad  will  produce  one  picture  for  each view given in rfile.  The -v option may be used to
       specify a single desired view.  The view argument may either be a complete view  specification  (enclosed
       in  quotes  and  beginning  with an optional identifier) or a number or single-word identifier to match a
       view defined in rfile.  If the argument is one of the standard view identifiers, it may  or  may  not  be
       further  elaborated  in rfile.  (See "view" variable description, below.)  If the argument does not match
       any views in rfile and is not one of the standard views, no rendering  will  take  place.   This  may  be
       convenient  when  the  only  action  desired  of rad is the rebuilding of the octree.  In particular, the
       argument "0" will never match a view.

       If the -V option is given, each view will be printed on the standard output before being  applied,  in  a
       form  suitable  for  use  in a view file or rpict rendering sequence.  This is helpful as feedback or for
       accessing the rad view assignments without necessarily starting a rendering.

       By default, rad will run rpict and pfilt to produce a picture for each view.  The -o option specifies  an
       output  device for rvu (usually "x11") and runs this interactive program instead, using the first view in
       rfile or the view given with the -v option as the starting point.

       Additional variable settings may be added or overridden on the command line following rfile.  Upper  case
       variables  specified  more  than once will result in a warning message (unless the -w option is present),
       and the last value given will be the one used.

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

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

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

       OCTREE    The name of the octree file.  The default name is  the  same  as  rfile  but  with  any  suffix
                 replaced  by  ".oct".  (The octree must be a file -- rad cannot work with commands that produce
                 octrees.)

       ZONE      This variable specifies the volume of interest for this simulation.  The first word  is  either
                 "Interior"  or  "Exterior",  depending on whether the zone is to be observed from the inside or
                 the outside, respectively.  (A single letter may be given, and  case  does  not  matter.)   The
                 following  six  numbers  are  the minimum and maximum X coordinates, minimum and maximum Y, and
                 minimum and maximum Z for the zone perimeter.  It is important to give the zone as it  is  used
                 to  determine many of the rendering parameters.  The default exterior zone is the bounding cube
                 for the scene as computed by oconv.

       EXPOSURE  This variable tells rad how to adjust the exposure for display.  It is important  to  set  this
                 variable  properly as it is used to determine the ambient value.  An appropriate setting may be
                 discovered by running rvu and noting the exposure given by the "exposure =" command.  As in rvu
                 and pfilt, the exposure setting may be given either as a multiplier or as a  number  of  f-stop
                 adjustments  (eg.  +2  or  -1.5).   There  is no default value for this variable.  If it is not
                 given, an average level will be computed by pfilt and the ambient value will be set to  10  for
                 exterior zones and 0.01 for interior zones.

       EYESEP    The interocular spacing for stereo viewing.  I.e., the world distance between the pupils of the
                 left  and  right  eyes.  The default value is the sum of the three "ZONE" dimensions divided by
                 100.

       scene     This variable is used to specify one or more scene input files.   These  files  will  be  given
                 together  with the materials file(s) and any options specified by the "oconv" variable to oconv
                 to produce the octree given by the "OCTREE" variable.  In-line commands  may  be  specified  in
                 quotes instead of a file, beginning with an exclamation mark ('!').  If the "scene" variable is
                 not  present,  then  the  octree  must  already  exist  in order for rad to work.  Even if this
                 variable is given, oconv will not be run unless the octree is out of date with respect  to  the
                 input  files.   Note  that  the  order of files in this variable is important for oconv to work
                 properly, and files given in later variable assignments will appear after previous ones on  the
                 oconv command line.

       materials This  variable  is  used  to specify files that, although they must appear on the oconv command
                 line, do not affect the actual octree itself.  Keeping the materials in separate  files  allows
                 them  to be modified without requiring the octree to be rebuilt (a sometimes costly procedure).
                 These files should not contain any geometry, and the -f option must not be given in the "oconv"
                 variable for this to work.

       illum     This variable is used to specify files with surfaces to be  converted  into  illum  sources  by
                 mkillum(1).   When  this  variable is given, additional octree files will be created to contain
                 the scene before and after illum source conversion.  These files will be named according to the
                 (default) value of the OCTREEE variable, with either a '0' or a '1' appearing just  before  the
                 file type suffix (usually ".oct").

       objects   This  variable  is  used for files that, although they do not appear on the oconv command line,
                 contain geometric information that is referenced indirectly by the  scene  files.   If  any  of
                 these  files  is changed, the octree will be rebuilt.  (The raddepend(1) command may be used to
                 find these dependencies automatically.)

       view      This variable is used to specify a desired view for this zone.  Any number of "view" lines  may
                 be given, and each will result in a rendered picture (unless the -v or -o option is specified).
                 The  value  for  this variable is an optional identifier followed by any number of view options
                 (see rpict(1) for a complete listing).  The identifier is used in file naming and associating a
                 desired view with  the  -v  command  line  option.   Also,  there  are  several  standard  view
                 identifiers  defined  by  rad.   These  standard  views  are  specified  by strings of the form
                 "[Xx]?[Yy]?[Zz]?[vlcahs]?".  (That is, an optional  upper  or  lower  case  X  followed  by  an
                 optional  upper  or  lower  case Y followed by an optional upper or lower case Z followed by an
                 optional lower case V, L, C, A or H.)  The letters indicate the desired  view  position,  where
                 upper case X means maximum X, lower case means minimum and so on.  The final letter is the view
                 type,  where  'v' is perspective (the default), 'l' is parallel, 'c' is a cylindrical panorama,
                 ´a' is angular fisheye, 'h' is hemispherical fisheye, and 's' is a planisphere  (stereographic)
                 fisheye.  A perspective view from maximum X, minimum Y would be "Xy" or "Xyv".  A parallel view
                 from maximum Z would be "Zl".  If "ZONE" is an interior zone, the standard views will be inside
                 the  perimeter.   If it is an exterior zone, the standard views will be outside.  Note that the
                 standard views are best used as starting points, and additional arguments may  be  given  after
                 the  identifier  to modify a standard view to suit a particular model.  The default view is "X"
                 if no views are specified.  A single specified view of "0" means no views will be automatically
                 generated.

       UP        The vertical axis for this scene.  A negative axis may be specified  with  a  minus  sign  (eg.
                 "-Y").  There is no default value for this variable, although the standard views assume Z is up
                 if no other axis is specified.

       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 512.

       QUALITY   This variable sets the overall rendering quality desired.  It can have  one  of  three  values,
                 "LOW", "MEDIUM" or "HIGH".  These may be abbreviated by their first letter, and may be in upper
                 or  lower  case.   Most of the rendering options will be affected by this setting.  The default
                 value is "L".

       PENUMBRAS This is a boolean variable indicating whether or not penumbras are desired.  A value of  "TRUE"
                 will  result  in  penumbras  (soft shadows), and a value of "FALSE" will result in no penumbras
                 (sharp shadows).  True and false may be written in upper or lower case, and may be  abbreviated
                 by  a  single letter.  Renderings generally proceed much faster without penumbras.  The default
                 value is "F".

       INDIRECT  This variable indicates how many diffuse reflections are important in the general  lighting  of
                 this  zone.   A  direct  lighting  system  (eg.  fluorescent  troffers recessed in the ceiling)
                 corresponds to an indirect level of 0.  An indirect lighting system (eg.  hanging  fluorescents
                 directed at a reflective ceiling) corresponds to an indirect level of 1.  A diffuse light shelf
                 reflecting  sunlight  onto the ceiling would correspond to an indirect level of 2.  The setting
                 of this variable partially determines  how  many  interreflections  will  be  calculated.   The
                 default value is 0.

       PICTURE   This  is  the  root  name of the output picture file(s).  This name will have appended the view
                 identifier (or a number if no id was used) and a ".hdr" suffix.  If a picture corresponding  to
                 a  specific view exists and is not out of date with respect to the given octree, it will not be
                 re-rendered.  The default value for this variable is the root portion of rfile.

       RAWFILE   This is the root name of the finished, raw rpict output file.  If specified,  rad  will  rename
                 the  original rpict output file once it is finished and filtered rather than removing it, which
                 is the default action.  The given root name will be expanded in the same way as  the  "PICTURE"
                 variable,  and  if  the "RAWFILE" and "PICTURE" variables are identical, then no filtering will
                 take place.

       ZFILE     This is the root name of the raw distance file produced by the -z option  of  rpict.   To  this
                 root  name, an underscore plus the view name plus a ".zbf" suffix will be added.  If no "ZFILE"
                 is specified, none will be produced.

       AMBFILE   This is the name of the file where "ambient" or diffuse interreflection values will  be  stored
                 by  rpict  or  rvu.   Although  it is not required, an ambient file should be given whenever an
                 interreflection calculation is expected.  This  will  optimize  successive  runs  and  minimize
                 artifacts.   An  interreflection calculation will take place when the "QUALITY" variable is set
                 to HIGH, or when the "QUALITY" variable is set to MEDIUM and "INDIRECT" is positive.  There  is
                 no default value for this variable.

       DETAIL    This variable specifies the level of visual detail in this zone, and is used to determine image
                 sampling  rate,  among  other  things.  If there are few surfaces and simple shading, then this
                 should be set to LOW.  For a zone with some furniture it might be set to MEDIUM.  If the  space
                 is  very cluttered or contains a lot of geometric detail and textures, then it should be set to
                 HIGH.  The default value is "M".

       VARIABILITY
                 This variable tells rad how much light varies over the surfaces of this zone, and  is  used  to
                 determine  what  level  of  sampling is necessary in the indirect calculation.  For an electric
                 lighting system with uniform coverage, the value should be set to LOW.  For a space  with  spot
                 lighting  or  a window with sky illumination only, it might be set to MEDIUM.  For a space with
                 penetrating sunlight casting bright patches in a few places, it should be  set  to  HIGH.   The
                 default value is "L".

       OPTFILE   This  is  the  name  of a file in which rad will place the appropriate rendering options.  This
                 file can later be accessed by rpict or rvu in subsequent manual runs using  the  at-sign  ('@')
                 file  insert  option.   (Using  an  "OPTFILE" also reduces the length of the rendering command,
                 which improves appearance and may even be necessary on some  systems.)   There  is  no  default
                 value for this variable.

       REPORT    This  variable  may  be  used  to  specify  a reporting interval for batch rendering.  Given in
                 minutes, this value is multiplied by 60 and passed to rpict with the -t option.  If a  filename
                 is  given  after the interval, it will be used as the error file for reports and error messages
                 instead of the standard error.  (See the -e option of rpict(1).  There is no default value  for
                 this variable.

       oconv     This  variable may be used to specify special options to oconv.  If the first word of the first
                 instance of this variable is not an option, it will be used in place  of  the  default  command
                 path, "oconv".  See the oconv(1) manual page for a list of valid options.

       mkillum   This  variable  may be used to specify additional options to mkillum.  If the first word of the
                 first instance of this variable is not an option, it will be  used  in  place  of  the  default
                 command path, "mkillum".  See the rtrace(1) manual page for a list of valid options.

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

       rpict     This variable may be used to specify overriding options specific to rpict.  If the  first  word
                 of  the  first  instance  of  this  variable  is not an option, it will be used in place of the
                 default command path, "rpict".  See the rpict(1) man page for a list of valid options.

       rvu       This variable may be used to specify overriding options specific to rvu.  If the first word  of
                 the  first  instance of this variable is not an option, it will be used in place of the default
                 command path, "rvu".  See the rvu(1) man page for a list of valid options.

       pfilt     This variable may be used to specify additional options to pfilt.  If the  first  word  of  the
                 first  instance  of  this  variable  is  not an option, it will be used in place of the default
                 command path, "pfilt".  See the pfilt(1) manual page for details.

EXAMPLES

       A minimal input file for rad might look like this:

          ::::::::::
          sample.rif
          ::::::::::
          # The octree we want to use:
          OCTREE= tutor.oct        # w/o this line, name would be "sample.oct"
          # Our scene input files:
          scene= sky.rad outside.rad room.rad srcwindow.rad
          # The interior zone cavity:
          ZONE= I  0 3  0 2  0 1.75          # default would be scene bounding cube
          # The z-axis is up:
          UP= Z                    # no default - would use view spec.
          # Our exposure needs one f-stop boost:
          EXPOSURE= +1             # default is computed ex post facto

       Note that we have not specified any views in the file above.  The standard default view "X" would be used
       if we were to run rad on this file.  If we only want to see what default values  rad  would  use  without
       actually executing anything, we can invoke it thus:

         rad -n -e sample.rif

       This  will print the variables we have given as well as default values rad has assigned for us.  Also, we
       will see the list of commands that rad would have executed had the -n option not been present.  (Note  if
       the  octree,  "tutor.oct",  is not present, an error will result as it is needed to determine some of the
       opiton settings.)

       Different option combinations have specific uses, ie:

         rad -v 0 sample.rif OPT=samp.opt   # build octree, put options in "sample.opt"
         rad -n -e -s sample.rif > full.rif # make a complete rad file
         rad -n sample.rif > script.sh # make a script of commands
         rad -V -v Zl -n -s sample.rif > plan.vf # make a plan view file
         rad -t sample.rif        # update files after minor change to input
         rad -s sample.rif &      # execute silently in the background
         rad -N 2 sample.rif # render views using two parallel rpict calls
         rad -N 4 -v 1 sample.rif # render first view with four rpiece calls

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

          QUAL= MED      # default was low
          DET= low       # default was medium - our space is almost empty
          PEN= True      # we want to see soft shadows from our window
          VAR= hi        # daylight can result in fairly harsh lighting
          view= XYa -vv 120   # let's try a fisheye view
          PICT= tutor         # our picture name will be "tutor_XYa.hdr"

       Note the use of abbreviations, and the modification of a standard view.  Now we can invoke rad to take  a
       look at our scene interactively with rvu:

         rad -o x11 sample.rif

       Rad  will  run oconv first to create the octree (assuming it doesn't already exist), then rvu with a long
       list of options.  Let's say that from within rvu, we wrote out the view files "view1.vp" and  "view2.vp".
       We could add these to "sample.rif" like so:

         view= vw1 -vf view1.vp        # Our first view
         view= vw2 -vf view2.vp        # Our second view
         RESOLUTION= 1024         # Let's go for a higher resolution result

       To start rvu again using vw2 instead of the default, we use:

         rad -o x11 -v vw2 sample.rif

       Once we are happy with the variable settings in our file, we can run rad in the background to produce one
       image for each view:

         rad sample.rif REP=5 >& errfile &

       This will report progress every five minutes to "errfile".

FILES

       $(PICTURE)_$(view).unf   Unfinished output of rpict

AUTHOR

       Greg Ward

BUGS

       You  cannot  run  more  than one rad process at a time on the same input file, as the second process will
       attempt to recover the output files of the first process, damaging the results.  The exceptions  to  this
       are running interactively via the -o option, or rendering different views using the -v option.

       Incremental  building  of  octrees  is  not  supported  as  it  would add considerable complexity to rad.
       Complicated scene builds should still be left to make(1), which  has  a  robust  mechanism  for  handling
       hierarchical  dependencies.   If  make is used in this fashion, then only the "OCTREE" variable of rad is
       needed.

       The use of some pfilt options is awkward,  since  the  "EXPOSURE"  variable  results  in  a  single  pass
       invocation  (the  -1  option  of  pfilt  and  two  passes are necessary for certain effects, such as star
       patterns.  The way around this problem is to specify a "RAWFILE"  that  is  the  same  as  the  "PICTURE"
       variable  so  that no filtering takes place, then call pfilt manually.  This is preferable to leaving out
       the "EXPOSURE" variable, since the exposure level is needed to accurately determine the ambient value for
       rpict.

       The use of upper and lower case naming for the standard views may be problematic on  systems  that  don't
       distinguish case in filenames.

SEE ALSO

       glrad(1),  make(1),  mkillum(1),  objview(1),  oconv(1),  pfilt(1),  raddepend(1), ranimate(1), rholo(1),
       rpict(1), rpiece(1), rtrace(1), rvu(1), touch(1), vgaimage(1), ximage(1)

RADIANCE                                             2/1/99                                               RAD(1)