|
The time needed for rendering and surface extraction have
been measured on an PII/400 PC using the Java virtual machine
1.1.8 from Sun with a Symantec just-in-time compiler (for rows 1-3 of
table 4.8). The
corresponding data sets have been resampled to fit into a
cube. The size of the images is
pixels. While the time required
for the shear step depends
only on the number of projected voxels, the time required for warping the
intermediate image plane into the final image and also the time required by
Java to transfer the image to the screen buffer (included in the overall
frame time in column 6) depends mainly on the size of the image.
As interpolation is only performed during
the warp step, large images (
for example) generated out of
data sets are blurred due to strong scaling during
interpolation. Row 4 of table 4.8 shows the time for
rendering a data set at original resolution (
) on an
AMD Athlon
600 PC. As equal voxel size is required in all dimensions, the
data set is treated as a
volume during surface
extraction. Using data at the original resolution gives satisfactory
results for
images.
The time required to recompute the shading table is negligible.
In table 4.8 the column ``voxels'' gives the number of voxels extracted from the volume to represent the surface(s). The time required for extraction includes the computation of gradient vectors using the central difference method.
The memory requirements for storing a surface are moderate. For each
principal viewing direction each voxel stores the two other
coordinates (
bits) and the gradient vector (14 bits). For all
three principal directions this sums up to 90 bits per voxel. This can
be compared to the requirements of a polygonal model of a surface
which uses triangle strips: Making a fair assumption, that
after an optimization of the surface representation there are approximately
just as many
vertices in the model as voxels in the presented surface representation, the
model requires at least 24 bytes (192 bits) for each vertex (3*float
coordinates, 3*float normal to allow handling by graphics hardware).
Additional memory is required for referencing the vertices within the
strips (indexed triangle strips). Even without considering the memory
required to store this connectivity information for a geometric model,
RenderLists require significantly less memory.