glMaterialfv

TriggerTek Logo
abcdefghijklmnopqrstuvwxyz_
GLMATERIAL(3G)						       GLMATERIAL(3G)



NAME
       glMaterialf,  glMateriali,  glMaterialfv, glMaterialiv - specify mate-
       rial 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-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 mod-
       ified.	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  option-
       ally  applied  to  each	vertex.	  The  equation	 is  discussed in the
       glLightModel reference page.  The parameters  that  can	be  specified
       using  glMaterial, 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	 lin-
			   early  such	that  the most positive representable
			   value maps to 1.0, and the  most  negative  repre-
			   sentable  value maps to -1.0.  Floating-point val-
			   ues are  mapped  directly.	Neither	 integer  nor
			   floating-point  values  are	clamped.  The initial
			   ambient reflectance for both front- and  back-fac-
			   ing 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 lin-
			   early such that the	most  positive	representable
			   value  maps	to  1.0, and the most negative repre-
			   sentable value maps to -1.0.	 Floating-point	 val-
			   ues	are  mapped  directly.	 Neither  integer nor
			   floating-point values are  clamped.	 The  initial
			   diffuse  reflectance for both front- and back-fac-
			   ing 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	 lin-
			   early  such	that  the most positive representable
			   value maps to 1.0, and the  most  negative  repre-
			   sentable  value maps to -1.0.  Floating-point val-
			   ues are  mapped  directly.	Neither	 integer  nor
			   floating-point  values  are	clamped.  The initial
			   specular reflectance for both front- and back-fac-
			   ing materials is (0, 0, 0, 1).

       GL_EMISSION	   params  contains  four  integer  or floating-point
			   values that specify the RGBA emitted light  inten-
			   sity	 of  the material.  Integer values are mapped
			   linearly such that the most positive representable
			   value  maps	to  1.0, and the most negative repre-
			   sentable value maps to -1.0.	 Floating-point	 val-
			   ues	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 val-
			   ues,	 and  GL_SHININESS,  are  the  only  material
			   values used by the color index mode lighting equa-
			   tion.  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 correspond-
       ing  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)



							       GLMATERIAL(3G)