- specify material parameters for the lighting model



C SPECIFICATION


PARAMETERS

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

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

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


C SPECIFICATION


PARAMETERS

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

       _param2
              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.

       _param3
              Specifies a pointer to the  value  or  values  that
              _param2 will be set to.


DESCRIPTION

       glMaterial  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  glLightModel  reference  page  for
       details  concerning  one-  and two-sided lighting calcula-
       tions.

       glMaterial takes three  arguments.   The  first,  _param1,
       specifies  whether  the  GL_FRONT  materials,  the GL_BACK
       materials, or both  GL_FRONT_AND_BACK  materials  will  be
       modified.  The second, _param2, specifies which of several
       parameters in one or both  sets  will  be  modified.   The
       third,  _param3,  specifies  what  value or values will be
                           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          _param3  contains  four   integer   or
                           floating-point values that specify the
                           diffuse RGBA reflectance of the  mate-
                           rial.   Integer values are mapped lin-
                           early such that the most positive rep-
                           resentable  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         _param3  contains  four   integer   or
                           floating-point values that specify the
                           specular RGBA reflectance of the mate-
                           rial.   Integer values are mapped lin-
                           early such that the most positive rep-
                           resentable  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         _param3  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        _param3 is a single integer or  float-
                           ing-point  value  that  specifies  the
                           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 glLightModel reference page for
                           a  discussion of color index lighting.


NOTES

       The material parameters can be updated at  any  time.   In
       particular,  glMaterial  can  be  called between a call to
       glBegin and the corresponding call to glEnd.   If  only  a
       single  material  parameter  is  to be changed per vertex,
       however, glColorMaterial is preferred over glMaterial (see
       glColorMaterial).

       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 _param1 or _param2
       is not an accepted value.

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


ASSOCIATED GETS

       glGetMaterial


SEE ALSO

       glColorMaterial, glLight, glLightModel



                                                                1