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

FreeBSD Manual Pages

  
 
  

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

NAME
       vpClassifyVolume, vpDestroyClassifiedVolume - create/destroy a preclas-
       sified 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
       structure optimized for rendering speed.	  vpClassifyVolume  should  be
       called  after  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 defined with vpSetClassifierTable,	and the	 mini-
       mum  opacity  threshold should be set with the VP_MIN_VOXEL_OPACITY pa-
       rameter 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 vpClassifyScanline(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 vpCreateM-
       inMaxOctree(3))	then  it is used to accelerate computation of the pre-
       classified 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 vpClassi-
       fyVolume	again.	Only one preclassified volume may be stored in a  ren-
       dering 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	dimen-
	      sions.

       VPERROR_BAD_CLASSIFIER
	      The opacity transfer function tables have	invalid	sizes  or  are
	      associated  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)

NAME | SYNOPSIS | ARGUMENTS | DESCRIPTION | STATE VARIABLES | ERRORS | SEE ALSO

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

home | help