glLightModel.3gl








Name


  glLightModelf, glLightModeli,	glLightModelfv,	glLightModeliv - set the

  lighting model parameters





C Specification


  void glLightModelf( GLenum pname,

		      GLfloat param )

  void glLightModeli( GLenum pname,

		      GLint param )





Parameters




  pname	  Specifies a single-valued lighting model parameter.

	  GL_LIGHT_MODEL_LOCAL_VIEWER and GL_LIGHT_MODEL_TWO_SIDE are

	  accepted.



  param	  Specifies the	value that param will be set to.



C Specification


  void glLightModelfv( GLenum pname,

		       const GLfloat *params )

  void glLightModeliv( GLenum pname,

		       const GLint *params )





Parameters




  pname

       Specifies a lighting model parameter.  GL_LIGHT_MODEL_AMBIENT,

       GL_LIGHT_MODEL_LOCAL_VIEWER, and	GL_LIGHT_MODEL_TWO_SIDE	are accepted.



  params

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





Description


  glLightModel sets the	lighting model parameter.  pname names a parameter

  and params gives the new value.  There are three lighting model parameters:



  GL_LIGHT_MODEL_AMBIENT

	    params contains four integer or floating-point values that

	    specify the	ambient	RGBA intensity of the entire scene.  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 default ambient scene	intensity is (0.2, 0.2,	0.2,

	    1.0).



  GL_LIGHT_MODEL_LOCAL_VIEWER

	    params is a	single integer or floating-point value that specifies

	    how	specular reflection angles are computed.  If params is 0 (or

	    0.0), specular reflection angles take the view direction to	be

	    parallel to	and in the direction of	the -z axis, regardless	of

	    the	location of the	vertex in eye coordinates.  Otherwise

	    specular reflections are computed from the origin of the eye

	    coordinate system.	The default is 0.



  GL_LIGHT_MODEL_TWO_SIDE

	    params is a	single integer or floating-point value that specifies

	    whether one- or two-sided lighting calculations are	done for

	    polygons.  It has no effect	on the lighting	calculations for

	    points, lines, or bitmaps.	If params is 0 (or 0.0), one-sided

	    lighting is	specified, and only the	front material parameters are

	    used in the	lighting equation.  Otherwise, two-sided lighting is

	    specified.	In this	case, vertices of back-facing polygons are

	    lighted using the back material parameters,	and have their

	    normals reversed before the	lighting equation is evaluated.

	    Vertices of	front-facing polygons are always lighted using the

	    front material parameters, with no change to their normals.	 The

	    default is 0.



  In RGBA mode,	the lighted color of a vertex is the sum of the	material

  emission intensity, the product of the material ambient reflectance and the

  lighting model full-scene ambient intensity, and the contribution of each

  enabled light	source.	 Each light source contributes the sum of three

  terms: ambient, diffuse, and specular.  The ambient light source

  contribution is the product of the material ambient reflectance and the

  light's ambient intensity.  The diffuse light	source contribution is the

  product of the material diffuse reflectance, the light's diffuse intensity,

  and the dot product of the vertex's normal with the normalized vector	from

  the vertex to	the light source.  The specular	light source contribution is

  the product of the material specular reflectance, the	light's	specular

  intensity, and the dot product of the	normalized vertex-to-eye and vertex-

  to-light vectors, raised to the power	of the shininess of the	material.

  All three light source contributions are attenuated equally based on the

  distance from	the vertex to the light	source and on light source direction,

  spread exponent, and spread cutoff angle.  All dot products are replaced

  with zero if they evaluate to	a negative value.



  The alpha component of the resulting lighted color is	set to the alpha

  value	of the material	diffuse	reflectance.



  In color index mode, the value of the	lighted	index of a vertex ranges from

  the ambient to the specular values passed to glMaterial using

  GL_COLOR_INDEXES.  Diffuse and specular coefficients,	computed with a	(.30,

  .59, .11) weighting of the lights' colors, the shininess of the material,

  and the same reflection and attenuation equations as in the RGBA case,

  determine how	much above ambient the resulting index is.



Errors


  GL_INVALID_ENUM is generated if pname	is not an accepted value.



  GL_INVALID_OPERATION is generated if glLightModel is called between a	call

  to glBegin and the corresponding call	to glEnd.



Associated Gets


  glGet	with argument GL_LIGHT_MODEL_AMBIENT

  glGet	with argument GL_LIGHT_MODEL_LOCAL_VIEWER

  glGet	with argument GL_LIGHT_MODEL_TWO_SIDE

  glIsEnabled with argument GL_LIGHTING



See Also


  glLight, glMaterial








Introduction | Alphabetic | Specification

Last Edited: Mon, May 22, 1995

AFV