Skip site navigation (1)Skip section navigation (2)

  
 
  

home | help
GLLIGHT()							       GLLIGHT()

NAME
     glLightf, glLighti, glLightfv, glLightiv - set light source parameters

C SPECIFICATION
     void glLightf( GLenum light,
		    GLenum pname,
		    GLfloat param )
     void glLighti( GLenum light,
		    GLenum pname,
		    GLint param )

     delim $$

PARAMETERS
     light   Specifies a light.  The number of lights depends on the implementa-
	     tion, but at least eight lights are supported.  They are identified
	     by  symbolic  names  of  the  form  GL_LIGHT$i$  where 0 <= $ i $ <
	     GL_MAX_LIGHTS.

     pname   Specifies	a  single-valued  light  source  parameter  for   light.
	     GL_SPOT_EXPONENT,	GL_SPOT_CUTOFF, GL_CONSTANT_ATTENUATION, GL_LIN-
	     EAR_ATTENUATION, and GL_QUADRATIC_ATTENUATION are accepted.

     param   Specifies the value that parameter pname of light source light will
	     be set to.

C SPECIFICATION
     void glLightfv( GLenum light,
		     GLenum pname,
		     const GLfloat *params )
     void glLightiv( GLenum light,
		     GLenum pname,
		     const GLint *params )

PARAMETERS
     light  Specifies a light.	The number of lights depends on the  implementa-
	    tion,  but at least eight lights are supported.  They are identified
	    by symbolic names of the form  GL_LIGHT$i$	where  0  <=  $  i  $  <
	    GL_MAX_LIGHTS.

     pname  Specifies  a  light source parameter for light.  GL_AMBIENT, GL_DIF-
	    FUSE, GL_SPECULAR, GL_POSITION,  GL_SPOT_CUTOFF,  GL_SPOT_DIRECTION,
	    GL_SPOT_EXPONENT,	GL_CONSTANT_ATTENUATION,  GL_LINEAR_ATTENUATION,
	    and GL_QUADRATIC_ATTENUATION are accepted.

     params
	    Specifies a pointer to the value or values that parameter  pname  of
	    light source light will be set to.

