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

  
 
  

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

NAME
     vpNormalIndex, vpNormal - encode/decode a surface normal vector

SYNOPSIS
     #include <volpack.h>

     int
     vpNormalIndex(nx, ny, nz)
	 double nx, ny, nz;

     vpResult
     vpNormal(n, nx_ptr, ny_ptr, nz_ptr)
	 int n;
	 double *nx_ptr, *ny_ptr, *nz_ptr;

ARGUMENTS
     nx     X component of surface normal vector.

     ny     Y component of surface normal vector.

     nz     Z component of surface normal vector.

     n	    Encoded surface normal vector.

     nx_ptr Pointer  to storage for returning X component of surface normal vec-
	    tor.

     ny_ptr Pointer to storage for returning Y component of surface normal  vec-
	    tor.

     nz_ptr Pointer  to storage for returning Z component of surface normal vec-
	    tor.

DESCRIPTION
     These two routines are used to convert surface normal vectors  between  en-
     coded  and  unencoded forms.  An unencoded vector is described by its three
     components (stored as double-precision floating point numbers)  in  an  or-
     thogonal coordinate system.  An encoded vector is described by a single in-
     teger that is suitable for use as an index in a shading lookup table.  Vol-
     Pack's  built-in shading routines require the use of surface normal vectors
     encoded using vpNormalIndex (or one of the higher-level normal vector  com-
     putation  routines,  vpVolumeNormals  or  vpScanlineNormals).  User-defined
     shading routines or lookup tables are not required to  use  encoded  normal
     vectors.

     vpNormalIndex  computes  an  encoded vector from the components of an unen-
     coded vector.  The vector must be normalized (nx*nx + ny*ny + nz*nz  =  1).
     The  maximum  possible  value of an encoded normal is given by the constant
     VP_NORM_MAX.

     vpNormal computes the components of a vector from the encoded integer form.
     The encoded normal has less resolution than the unencoded form, so the vec-
     tor computed by vpNormal may not be equal to the original vector passed  to
     vpNormalIndex.

ERRORS
     vpNormalIndex always returns a valid encoded normal vector.

     vpNormal  normally  returns the value VP_OK.  The following return value is
     possible:

     VPERROR_BAD_VALUE
	    The encoded normal vector is invalid.

SEE ALSO
     VolPack(3), vpVolumeNormals(3), vpScanlineNormals(3)

VolPack 							vpNormalIndex(3)

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

home | help