MirBSD manpage: glMaterial(3), glMaterialf(3), glMaterialfv(3), glMateriali(3), glMaterialiv(3)


GLMATERIAL(3G)      UNIX Programmer's Manual       GLMATERIAL(3G)

NAME

     glMaterialf, glMateriali, glMaterialfv, glMaterialiv -
     specify material parameters for the lighting model

C SPECIFICATION

     void glMaterialf( GLenum face,
                       GLenum pname,
                       GLfloat param )
     void glMateriali( GLenum face,
                       GLenum pname,
                       GLint 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.

C SPECIFICATION

     void glMaterialfv( GLenum face,
                        GLenum pname,
                        const GLfloat *params )
     void glMaterialiv( GLenum face,
                        GLenum pname,
                        const GLint *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

     glMaterial assigns values to material parameters. There are
     two matched sets of material parameters. One, the front-

MirBSD #10-current     Printed 2021-12-07                       1

GLMATERIAL(3G)      UNIX Programmer's Manual       GLMATERIAL(3G)

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

     glMaterial 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 dis-
     cussed in the glLightModel reference page. The parameters
     that can be specified using glMaterial, and their interpre-
     tations 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

MirBSD #10-current     Printed 2021-12-07                       2

GLMATERIAL(3G)      UNIX Programmer's Manual       GLMATERIAL(3G)

                         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 glMaterial 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
                         glLightModel reference page for a dis-
                         cussion of color index lighting.

MirBSD #10-current     Printed 2021-12-07                       3

GLMATERIAL(3G)      UNIX Programmer's Manual       GLMATERIAL(3G)

NOTES

     The material parameters can be updated at any time. In par-
     ticular, 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 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

     glGetMaterial

SEE ALSO

     glColorMaterial(3G), glLight(3G), glLightModel(3G)

MirBSD #10-current     Printed 2021-12-07                       4

Generated on 2021-12-07 11:07:08 by $MirOS: src/scripts/roff2htm,v 1.103 2021/01/23 20:24:35 tg Exp $ — This product includes material provided by mirabilos.

These manual pages and other documentation are copyrighted by their respective writers; their sources are available at the project’s CVSweb, AnonCVS and other mirrors. The rest is Copyright © 2002–2021 MirBSD.

This manual page’s HTML representation is supposed to be valid XHTML/1.1; if not, please send a bug report — diffs preferred.