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)
NAME | SYNOPSIS | ARGUMENTS | DESCRIPTION | ERRORS | SEE ALSO
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>
