GENSURF(1)                                                          GENSURF(1)



NNAAMMEE
       gensurf - generate a RADIANCE or Wavefront description of a curved sur-
       face

SSYYNNOOPPSSIISS
       ggeennssuurrff mmaatt nnaammee ''xx((ss,,tt))'' ''yy((ss,,tt))'' ''zz((ss,,tt))'' mm nn [ --ee eexxpprr ][ --ff ffiillee ][
       --ss ][ --oo ]
       ggeennssuurrff mmaatt nnaammee ''xx((ss,,tt))'' ''yy((ss,,tt))'' ddffiillee mm nn [ --ee eexxpprr ][ --ff ffiillee ][ --ss
       ][ --oo ]
       ggeennssuurrff mmaatt nnaammee ddffiillee ddffiillee ddffiillee mm nn [ --ss ][ --oo ]

DDEESSCCRRIIPPTTIIOONN
       _G_e_n_s_u_r_f 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 expres-
       sions 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
       _o_b_j_2_m_e_s_h_(_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  _d_f_i_l_e_.
       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  _d_f_i_l_e_,  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 _d_f_i_l_e arguments must all be  the
       same, and the corresponding file must contain three floating point val-
       ues for each point location.  The ordering and other  details  are  the
       same as those described for z value files above.

EEXXAAMMPPLLEE
       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

AAUUTTHHOORR
       Greg Ward

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

SSEEEE AALLSSOO
       genbox(1), genrev(1), genworm(1),  icalc(1),  obj2mesh(1),  obj2rad(1),
       rpict(1), rvu(1), xform(1)



RADIANCE                           11/15/93                         GENSURF(1)
