GSP
Quick Navigator

Search Site

Unix VPS
A - Starter
B - Basic
C - Preferred
D - Commercial
MPS - Dedicated
Previous VPSs
* Sign Up! *

Support
Contact Us
Online Help
Handbooks
Domain Status
Man Pages

FAQ
Virtual Servers
Pricing
Billing
Technical

Network
Facilities
Connectivity
Topology Map

Miscellaneous
Server Agreement
Year 2038
Credits
 

USA Flag

 

 

Man Pages
vpNormalIndex(3) FreeBSD Library Functions Manual vpNormalIndex(3)

vpNormalIndex, vpNormal - encode/decode a surface normal vector

#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;

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 vector.
ny_ptr
Pointer to storage for returning Y component of surface normal vector.
nz_ptr
Pointer to storage for returning Z component of surface normal vector.

These two routines are used to convert surface normal vectors between encoded and unencoded forms. An unencoded vector is described by its three components (stored as double-precision floating point numbers) in an orthogonal coordinate system. An encoded vector is described by a single integer that is suitable for use as an index in a shading lookup table. VolPack's built-in shading routines require the use of surface normal vectors encoded using vpNormalIndex (or one of the higher-level normal vector computation 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 unencoded 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 vector computed by vpNormal may not be equal to the original vector passed to vpNormalIndex.

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.

VolPack(3), vpVolumeNormals(3), vpScanlineNormals(3)
VolPack

Search for    or go to Top of page |  Section 3 |  Main Index

Powered by GSP Visit the GSP FreeBSD Man Page Interface.
Output converted with ManDoc.