[vtkusers] display a thick shell of volume
David Gobbi
david.gobbi at gmail.com
Tue Oct 28 17:20:27 EDT 2014
Hi Weiguang,
You definitely want to avoid using vtkClipVolume before volume rendering,
because it produces vtkUnstructuredGrid data instead of image data.
If you need a shell, you can use vtkImageGaussianSource to create an image
of a Gaussian, and then threshold it with lower and upper thresholds to
create a shell. A Gaussian has radial symmetry, so thresholding will
create a binary image of a spherical shell. You can then multiply this
shell by your image.
Or, instead of using vtkClipVolume, you can use
vtkImplicitFunctionToImageStencil with vtkImageStencil. The output will be
a vtkImageData. Or, for greater efficiency, use vtkROIStencilSource to
create a spherical (ellipsoidal) stencil for vtkImageStencil.
Or, possibly the easiest "quick fix" would be to convert the
vtkUnstructuredGrid that you already have into a vtkImageData by using
vtkProbeFilter. The vtkProbeFilter is a generic filter for copying (or
interpolating) scalar data from one kind of data set onto another kind of
data set.
- David
On Tue, Oct 28, 2014 at 2:23 PM, Weiguang Guan <guanw at rhpcs.mcmaster.ca>
wrote:
> Hi VTK users,
>
> I want to volume render (using 3D texture mapper) a shell with specified
> thickness. Previously, I used vtkClipVolume twice, one clipped away the
> inner portion of a regular volume data, the other clipped away outer
> portion. The only problem is slow rendering speed because the resultant
> data is no longer a regular volume data.
>
> Can anyone suggest a better solution? Would it be faster if I used several
> spheres with texture mapped on them and alpha-blending? Thanks.
>
> Best,
> Weiguang
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://public.kitware.com/pipermail/vtkusers/attachments/20141028/649f3df7/attachment.html>
More information about the vtkusers
mailing list