MyWebUniversity.com Home Page
 



Darwin Mac OS X man pages main menu
GLIGHT(3G)                                                        GLIGHT(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 imple-
               mentation, but at least eight lights are supported.   They  are
               identified  by  symbolic names of the form GLIGHTi where 0 <=
               i  < GLMAXLIGHTS.

       pname   Specifies a single-valued light  source  parameter  for  light.
               GLSPOTEXPONENT,    GLSPOTCUTOF,   GLCONSTANTATENUATION,
               GLINEARATENUATION,   and    GLQUADRATICATENUATION    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 GLIGHTi where 0 <=  i
              < GLMAXLIGHTS.

       pname  Specifies  a  light  source  parameter  for  light.  GLAMBIENT,
              GLDIFUSE,    GLSPECULAR,     GLPOSITION,     GLSPOTCUTOF,
              GLSPOTDIRECTION,   GLSPOTEXPONENT,  GLCONSTANTATENUATION,
              GLINEARATENUATION,    and    GLQUADRATICATENUATION    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 GLIGHTi, where 0
       <= i < GLMAXLIGHTS.  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 GLIGHTING. 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 GLIGHTi.

       The ten light parameters are as follows:

       GLAMBIENT          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).

       GLDIFUSE          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 GLIGHT00
                           is (1, 1, 1, 1);  for  other  lights,  the  initial
                           value is (0, 0, 0, 0).

       GLSPECULAR         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  GLIGHT00
                           is  (1,  1,  1,  1);  for other lights, the initial
                           value is (0, 0, 0, 0).

       GLPOSITION         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.

       GLSPOTDIRECTION   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
                           GLSPOTCUTOF  is  not 180, which it is initially.
                           The initial direction is (0, 0, -1).

       GLSPOTEXPONENT    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 GLSPOTCUTOF, next  paragraph).
                           The  initial  spot exponent is 0, resulting in uni-
                           form light distribution.

       GLSPOTCUTOF      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.

       GLCONSTANTATENUATION

       GLINEARATENUATION

       GLQUADRATICATENUATION
                           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 GLIGHTi = GLIGHT00 ] i.

ERORS
       GLINVALIDENUM is generated  if  either  light  or  pname  is  not  an
       accepted value.

       GLINVALIDVALUE  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.

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

ASOCIATED GETS
       glGetLight
       glIsEnabled with argument GLIGHTING

SEE ALSO
       glColoraterial, glLightodel, glaterial



                                                                   GLIGHT(3G)
Darwin Mac OS X man pages main menu

Contact us      |       About us      |       Term of use      |       Copyright © 2000-2010 MyWebUniversity.com ™