ADC Home > Reference Library > Reference > Mac OS X > Mac OS X Man Pages

 

This document is a Mac OS X manual page. Manual pages are a command-line technology for providing documentation. You can view these manual pages locally using the man(1) command. These manual pages come from many different sources, and thus, have a variety of writing styles.

For more information about the manual page format, see the manual page for manpages(5).



GLLIGHT(3G)                                                                                      GLLIGHT(3G)



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 )


PARAMETERS
       light   Specifies  a  light.   The number of lights depends on the implementation, but at least eight
               lights are supported.  They are identified by symbolic names of the form GL_LIGHTi 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_LINEAR_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 implementation, but at least eight
              lights are supported.  They are identified by symbolic names of the form GL_LIGHTi where 0  <=
              i  < GL_MAX_LIGHTS.

       pname  Specifies   a   light  source  parameter  for  light.   GL_AMBIENT,  GL_DIFFUSE,  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  sym-
       bolic  name  of  the  form GL_LIGHTi, 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 enabled, light sources that are enabled contribute to the
       lighting calculation.  Light source i is enabled and disabled using glEnable and glDisable with argu-
       ment GL_LIGHTi.

       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  repre-sentable representable
                           sentable value maps to -1.0.  Floating-point values are mapped directly.  Neither
                           integer nor floating-point values are clamped.  The initial ambient light  inten-sity intensity
                           sity 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 repre-sentable representable
                           sentable 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  repre-sentable representable
                           sentable 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  floating-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 component
                           of the position is 0, the light is treated as a directional source.  Diffuse  and
                           specular  lighting  calculations  take  the light's direction, but not its actual
                           position, into account, and attenuation  is  disabled.   Otherwise,  diffuse  and
                           specular  lighting  calculations 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 direc-tion direction
                           tion 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  floating-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  coordi-nates. coordinates.
                           nates.   It  is significant only when GL_SPOT_CUTOFF is not 180, which it is ini-tially. initially.
                           tially.  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.   Integer  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_CUTOFF, 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 quadratic factor times the square of the
                           same distance.  The initial attenuation factors are (1, 0, 0),  resulting  in  no
                           attenuation.

NOTES
       It is always the case that GL_LIGHTi = 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  nega-tive negative
       tive attenuation factor is specified.

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

ASSOCIATED GETS
       glGetLight
       glIsEnabled with argument GL_LIGHTING

SEE ALSO
       glColorMaterial(3G), glLightModel(3G), glMaterial(3G)




                                                                                                 GLLIGHT(3G)

Did this document help you?
Yes: Tell us what works for you.
It’s good, but: Report typos, inaccuracies, and so forth.
It wasn’t helpful: Tell us what would have helped.