bezier volume - curvilinear volume renderer
Name
bezier volume - curvilinear volume renderer
Summary
Name bezier volume
Type
mapper
Inputs
Volume Data; field irregular 3D 3-coordinate scalar
(REQUIRED)
Colormap (REQUIRED)
Outputs
Image Data; field uniform 2D 4-vector float
Parameters
Name Type Default Min Max
Image Size integer 128 32 1024
Rendering Style choice "dots" "dots","volume"
Interpolation choice "tricubic" "trilinear","tricubic"
Hull Control choice "volume only" "volume only", "hull only",
"volume & hull"
Voxel Sort Switch boolean false true,false
Voxel Input Type choice "curvilinear" "curvilinear", "tricubic"
Rendering Throttle float 0.1 0.0 4.0
Opacity Transfer Function
choice "none" "none","linear","log"
OpacityScalar float 1 0 10.0
Description
The bez_vol module is an object order volume renderer designed
to work with volumes embedded in warped grids. This module
assumes that voxels are topologically equivalent to hexahedra,
the faces of which are not necessarily planar. This solid is
manipulated and rendered using tricubic Bezier basis and
rendered using a forward difference evaluation of the cubic
triparametric Bezier representation of a solid.
INPUTS
Volume Data ; field 3D irregular 3-coordinate scalar float (REQUIRED)
This is the input volume. Each grid point consists of
an x,y,z coordinate and some scalar value.
Colormap; AVS colormap (REQUIRED)
The colormap is used to determine the color at each corner
of each "voxel" using a linear "transfer" function.
PARAMETERS
Image Size (integer)
This typein controls the size of the resulting image. The image
is always square (could be easily changed in the code to allow
for rectangular images).
Rendering Style (choice)
The user may select a rendering style of either "dots" or
"volume." If "dots" is selected, the "corners" of each
voxel are composited into the image buffer, with no subdivision
being performed. This results in a crude, yet quick
approximation to volume rendering. Selecting "volume" will result
in full voxel rendering being performed.
Hull Control (choice)
The user can choose to have only the volume data displayed, only
the bounding hull, or both. The hull of the volume is simply the
faces which bound the data. The hull renderer is crude, and looks
terrible at low resolution.
Interpolation Method (choice)
The user may select either "trilinear" or "tricubic" basis
functions for subdivision. Tricubic gives better results, but is
on the order of 150% more expensive than trilinear.
Voxel Sort Flag (boolean)
If this flag is turned on, the voxels will be sorted front-to
back prior to rendering. The resulting image is sensitive to
the compositing order, so the results are questionable if the
voxels are not sorted first. The only advantage to be gained
from not sorting the voxels lies in decreased runtime of the
module.
Voxel Input Type (choice)
This parameter affects the interpetation of the input field.
If "curvlinear" is selected (the default), each input voxel
(the region bounded by 8 grid points) will have the additional
control points required for the bezier basis computed at
run time. If "tricubic voxels" is selected, each second and
third grid point define the interior control points of each
tricubic voxel. This mode was used in debugging the module.
Most input grids should be processed with the parameter set
to "curvlinear".
Rendering Throttle (float)
This parameter will directly affect the runtime and resulting
image quality. Increasing the value of this parameter will
increase both runtime and image quality.
Opacity Transfer Function (choice)
Opacity is defined in the input colormap. However, large volumes
will tend to be too "opaque" when this value is set to none.
In this case, the user should select either "linear" or "log"
to apply a nonlinear opacity transfer function to the volume.
"log" tends to give better results, but both "linear" and "log"
are affected by the opacityscalar parameter.
OpacityScalar (float)
This scalar affects the non-linear opacity transfer function
applied to the user-defined opacity. Decreasing this value will
make the volume overall more "transparent", increasing this value
will tend to make the overall volume appear more "opaque."
OUTPUTS
Image Data (field uniform 2D 4-vector float)
The module produces a floating point image as a result. All
components of each pixel are in the range 0..1. Some kind of
post-processing is generally required in order to display the
data (like field to byte, or the more appropriate
"float image to byte" module written especially for this
purpose).
Example
A typical network using this module looks like this:
READ FIELD (read in the bluntfin dataset, for example)
|
XFORM POINTS (for rotations, etc.)
| GENERATE COLORMAP
| |
+--------+ +-----------+
BEZ VOL
|
FLOAT IMAGE TO BYTE
|
DISPLAY IMAGE
RELATED MODULES
new_abuffer - ray tracing volume renderer of uniform fields
See also
float image to byte (for converting the output of this module
to something AVS can display). If one uses "field to byte",
the resulting image will not be correct when "byte normalize"
is selected, since that transformation is applied seperately
to each of the r,b,g,a channels.
Limitations
KNOWN BUGS
1. This module is very expensive to run. A run using the blunt-fin
dataset, rendered at an image size of 128 pixels square,
using tricubic interpolation requires about 900 cpu seconds on
a sun sparcstation 2.
Lawrence Berkeley Laboratory bez volume
Wes Bethel ewbethel@lbl.gov 10 Jan 1992