DESCRIPTION
     glLight sets the values of individual light source parameters.  light names
     the  light  and  is a symbolic name of the form GL_LIGHT$i$, where 0 <= i <
     GL_MAX_LIGHTS.  pname specifies one of ten light source  parameters,  again
     by symbolic name.	params is either a single value or a pointer to an array
     that contains the new values.

     To  enable  and  disable  lighting calculation, call glEnable and glDisable
     with argument GL_LIGHTING. Lighting is initially disabled.  When it is  en-
     abled,  light  sources that are enabled contribute to the lighting calcula-
     tion.  Light source $i$ is enabled and disabled using glEnable  and  glDis-
     able with argument GL_LIGHT$i$.

     The ten light parameters are as follows:

     GL_AMBIENT 	 params  contains  four integer or floating-point values
			 that specify the ambient RGBA intensity of  the  light.
			 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
			 light intensity is (0, 0, 0, 1).

     GL_DIFFUSE 	 params  contains  four integer or floating-point values
			 that specify the diffuse RGBA intensity of  the  light.
			 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 value
			 for GL_LIGHT0 is (1, 1, 1, 1); for  other  lights,  the
			 initial value is (0, 0, 0, 0).

     GL_SPECULAR	 params  contains  four integer or floating-point values
			 that specify the specular RGBA intensity of the  light.
			 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 value
			 for GL_LIGHT0 is (1, 1, 1, 1); for  other  lights,  the
			 initial value is (0, 0, 0, 0).

     GL_POSITION	 params  contains  four integer or floating-point values
			 that specify the position of the light  in  homogeneous
			 object  coordinates.	Both  integer and floating-point
			 values are mapped directly.  Neither integer nor float-
			 ing-point values are clamped.

			 The position is transformed  by  the  modelview  matrix
			 when  glLight	is  called (just as if it were a point),
			 and it is stored in eye coordinates.  If the $w$ compo-
			 nent of the position is 0, the light is  treated  as  a
			 directional source.  Diffuse and specular lighting cal-
			 culations  take  the light's direction, but not its ac-
			 tual position, into account, and  attenuation	is  dis-
			 abled.  Otherwise, diffuse and specular lighting calcu-
			 lations  are  based on the actual location of the light
			 in eye coordinates, and attenuation  is  enabled.   The
			 initial  position  is	(0,  0, 1, 0); thus, the initial
			 light source is directional, parallel to,  and  in  the
			 direction of the $-z$ axis.

     GL_SPOT_DIRECTION	 params  contains three integer or floating-point values
			 that specify the direction of the light in  homogeneous
			 object  coordinates.	Both  integer and floating-point
			 values are mapped directly.  Neither integer nor float-
			 ing-point values are clamped.

			 The spot direction is transformed by the inverse of the
			 modelview matrix when glLight is called (just as if  it
			 were  a  normal),  and it is stored in eye coordinates.
			 It is significant only when GL_SPOT_CUTOFF is not  180,
			 which it is initially.  The initial direction is (0, 0,
			 -1).

     GL_SPOT_EXPONENT	 params is a single integer or floating-point value that
			 specifies the intensity distribution of the light.  In-
			 teger	and  floating-point  values are mapped directly.
			 Only values in the range [0,128] are accepted.

			 Effective light intensity is attenuated by  the  cosine
			 of the angle between the direction of the light and the
			 direction  from  the light to the vertex being lighted,
			 raised to the power of the spot exponent.  Thus, higher
			 spot exponents result in a more focused  light  source,
			 regardless  of  the spot cutoff angle (see GL_SPOT_CUT-
			 OFF, next paragraph).	The initial spot exponent is  0,
			 resulting in uniform light distribution.

     GL_SPOT_CUTOFF	 params is a single integer or floating-point value that
			 specifies  the  maximum spread angle of a light source.
			 Integer and floating-point values are mapped  directly.
			 Only  values  in the range [0,90] and the special value
			 180 are accepted.  If the angle between  the  direction
			 of  the  light  and the direction from the light to the
			 vertex being lighted is greater than  the  spot  cutoff
			 angle,  the light is completely masked.  Otherwise, its
			 intensity is controlled by the spot  exponent	and  the
			 attenuation  factors.	 The initial spot cutoff is 180,
			 resulting in uniform light distribution.

     GL_CONSTANT_ATTENUATION

     GL_LINEAR_ATTENUATION

     GL_QUADRATIC_ATTENUATION
			 params is a single integer or floating-point value that
			 specifies one of the three light  attenuation	factors.
			 Integer  and floating-point values are mapped directly.
			 Only nonnegative values are accepted.	If the light  is
			 positional,  rather  than directional, its intensity is
			 attenuated by the reciprocal of the sum of the constant
			 factor, the linear factor times  the  distance  between
			 the  light  and  the vertex being lighted, and the qua-
			 dratic factor times the square of  the  same  distance.
			 The  initial attenuation factors are (1, 0, 0), result-
			 ing in no attenuation.

NOTES
     It is always the case that GL_LIGHT$i$ = GL_LIGHT0 + $i$.

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

     GL_INVALID_VALUE is generated if a spot exponent value is specified outside
     the  range [0,128], or if spot cutoff is specified outside the range [0,90]
     (except for the special value 180), or if a negative attenuation factor  is
     specified.

     GL_INVALID_OPERATION is generated if glLight is executed between the execu-
     tion of glBegin and the corresponding execution of glEnd.

ASSOCIATED GETS
     glGetLight
     glIsEnabled with argument GL_LIGHTING

SEE ALSO
     glColorMaterial, glLightModel, glMaterial

								       GLLIGHT()

Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=glLighti&sektion=3&manpath=FreeBSD+Ports+15.1.quarterly>

home | help