Man Linux: Main Page and Category List

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)