Man Linux: Main Page and Category List

NAME

       tmesh2rad - convert a triangular mesh to a RADIANCE scene description

SYNOPSIS

       tmesh2rad [ -o obj ][ -m mat ][ -p pat ] [ input ..  ]

DESCRIPTION

       Tmesh2rad  converts one or more triangle-mesh files to a RADIANCE scene
       description.  The -o option may be used  to  assign  a  default  object
       name.  The single letter "T" is used if no name is given on the command
       line or in the file.  The -m option may be used  to  assign  a  default
       material name.  The non-material "void" is used as a default if none is
       given on the command line or in the file.  The -p option may be used to
       assign  a  default  picture for a surface pattern.  If none is given on
       the command line  or  in  the  file,  the  surface  will  not  have  an
       associated pattern.

FILE FORMAT

       A  triangle-mesh  is a free-format ASCII file composed of the following
       eight primitive types.  Each primitive is begun with a  single,  white-
       space-delimited letter:

       # Comment Whatever  follows  up  until  the  end of line is passed as a
                 comment to the output.  Note that there must be at least  one
                 space or tab following the pound-sign.

       o name    The white-space-delimited string name is used as a prefix for
                 all following output triangles.

       m material
                 The white-space-delimited string  material  is  used  as  the
                 modifier name for all following output triangles.

       p picture The  white-space-delimited string picture is used as the name
                 of the RADIANCE picture file to be used as a pattern for  all
                 following  output  triangles  with properly defined vertices.
                 (See i primitive below.)

       v id x y z
                 Defines the vertex id with 3-dimensional coordinates x, y and
                 z.   The  identifier,  id  must  be  some small, non-negative
                 integer value.  If the same  integer  is  used  for  a  later
                 vertex  definition,  this definition will be lost, though any
                 triangles using the vertex prior to its redefinition will  be
                 unaffected.

       n nx ny nz
                 Defines  a  surface  normal  vector  with  the  3-dimensional
                 components nx, ny and nz.  This  vector  will  be  associated
                 with the most recently defined vertex, and is often placed on
                 the same line as the  vertex  definition  for  clarity.   The
                 vector need not be normalized.

       i u v     Defines a picture index for the most recently defined vertex.
                 The u value will be  used  to  lookup  the  horizontal  pixel
                 coordinate  in  the  currently  defined picture.  The v value
                 will be used to lookup the vertical pixel  coordinate.   (See
                 the   RADIANCE   reference  manual  for  details  on  picture
                 coordinate values.)   As  with  associated  surface  normals,
                 picture    indices   are   interpolated   using   barycentric
                 coordinates  based  on  the  triangle  vertices.   If   these
                 coordinates are calculated correctly, this should result in a
                 smooth mapping of a pattern onto the surface mesh.

       t id1 id2 id3
                 Create a triangle connecting the three vertices identified by
                 id1,  id2  and id3.  The right-hand rule is used to determine
                 the default surface normal orientation, and this  should  not
                 be  too far from the associated vertex normals (if any).  All
                 three vertices must have an associated normal if the triangle
                 is  to  be  smoothed.   If  a picture file is defined and all
                 three vertices have pattern  indices  associated  with  them,
                 then  this  picture  will  be used as a pattern to modify the
                 triangle’s color.

       We realize there are many similar T-mesh file formats in existence, and
       that  it  would  have been just as easy to support one of these formats
       directly.  The disadvantage to supporting an existing  format  is  that
       conversion  from  other formats might prove difficult.  It was our hope
       to provide a "greatest common multiple" format that would  support  all
       similar  T-mesh formats, rather than supporting WaveFront’s .obj format
       (for example) and being unable to associate a pattern with  an  object.
       Converting from other formats should be relatively straightforward.  In
       many cases, an awk(1), rcalc(1) or  even  a  sed(1)  script  should  be
       sufficient.

EXAMPLE

       Here is an example T-mesh file:

              # Our object name:
              o test_object
              # Our material:
              m puce
              # Our vertices:
              v 1  10   15   5
              v 2  10   -15  5
              v 3  0    -15  0
              v 4  -10  15   -5
              # Two triangles joined together:
              t 1 2 3
              t 2 3 4

       Which generates the following output:

              ## T-mesh read from: <stdin>

              # Our material:

              # Our vertices:

              # Two triangles joined together:

              puce polygon test_object.1
              0
              0
              9
                              10                 15                  5
                              10                -15                  5
                               0                -15                  0

              puce polygon test_object.2
              0
              0
              9
                              10                -15                  5
                               0                -15                  0
                             -10                 15                 -5

       Here is another example:

              # A partial cylinder:
              m BluePlastic
              v 1 -14.673 -3.119    50 n -0.95677 -0.203374 1.17936e-10
              v 2 -12.136 -8.817   -50 n -0.791363 -0.574922 4.84915e-10
              v 3 -12.136 -8.817    50 n -0.791363 -0.574922 4.84915e-10
              t 1 2 3
              m OrangePlastic
              v 1 -7.501 -12.991    50 n -0.549094 -0.812427 -1.45812e-09
              v 2 -12.136 -8.817    50 n -0.791363 -0.574922 4.84915e-10
              v 3 -12.136 -8.817   -50 n -0.791363 -0.574922 4.84915e-10
              t 1 2 3
              m BluePlastic
              v 1 -1.568 -14.918    50 n -0.171094 -0.965568 -5.69788e-09
              v 2 -7.501 -12.991    50 n -0.549094 -0.812427 -1.45812e-09
              v 3 -7.501 -12.991   -50 n -0.429001 -0.881759 -3.6502e-09
              t 1 2 3

       Note   that   the   same  three  vertices  were  used  repeatedly,  and
       intermingled with the triangle definitions.

AUTHOR

       Greg Ward

BUGS

       Triangle smoothing doesn’t work very well for glass or  trans  material
       types  in Radiance, since textures cause distorted transmission through
       these materials.  It is best to use the  dielectric  material  type  if
       smooth transmission is desired.

SEE ALSO

       arch2rad(1),   awk(1),   ies2rad(1),  thf2rad(1),  oconv(1),  rcalc(1),
       sed(1), xform(1)