Man Linux: Main Page and Category List

NAME

       oconv - create an octree from a RADIANCE scene description

SYNOPSIS

       oconv [ -i octree | -b xmin ymin zmin size ][ -n objlim ][ -r maxres ][
       -f ][ -w ][ - ] [ input ..  ]

DESCRIPTION

       Oconv adds each scene description input to octree and sends the  result
       to  the  standard  output.   Each input can be either a file name, or a
       command (enclosed in quotes and preceded by  a  ‘!’).   Similarly,  the
       octree  input  may  be given as a command preceded by a ‘!’.  If any of
       the surfaces will not fit in octree, an error message  is  printed  and
       the  program aborts.  If no octree is given, a new one is created large
       enough for all of the surfaces.

       The -b option allows the user to give a bounding cube  for  the  scene,
       starting  at xmin ymin zmin and having a side length size.  If the cube
       does not contain all of the surfaces, an error results.  The -b and  -i
       options are mutually exclusive.

       The  -n  option  specifies the maximum surface set size for each voxel.
       Larger numbers result in quicker  octree  generation,  but  potentially
       slower  rendering.   Smaller  values  may  or  may  not  produce faster
       renderings, since the default number (6) is close to optimal  for  most
       scenes.

       The  -r option specifies the maximum octree resolution.  This should be
       greater than or  equal  to  the  ratio  of  the  largest  and  smallest
       dimensions   in  the  scene  (ie.  surface  size  or  distance  between
       surfaces).  The default is 16384.

       The -f option  produces  a  frozen  octree  containing  all  the  scene
       information.   Normally,  only a reference to the scene files is stored
       in the octree, and changes to those files may  invalidate  the  result.
       The  freeze  option  is  useful  when  the  octree file’s integrity and
       loading speed is more important than its size, or when the octree is to
       be  relocated  to  another  directory,  and  is  especially  useful for
       creating library objects for the "instance"  primitive  type.   If  the
       input octree is frozen, the output will be also.

       The -w option suppresses warnings.

       A  hyphen  by  itself  (’-’)  tells  oconv  to read scene data from its
       standard input.  This also implies the -f option.

       The only scene file changes that do not require octree regeneration are
       modifications  to  non-surface  parameters.   If  the  coordinates of a
       surface are changed, or any primitives are added or deleted, oconv must
       be  run  again.   Programs  will abort with a "stale octree" message if
       they detect any dangerous inconsistencies between the  octree  and  the
       input files.

       Although  the  octree file format is binary, it is meant to be portable
       between machines.  The only limitation is that machines with  radically
       different  integer sizes will not work together.  For the best results,
       the -f option should be used if an octree is to be  used  in  different
       environments.

DIAGNOSTICS

       There are four basic error types reported by oconv:

              warning - a non-fatal input-related error

              fatal - an unrecoverable input-related error

              system - a system-related error

              internal - a fatal error related to program limitations

              consistency - a program-caused error

       Most  errors  are  self-explanatory.   However,  the following internal
       errors should be mentioned:

       Too many scene files
              Reduce the number of scene files  by  combining  them  or  using
              calls to xform(1) within files to create a hierarchy.

       Set overflow in addobject (id)
              This error occurs when too many surfaces are close together in a
              scene.  Either too many surfaces are lying right on top of  each
              other, or the bounding cube is inflated from an oversized object
              or an improper -b specification.  If hundreds of triangles  come
              together at a common vertex, it may not be possible to create an
              octree from the object.  This happens most often when inane  CAD
              systems create spheres using a polar tessellation.  Chances are,
              the surface "id" is near one of those causing the problem.

       Hash table overflow in fullnode
              This error is caused by too many surfaces.  If it is possible to
              create  an  octree for the scene at all, it will have to be done
              in stages using the -i option.

EXAMPLE

       To  add  book1,  book2  and  a  transformed   book3   to   the   octree
       ‘‘scene.oct’’:

         oconv -i scene.oct book1 book2 ’\!xform -rz 30 book3’ > newscene.oct

AUTHOR

       Greg Ward

NOTES

       In  the octree, the names of the scene files are stored rather than the
       scene information.  This means that a  new  octree  must  be  generated
       whenever  the  scene  files are changed or moved.  Also, an octree that
       has been moved to a new directory will not be able to find scene  files
       with  relative  pathnames.   The  freeze  option avoids these problems.
       make(1)  or  rad(1)  can  be  used  to  automate  octree  creation  and
       maintenance.

SEE ALSO

       getbbox(1), getinfo(1), make(1), obj2mesh(1), rad(1), rpict(1), rvu(1),
       rtrace(1), xform(1)