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

FreeBSD Manual Pages

  
 
  

home | help
vpSetLight(3)		   Library Functions Manual		 vpSetLight(3)

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_DI-
	      RECTION).

       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 infi-
       nitely distant, so it can be fully characterized	by a direction	vector
       and  a color.  The lighting properties are used by vpShadeTable to com-
       pute 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	compo-
       nents 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 di-
       rection vector (by using	the VP_DIRECTION code for the property parame-
       ter).   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 ma-
       trix (see vpCurrentMatrix).  This allows	the  direction	vector	to  be
       specified  in an	arbitrary coordinate system, provided the current mod-
       eling 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)

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

home | help