fglMaterial(3G)

fglMaterialf, fglMateriali, fglMaterialfv, fglMaterialiv - specify material parameters for the lighting model

As shipped in IRIX 6.5.19. Last changed in IRIX 6.5.15.

NAME
     fglMaterialf, fglMateriali, fglMaterialfv, fglMaterialiv - specify
     material parameters for the lighting model


FORTRAN SPECIFICATION
     SUBROUTINE fglMaterialf( INTEGER*4 face,
                              INTEGER*4 pname,
                              REAL*4 param )
     SUBROUTINE fglMateriali( INTEGER*4 face,
                              INTEGER*4 pname,
                              INTEGER*4 param )


PARAMETERS
     face    Specifies which face or faces are being updated.  Must be one of
             GL_FRONT, GL_BACK, or GL_FRONT_AND_BACK.

     pname   Specifies the single-valued material parameter of the face or
             faces that is being updated.  Must be GL_SHININESS.

     param   Specifies the value that parameter GL_SHININESS will be set to.

FORTRAN SPECIFICATION
     SUBROUTINE fglMaterialfv( INTEGER*4 face,
                               INTEGER*4 pname,
                               CHARACTER*8 params )
     SUBROUTINE fglMaterialiv( INTEGER*4 face,
                               INTEGER*4 pname,
                               CHARACTER*8 params )


PARAMETERS
     face Specifies which face or faces are being updated.  Must be one of
          GL_FRONT, GL_BACK, or GL_FRONT_AND_BACK.

     pname
          Specifies the material parameter of the face or faces that is being
          updated.  Must be one of GL_AMBIENT, GL_DIFFUSE, GL_SPECULAR,
          GL_EMISSION, GL_SHININESS, GL_AMBIENT_AND_DIFFUSE,  or
          GL_COLOR_INDEXES.

     params
          Specifies a pointer to the value or values that pname will be set
          to.

DESCRIPTION
     fglMaterial assigns values to material parameters.  There are two matched
     sets of material parameters.  One, the front-facing set, is used to shade
     points, lines, bitmaps, and all polygons (when two-sided lighting is
     disabled), or just front-facing polygons (when two-sided lighting is
     enabled).  The other set, back-facing, is used to shade back-facing
     polygons only when two-sided lighting is enabled.  Refer to the
     fglLightModel reference page for details concerning one- and two-sided
     lighting calculations.

     fglMaterial takes three arguments.  The first, face, specifies whether
     the GL_FRONT materials, the GL_BACK materials, or both GL_FRONT_AND_BACK
     materials will be modified.  The second, pname, specifies which of
     several parameters in one or both sets will be modified.  The third,
     params, specifies what value or values will be assigned to the specified
     parameter.

     Material parameters are used in the lighting equation that is optionally
     applied to each vertex.  The equation is discussed in the fglLightModel
     reference page.  The parameters that can be specified using fglMaterial,
     and their interpretations by the lighting equation, are as follows:

     GL_AMBIENT          params contains four integer or floating-point values
                         that specify the ambient RGBA reflectance of the
                         material.  Integer values are mapped linearly such
                         that the most positive representable value maps to
                         1.0, and the most negative representable value maps
                         to -1.0.  Floating-point values are mapped directly.
                         Neither integer nor floating-point values are
                         clamped.  The initial ambient reflectance for both
                         front- and back-facing materials is (0.2, 0.2, 0.2,
                         1.0).

     GL_DIFFUSE          params contains four integer or floating-point values
                         that specify the diffuse RGBA reflectance of the
                         material.  Integer values are mapped linearly such
                         that the most positive representable value maps to
                         1.0, and the most negative representable value maps
                         to -1.0.  Floating-point values are mapped directly.
                         Neither integer nor floating-point values are
                         clamped.  The initial diffuse reflectance for both
                         front- and back-facing materials is (0.8, 0.8, 0.8,
                         1.0).

     GL_SPECULAR         params contains four integer or floating-point values
                         that specify the specular RGBA reflectance of the
                         material.  Integer values are mapped linearly such
                         that the most positive representable value maps to
                         1.0, and the most negative representable value maps
                         to -1.0.  Floating-point values are mapped directly.
                         Neither integer nor floating-point values are
                         clamped.  The initial specular reflectance for both
                         front- and back-facing materials is (0, 0, 0, 1).

     GL_EMISSION         params contains four integer or floating-point values
                         that specify the RGBA emitted light intensity of the
                         material.  Integer values are mapped linearly such
                         that the most positive representable value maps to
                         1.0, and the most negative representable value maps
                         to -1.0.  Floating-point values are mapped directly.
                         Neither integer nor floating-point values are
                         clamped.  The initial emission intensity for both
                         front- and back-facing materials is (0, 0, 0, 1).

     GL_SHININESS        params is a single integer or floating-point value
                         that specifies the RGBA specular exponent of the
                         material.  Integer and floating-point values are
                         mapped directly.  Only values in the range [0,128]
                         are accepted.  The initial specular exponent for both
                         front- and back-facing materials is 0.

     GL_AMBIENT_AND_DIFFUSE
                         Equivalent to calling fglMaterial twice with the same
                         parameter values, once with GL_AMBIENT and once with
                         GL_DIFFUSE.

     GL_COLOR_INDEXES    params contains three integer or floating-point
                         values specifying the color indices for ambient,
                         diffuse, and specular lighting.  These three values,
                         and GL_SHININESS, are the only material values used
                         by the color index mode lighting equation.  Refer to
                         the fglLightModel reference page for a discussion of
                         color index lighting.

NOTES
     The material parameters can be updated at any time.  In particular,
     fglMaterial can be called between a call to fglBegin and the
     corresponding call to fglEnd.  If only a single material parameter is to
     be changed per vertex, however, fglColorMaterial is preferred over
     fglMaterial (see fglColorMaterial).

     While the ambient, diffuse, specular and emission material parameters all
     have alpha components, only the diffuse alpha component is used in the
     lighting computation.

ERRORS
     GL_INVALID_ENUM is generated if either face or pname is not an accepted
     value.

     GL_INVALID_VALUE is generated if a specular exponent outside the range
     [0,128] is specified.

ASSOCIATED GETS
     fglGetMaterial


SEE ALSO
     fglColorMaterial, fglLight, fglLightModel