Portable library for fast volume rendering

VolPack is a portable library of fast volume rendering algorithms that

produce high-quality images.

LinearAlgebra

These routines form a simple linear algebra package used internally by VolPack. The routines are also available as utility routines for use by the application...

These routines form a simple linear algebra package used internally by VolPack. The routines are also available as utility routines for use by the application...

VolPack

VolPack is a portable software library for volume rendering. It is based on a new family of fast volume rendering algorithms (see Philippe Lacroute and Marc...

VolPack is a portable software library for volume rendering. It is based on a new family of fast volume rendering algorithms (see Philippe Lacroute and Marc...

vpBoxFilter

These routines can be used to initialize filter weight tables for use with vpSetFilter and vpResample. See the vpSetFilter man page for information on the...

These routines can be used to initialize filter weight tables for use with vpSetFilter and vpResample. See the vpSetFilter man page for information on the...

vpBruteForceRender

This function is for debugging purposes only. It performs the same function as vpRenderRawVolume, but uses a simpler, very inefficient algorithm. The two...

This function is for debugging purposes only. It performs the same function as vpRenderRawVolume, but uses a simpler, very inefficient algorithm. The two...

vpClassifyScalars

vpClassifyScalars combines the functionality of vpVolumeNormals and vpClassifyVolume to produce a preclassified volume directly from a 3D array of scalar values...

vpClassifyScalars combines the functionality of vpVolumeNormals and vpClassifyVolume to produce a preclassified volume directly from a 3D array of scalar values...

vpClassifyScanline

vpClassifyScanline is used to incrementally compute a preclassified volume by classifying one scanline of voxels and storing the result in the current...

vpClassifyScanline is used to incrementally compute a preclassified volume by classifying one scanline of voxels and storing the result in the current...

vpClassifyVolume

vpClassifyVolume is used to compute a preclassified volume for the fast rendering algorithm. The preclassified volume is an internal data structure optimized...

vpClassifyVolume is used to compute a preclassified volume for the fast rendering algorithm. The preclassified volume is an internal data structure optimized...

vpCreateContext

vpCreateContext returns a handle for a new rendering context. It contains default values for most of the rendering parameters. vpDestroyContext destroys a...

vpCreateContext returns a handle for a new rendering context. It contains default values for most of the rendering parameters. vpDestroyContext destroys a...

vpCreateMinMaxOctree

These routines are used to create and destroy a min-max octree, an internal data structure that is used to accelerate classifying and rendering volume data in a...

These routines are used to create and destroy a min-max octree, an internal data structure that is used to accelerate classifying and rendering volume data in a...

vpEnable

vpEnable is used to enable or disable boolean options in a rendering context. If the value option is 0 then the option is disabled; otherwise it is enabled.

vpEnable is used to enable or disable boolean options in a rendering context. If the value option is 0 then the option is disabled; otherwise it is enabled.

vpExtract

vpExtract is used to extract one field from a rectangular region of the 3D voxel array or the preclassified volume and store the result in a separate array. It...

vpExtract is used to extract one field from a rectangular region of the 3D voxel array or the preclassified volume and store the result in a separate array. It...

vpGetError

These routines are used for error handling. vpGetError return the error code from the first function call that failed since the last call to vpGetError...

These routines are used for error handling. vpGetError return the error code from the first function call that failed since the last call to vpGetError...

vpGeti

These functions are used the get the values of integer-, double- or pointer-valued state variables in a rendering context. The following list summarizes the...

These functions are used the get the values of integer-, double- or pointer-valued state variables in a rendering context. The following list summarizes the...

vpGetImage

This is a debugging function. It is used to retrieve the contents of one of the temporary rendering buffers used during rendering, namely the intermediate image...

This is a debugging function. It is used to retrieve the contents of one of the temporary rendering buffers used during rendering, namely the intermediate image...

vpGetLight

vpGetLight is used to get the properties of a light source. The arguments are exactly analogous to vpSetLight except that the final three arguments are pointers...

vpGetLight is used to get the properties of a light source. The arguments are exactly analogous to vpSetLight except that the final three arguments are pointers...

vpGetMaterial

vpGetMaterial is used to get the properties of a material type. The arguments are exactly analogous to vpSetMaterial except that the surface_side argument may...

vpGetMaterial is used to get the properties of a material type. The arguments are exactly analogous to vpSetMaterial except that the surface_side argument may...

vpGetMatrix

vpGetMatrix retrieves the contents of one of the transformation matrices (see vpCurrentMatrix(3)). The special code VP_SCREEN causes the function to compute the...

vpGetMatrix retrieves the contents of one of the transformation matrices (see vpCurrentMatrix(3)). The special code VP_SCREEN causes the function to compute the...

vpGetTimer

These functions are used for measuring the performance of the VolPack library. To use them, the library must be compiled with a special flag: either...

These functions are used for measuring the performance of the VolPack library. To use them, the library must be compiled with a special flag: either...

vpIdentityMatrix

vpIdentityMatrix is used to load a 4-by-4 identity matrix into the current transformation matrix. Use vpCurrentMatrix to set the current transformation matrix.

vpIdentityMatrix is used to load a 4-by-4 identity matrix into the current transformation matrix. Use vpCurrentMatrix to set the current transformation matrix.

vpLoadRawVolume

These functions are used to load volume data structures into a rendering context from files in the format written by the VolPack file storing routines (see...

These functions are used to load volume data structures into a rendering context from files in the format written by the VolPack file storing routines (see...

vpMultMatrix

vpMultMatrix is used to multiply the current transformation matrix by an arbitrary 4-by-4 transformation matrix. Use vpCurrentMatrix to set the current...

vpMultMatrix is used to multiply the current transformation matrix by an arbitrary 4-by-4 transformation matrix. Use vpCurrentMatrix to set the current...

vpNormalIndex

These two routines are used to convert surface normal vectors between encoded and unencoded forms. An unencoded vector is described by its three components...

These two routines are used to convert surface normal vectors between encoded and unencoded forms. An unencoded vector is described by its three components...

vpOctreeMask

vpOctreeMask is used for performance debugging when rendering volumes with a min-max octree. During rendering the min-max octree is used to help determine which...

vpOctreeMask is used for performance debugging when rendering volumes with a min-max octree. During rendering the min-max octree is used to help determine which...

vpRamp

vpRamp is a utility routine for initializing linear arrays of floating-point numbers with piecewise-linear ramps. A ramp is defined by a set of (x, y) pairs...

vpRamp is a utility routine for initializing linear arrays of floating-point numbers with piecewise-linear ramps. A ramp is defined by a set of (x, y) pairs...

vpRenderRawVolume

These routines are used to render a volume using the parameters in a rendering context. vpRenderRawVolume renders the data in the current voxel array and stores...

These routines are used to render a volume using the parameters in a rendering context. vpRenderRawVolume renders the data in the current voxel array and stores...

vpResample

vpResample is used to resample an array to a new grid with a different resolution. It can be used to scale up or decimate an array of volume data, for instance...

vpResample is used to resample an array to a new grid with a different resolution. It can be used to scale up or decimate an array of volume data, for instance...

vpRotate

vpRotate is used to multiply the current transformation matrix by a 4-by-4 rotation matrix.

vpRotate is used to multiply the current transformation matrix by a 4-by-4 rotation matrix.

vpScale

vpScale is used to multiply the current transformation matrix by a 4-by-4 scaling matrix. The arguments specify independent scale factors for each of the three...

vpScale is used to multiply the current transformation matrix by a 4-by-4 scaling matrix. The arguments specify independent scale factors for each of the three...

vpScanlineNormals

vpScanlineNormals is used to precompute values for voxel fields used in classification and shading algorithms. The input is a collection of 5 adjacent 1D arrays...

vpScanlineNormals is used to precompute values for voxel fields used in classification and shading algorithms. The input is a collection of 5 adjacent 1D arrays...

vpSetClassifierTable

vpSetClassifierTable is used to specify lookup tables that define an opacity transfer function. The opacity transfer function must be of the form:opacity =...

vpSetClassifierTable is used to specify lookup tables that define an opacity transfer function. The opacity transfer function must be of the form:opacity =...

vpSetClientData

vpSetClientData is used to store a pointer to application-specific client data in the VolPack context. This pointer is passed to some of the callback routines...

vpSetClientData is used to store a pointer to application-specific client data in the VolPack context. This pointer is passed to some of the callback routines...

vpSetDebug

vpSetDebug is used to enable or disable a debugging option in a rendering context. The debugging options cause messages to be printed during execution. These...

vpSetDebug is used to enable or disable a debugging option in a rendering context. The debugging options cause messages to be printed during execution. These...

vpSetDepthCueing

vpSetDepthCueing is used to set the parameters for depth cueing. Depth cueing is a simulated fog that makes objects in the distance appear darker than...

vpSetDepthCueing is used to set the parameters for depth cueing. Depth cueing is a simulated fog that makes objects in the distance appear darker than...

vpSetFilter

vpSetFilter is used to specify a table of filter weights before resampling an array with vpResample. The table can be used to specify an arbitrary separable...

vpSetFilter is used to specify a table of filter weights before resampling an array with vpResample. The table can be used to specify an arbitrary separable...

vpSeti

These functions are used to set the values of integer- or double-valued options in a rendering context.

These functions are used to set the values of integer- or double-valued options in a rendering context.

vpSetImage

vpSetImage is used to specify a buffer for storing the result image during rendering. The width and height parameters specify the size of the result image. The...

vpSetImage is used to specify a buffer for storing the result image during rendering. The width and height parameters specify the size of the result image. The...

vpSetLight

vpSetLight is used to set the properties of a light source. VolPack currently only supports directional light sources: each light is infinitely distant, so it...

vpSetLight is used to set the properties of a light source. VolPack currently only supports directional light sources: each light is infinitely distant, so it...

vpSetLookupShader

vpSetLookupShader is used to specify lookup tables that define a shading function. The lookup-table shading algorithm provided by VolPack is designed to support...

vpSetLookupShader is used to specify lookup tables that define a shading function. The lookup-table shading algorithm provided by VolPack is designed to support...

vpSetMaterial

vpSetMaterial is used to set the properties of a material type. Each voxel may be composed of a mixture of several different material types, as described in...

vpSetMaterial is used to set the properties of a material type. Each voxel may be composed of a mixture of several different material types, as described in...

vpSetMatrix

vpSetMatrix is used to load a 4-by-4 transformation matrix into the current transformation matrix. Use vpCurrentMatrix to set the current transformation matrix.

vpSetMatrix is used to load a 4-by-4 transformation matrix into the current transformation matrix. Use vpCurrentMatrix to set the current transformation matrix.

vpSetRawVoxels

vpSetRawVoxels is used to specify a 3D array that contains the volume data. The array must be large enough for the volume dimensions specified with...

vpSetRawVoxels is used to specify a 3D array that contains the volume data. The array must be large enough for the volume dimensions specified with...

vpSetShadowLookupShader

vpSetShadowLookupShader is used to specify lookup tables that define a shading function for rendering a volume with shadows. It should be used instead of...

vpSetShadowLookupShader is used to specify lookup tables that define a shading function for rendering a volume with shadows. It should be used instead of...

vpSetVolumeSize

vpSetVolumeSize is used to define the dimensions of a volume. It must be called before volume data is loaded into a rendering context. Any existing precomputed...

vpSetVolumeSize is used to define the dimensions of a volume. It must be called before volume data is loaded into a rendering context. Any existing precomputed...

vpSetVoxelField

vpSetVoxelField is used to define the size and location of each field in a voxel. Once you have chosen the sizes and order for the voxel fields, call...

vpSetVoxelField is used to define the size and location of each field in a voxel. Once you have chosen the sizes and order for the voxel fields, call...

vpSetVoxelSize

vpSetVoxelSize is used to define the size in bytes and the number of fields in a voxel. Each voxel field is analogous to a field in a C structure and the...

vpSetVoxelSize is used to define the size in bytes and the number of fields in a voxel. Each voxel field is analogous to a field in a C structure and the...

vpShadeTable

vpShadeTable computes the contents of the shading lookup table previously specified with vpLookupShader. For each entry in the table, the Phong shading equation...

vpShadeTable computes the contents of the shading lookup table previously specified with vpLookupShader. For each entry in the table, the Phong shading equation...

vpStoreRawVolume

These functions are used to store volume data structures from a rendering context into files in the format read by the VolPack file reading routines (see...

These functions are used to store volume data structures from a rendering context into files in the format read by the VolPack file reading routines (see...

vpTracePixel

This routine is for debugging the rendering algorithms. If (trace_u, trace_v) is a valid set of coordinates in the intermediate image then a printout appears...

This routine is for debugging the rendering algorithms. If (trace_u, trace_v) is a valid set of coordinates in the intermediate image then a printout appears...

vpTranslate

vpTranslate is used to multiply the current transformation matrix by a 4-by-4 translation matrix. The translation matrix is: 1 0 0 tx 0 1 0 ty 0 0 1 tz 0 0 0 1...

vpTranslate is used to multiply the current transformation matrix by a 4-by-4 translation matrix. The translation matrix is: 1 0 0 tx 0 1 0 ty 0 0 1 tz 0 0 0 1...

vpTranspose

vpTranspose is used to transpose the 3D voxel array to optimize the memory stride for a particular principal viewing axis. The intended way to use this function...

vpTranspose is used to transpose the 3D voxel array to optimize the memory stride for a particular principal viewing axis. The intended way to use this function...

vpVolumeNormals

vpVolumeNormals is used to precompute values for voxel fields used in classification and shading algorithms. The input is a 3D array of scalar values; a...

vpVolumeNormals is used to precompute values for voxel fields used in classification and shading algorithms. The input is a 3D array of scalar values; a...

vpWindow

vpWindow is used to multiply the current projection matrix by a perspective or orthographic projection matrix. The new projection matrix is defined by the...

vpWindow is used to multiply the current projection matrix by a perspective or orthographic projection matrix. The new projection matrix is defined by the...

vpWindowPHIGS

vpWindowPHIGS is used to multiply the current projection matrix by a viewing and projection matrix specified by means of the PHIGS viewing model. This model...

vpWindowPHIGS is used to multiply the current projection matrix by a viewing and projection matrix specified by means of the PHIGS viewing model. This model...