Provided by: radiance_4R1+20120125-1.1_amd64 bug

NAME

       gensurf - generate a RADIANCE or Wavefront description of a curved surface

SYNOPSIS

       gensurf mat name 'x(s,t)' 'y(s,t)' 'z(s,t)' m n [ -e expr ][ -f file ][ -s ][ -o ]
       gensurf mat name 'x(s,t)' 'y(s,t)' dfile m n [ -e expr ][ -f file ][ -s ][ -o ]
       gensurf mat name dfile dfile dfile m n [ -s ][ -o ]

DESCRIPTION

       Gensurf  produces  either  a  RADIANCE  scene  description  or  a Wavefront .OBJ file of a
       functional surface defined by the parametric equations x(s,t), y(s,t),  and  z(s,t).   The
       surface  normal is defined by the right hand rule as applied to (s,t).  S will vary from 0
       to 1 in steps of 1/m, and t will vary from 0 to 1 in steps of 1/n.  The  surface  will  be
       composed  of 2*m*n or fewer triangles and quadrilaterals.  The expressions are of the same
       type used in RADIANCE function files.  Auxiliary expressions and/or files may be specified
       in  any  number  of  -e  and  -f  options.   The  -s option adds smoothing (surface normal
       interpolation) to the surface.  The -o option produces a Wavefront .OBJ file rather than a
       RADIANCE  scene  description.  This is most useful as input to the obj2mesh(1) program for
       producing a compiled mesh.  A single "usemtl" statement will appear at  the  beginning  of
       the .OBJ output, echoing the modifier given on the command line.

       Rough holes may be cut in the mesh by defining a valid(s,t) function.  Where this function
       is positive, polygon vertices will be produced.  Where it is negative, no geometry will be
       output.  Surface normal interpolation will ignore any invalid vertices.

       The  second  invocation form reads z data values from the file dfile.  This file must give
       either m*n or (m+1)*(n+1) floating point z values.  If m*n  values  are  given,  then  the
       values correspond to the centroid of each quadrilateral region.  If (m+1)*(n+1) values are
       given, then the values correspond to the  vertices  of  each  quadrilateral  region.   The
       ordering  of the data in the file is such that the s values are changing faster than the t
       values.  If a minus ('-') is given for dfile, then the values are read from  the  standard
       input.

       The  third invocation form is used to read coordinate triplets from a file or the standard
       input.  The three dfile arguments must all be the same, and the  corresponding  file  must
       contain  three  floating  point  values  for  each point location.  The ordering and other
       details are the same as those described for z value files above.

EXAMPLE

       To generate a tesselated sphere:

         gensurf crystal ball 'sin(PI*s)*cos(2*PI*t)' 'cos(PI*s)' 'sin(PI*s)*sin(2*PI*t)' 7 10

       To generate a 10x20 smoothed height field from 12 recorded vertex z values:

         gensurf dirt ground '10*s' '20*t' height.dat 2 3 -s

AUTHOR

       Greg Ward

BUGS

       The smoothing operation requires that functions be defined beyond the [0,1] boundaries  of
       s and t.

SEE ALSO

       genrbox(1),  genrev(1),  genworm(1),  icalc(1), obj2mesh(1), obj2rad(1), rpict(1), rvu(1),
       xform(1)