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

  
 
  

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

NAME
     vpClassifyVolume,	vpDestroyClassifiedVolume  - create/destroy a preclassi-
     fied volume for fast rendering

SYNOPSIS
     #include <volpack.h>

     vpResult
     vpClassifyVolume(vpc)
	 vpContext *vpc;

     vpResult
     vpDestroyClassifyVolume(vpc)
	 vpContext *vpc;

ARGUMENTS
     vpc    VolPack context from vpCreateContext.

DESCRIPTION
     vpClassifyVolume is used to compute a preclassified  volume  for  the  fast
     rendering	algorithm.   The preclassified volume is an internal data struc-
     ture optimized for rendering speed.  vpClassifyVolume should be called  af-
     ter  a  voxel array has been defined (with vpSetVolumeSize, vpSetVoxelSize,
     vpSetVoxelField, and vpSetRawVoxels) and initialized (with  vpVolumeNormals
     or  a user-defined routine).  An opacity transfer function must also be de-
     fined with vpSetClassifierTable, and the minimum opacity  threshold  should
     be  set with the VP_MIN_VOXEL_OPACITY parameter to vpSeti.  Two alternative
     routines are provided to compute a preclassified volume directly from a  3D
     scalar array or a sequence of scalar scanlines in order to avoid allocating
     a	large  3D  voxel  array  (see  vpClassifyScalars(3)  and vpClassifyScan-
     line(3)).

     vpClassifyVolume classifies and processes the data in the voxel  array  and
     creates  a separate preclassified volume.	The preclassified data is stored
     in a run-length encoded format, and voxels that have opacities less than or
     equal to the minimum opacity  threshold  are  discarded.	Normally,  three
     copies  of  the preclassified volume are created, one for each of the three
     principal viewing axis.  If only one or two copies are  necessary	for  the
     required  range of viewpoints then vpSeti may be called with one or more of
     the  following  parameters  to   specify	which	copies	 are   required:
     VP_VIEW_X_AXIS,  VP_VIEW_Y_AXIS, VP_VIEW_Z_AXIS.  Using these parameters is
     not recommended unless swap space is lacking.

     If a min-max octree is present in the rendering context  (see  vpCreateMin-
     MaxOctree(3))  then  it is used to accelerate computation of the preclassi-
     fied volume.  It is advantageous to create a min-max  octree  if  the  same
     volume  data  will  be  classified  multiple  times (with different opacity
     transfer functions).

     Once vpClassifyVolume is finished, the original voxel array  is  no  longer
     necessary	for  rendering	as long as the opacity transfer function and the
     volume data do not change.  If any changes are made, then the preclassified
     volume must be explicitly recomputed  by  calling	vpClassifyVolume  again.
     Only  one	preclassified  volume  may be stored in a rendering context at a
     time.  Calling vpClassifyVolume causes any existing preclassified volume to
     be destroyed.

     vpDestroyClassifiedVolume destroys the  current  preclassified  volume  and
     frees the associated space.

STATE VARIABLES
     Information  about  the  current preclassified volume can be retrieved with
     the  following  state  variable  codes  (see  vpGeti(3)):	 VP_VIEW_X_SIZE,
     VP_VIEW_Y_SIZE,	 VP_VIEW_Z_SIZE,     VP_VIEW_X_AXIS,	 VP_VIEW_Y_AXIS,
     VP_VIEW_Z_AXIS.

ERRORS
     The normal return value is VP_OK.	The following error  return  values  are
     possible:

     VPERROR_BAD_VOXEL
	    The  voxel	size or the voxel fields have not been specified or have
	    been incorrectly specified.

     VPERROR_BAD_VOLUME
	    The volume array or volume dimensions have not  been  specified,  or
	    the size of the volume array does not match the volume dimensions.

     VPERROR_BAD_CLASSIFIER
	    The opacity transfer function tables have invalid sizes or are asso-
	    ciated with invalid voxel fields or have been incorrectly specified.

SEE ALSO
     VolPack(3),    vpCreateContext(3),    vpSetClassifierTable(3),    vpClassi-
     fyScalars(3), vpClassifyScanline(3)

VolPack 						     vpClassifyVolume(3)

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

home | help