vpShadeTable - compute the contents of the shading lookup table
- vpContext *vpc;
- VolPack context from vpCreateContext.
computes the contents of the shading lookup table previously
specified with vpLookupShader
. For each entry in the table, the Phong
shading equation is evaluated using the current lighting properties (as
specified with vpSetLight
), material properties (as specified with
), and viewing parameters (as specified with the view
transformation commands). See vpSetMaterial(3) for a description of the
This function should be called before rendering a volume if any of the lighting
or material properties have changed or if the viewpoint has changed since the
last call to vpShadeTable
. It should not be called if shading is
performed using a callback function or if the shading lookup tables are
initialized by a user-defined routine.
There is one state variable that affects the operation of vpShadeTable
If VP_CLAMP_SHADE_TABLE is enabled (see vpEnable(3)), then values are clamped
to the range 0.0-255.0 before they are stored in the table. If this option is
not enabled then no clamping is performed. Clamping is enabled by default, but
can be turned off to achieve special effects. For example, if all of the
voxels in a data set have very low opacity then the rendered image may be very
dark. To brighten it, multiply all of the material parameter coefficients by a
constant, possibly making the values exceed 1.0, and turn off clamping.
The normal return value is VP_OK. The following error return values are
- One of the current view transformation matrices is singular.
- The shading lookup tables are sized incorrectly, or one of the voxel
fields used to index the tables is invalid, or the number of material
types is invalid.
- The angle between the shadow light vector and the viewing direction is too
large (must be less than 45 degrees). Either change the light direction or
disable shadows (see vpSetShadowLookupShader).
VolPack(3), vpCreateContext(3), vpCurrentMatrix(3), vpSetLookupShader(3),