Provided by: libvolpack1-dev_1.0b3-9.1_amd64 bug

NAME

       vpSetLight - set lighting properties

SYNOPSIS

       #include <volpack.h>

       vpResult
       vpSetLight(vpc, light_num, property, n0, n1, n2)
           vpContext *vpc;
           int light_num;
           int property;
           double n0, n1, n2;

ARGUMENTS

       vpc    VolPack context from vpCreateContext.

       light_num
              A constant specifying a particular light source (VP_LIGHT0, VP_LIGHT1, ..., VP_LIGHT5).

       property
              A constant specifying one lighting property (VP_COLOR or VP_DIRECTION).

       n0, n1, n2
              Components of an RGB color (for VP_COLOR) or a direction vector (for VP_DIRECTION).

DESCRIPTION

       vpSetLight  is used to set the properties of a light source.  VolPack currently only supports directional
       light sources: each light is infinitely distant, so it can be fully characterized by a  direction  vector
       and a color.  The lighting properties are used by vpShadeTable to compute the shading lookup table, which
       is then used to compute a color for each voxel.

       To  initialize  the  lighting  environment,  call  vpSetLight  twice  for each light source which will be
       enabled.  One call should set the RGB components of the light color (by using the VP_COLOR code  for  the
       property  parameter),  and one call should set the XYZ components of the light direction vector (by using
       the VP_DIRECTION code for the property parameter).  The particular light source is specified with one  of
       the  light  source  codes  defined  in  volpack.h:  VP_LIGHT0, VP_LIGHT1, ..., VP_LIGHT5.  In the current
       implementation, at most six light sources may be specified.

       The RGB components of a light color should be numbers in the range 0.0  (zero  intensity)  to  1.0  (full
       intensity).  For grayscale renderings only the first (red) component is used and the other components may
       be set to any legal value.  The default is white light (1.0, 1.0, 1.0).

       The light direction vector points from the light source towards the lit object.  It is transformed by the
       current  contents  of  the modeling matrix (see vpCurrentMatrix).  This allows the direction vector to be
       specified in an arbitrary coordinate system, provided the current modeling matrix properly transforms the
       vector into world coordinates.  The default is the vector (1,1,1).

       Each light source contributes to the shading computation only if it is enabled by calling  vpEnable.   By
       default,  VP_LIGHT0  is  enabled  and  all  other  lights  are disabled.  The more light sources that are
       enabled, the longer it takes to precompute the contents of the shading lookup table.

       One additional property of the light sources can be set with vpEnable:  VP_LIGHT_BOTH_SIDES.   With  this
       option  enabled  each  light source shines in two opposing directions, as if there were two light sources
       facing each other with opposite direction vectors.  No  additional  computation  is  required  when  this
       option is enabled.

STATE VARIABLES

       Information  about  the  current  lighting  properties can be retrieved with the following state variable
       codes (see vpGeti(3)): VP_LIGHT_BOTH_SIDES.

ERRORS

       The normal return value is VP_OK.  The following error return values are possible:

       VPERROR_LIMIT_EXCEEDED
              The light number is invalid or exceeds an implementation limit.

       VPERROR_SINGULAR
              The light direction vector is a zero vector.

       VPERROR_BAD_VALUE
              The RGB color components are out of range.

       VPERROR_BAD_OPTION
              The property argument is invalid.

SEE ALSO

       VolPack(3), vpCreateContext(3), vpSetLookupShader(3), vpShadeTable(3), vpGetLight(3)

VolPack                                                                                            vpSetLight(3)