manpagez: man pages & more
man glLight(3)
Home | html | info | man
glLight(3)                                                        glLight(3)




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 imple-
               mentation, 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  imple-
              mentation,  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 symbolic name of the form GL_LIGHTi, where 0
       <= i < GL_MAX_LIGHTS.  pname specifies one of ten light source  parame-
       ters,  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 cal-
       culation.   Light  source  i is enabled and disabled using glEnable and
       glDisable with argument GL_LIGHTi.

       The ten light parameters are as follows:

       GL_AMBIENT          params contains four integer or floating-point val-
                           ues  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  val-
                           ues  are clamped.  The initial ambient light inten-
                           sity is (0, 0, 0, 1).

       GL_DIFFUSE          params contains four integer or floating-point val-
                           ues  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  val-
                           ues  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 val-
                           ues 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 val-
                           ues 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 val-
                           ues that specify the position of the light in homo-
                           geneous  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 spec-
                           ular  lighting calculations take the light's direc-
                           tion, 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  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 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
                           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.   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  ver-
                           tex  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 uni-
                           form 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  inten-
                           sity  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), result-
                           ing 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 negative
       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(3), glLightModel(3), glMaterial(3)



                                                                   glLight(3)

Mac OS X 10.6 - Generated Thu Sep 17 20:20:24 CDT 2009
© manpagez.com 2000-2024
Individual documents may contain additional copyright information.