[vtkusers] Volume rendering algorithms?
Lisa Sobierajski Avila
lisa.avila at kitware.com
Tue Jun 27 09:27:21 EDT 2000
Hello Stephane,
Hmmm, rating accuracy and speed on a scale of 1 to 100 is tough - I don't
think I can make an accurate enough estimate of this on such a scale.
Accuracy is a tough thing to measure since it depends on your underlying
assumptions about the data, the illumination model you use, etc. Here is
some more information though -
Ray Casting - You have the choice with ray casting to interpolate and then
classify, or classify and then interpolate. Given that you believe that
your setting of this accurately represents your data, the ray casting
method will accurately sample r, g, b, and a along the ray according to the
given interpolation function. You have the choice between nearest neighbor
and trilinear interpolation. If you have shading on, then a simple local
illumination model is used (very similar to OpenGL's model). The normal at
each data sample is precomputed, and has been quantized down to about
16,000 possible values. Another factor in accuracy is the sampling distance
- taking more samples leads to more "accurate" images, but at the cost of
higher computing time. Speed of ray casting depends on your processor (and
how many of them you have since it is threaded to use all available
processors) It is almost always the slowest technique - usually about 5 to
10 times slower than texture mapping for a workstation with one processor
and accelerated 2D texture mapping.
Texture Mapping - this is less accurate than ray casting. You can increase
your sampling rate only by interpolating a larger volume. There are
artifacts that occur when the major viewing direction changes. This method
is basically ray casting where the samples are taken only on planes of the
data - so bilinear interpolation is used. This method always performs
classify first. The shading technique is the same as the one used in ray
casting. Finally, the depth of your frame buffer affects the accuracy - if
you are accumulating into a frame buffer with 8/8/8 bits for rgb, then
values below 1/256 will round to zero and will not affect your final image
- whereas in ray casting you may accumulate a bunch of these low values at
floating point precision to produce a noticeable effect in the image. The
speed of this method will depend on the speed of 2D texture mapping for the
video board in the workstation.
VolumePro - the images produced by this hardware are less accurate that the
ray caster, but more accurate than the 2D texture mapper. In terms of speed
they are very fast - generally at least 20 frames per second.
Hope that helps.
Lisa
At 01:25 PM 6/19/00, Cotin, Stephane M wrote:
>Hi Lisa,
>
>Could you be more specific about the Volume Rendering algorithms implemented
>in VTK in terms of accuracy and speed?
>How accurate and fast (on a scale from 1 to 100) would you rate these
>algorithms by comparison to the "best" algorithms / implementations you are
>aware of (with no hardware acceleration).
>How fast is the texture mapping approach (with hardware acceleration)
>compared to the ray casting approach?
>What would you suggest we do to speed up the ray casting algorithm (if it's
>possible)?
>
>Thanks a lot,
>
>-Stephane
>
> -----Original Message-----
> From: Lisa Sobierajski Avila [SMTP:lisa.avila at kitware.com]
> Sent: Thursday, June 15, 2000 2:52 PM
> To: Jim Morash; vtkusers at public.kitware.com
> Subject: Re: [vtkusers] Volume rendering algorithms?
>
> Hello Jim,
>
> These volume mappers are available:
>
> vtkVolumeRayCastMapper - a software ray casting approach. Slow, but
>accurate.
>
> vtkVolumeTextureMapper2D - a 2D texture mapping approach. Can be
>reasonably
> fast if you have good 2D texture mapping support. Less accurate than
>ray
> casting, especially for low-depth frame buffers.
>
> vtkVolumeProMapper - if you happen to have a VolumePro volume
>rendering
> board by RTViz, then this mapper will make use of that hardware.
>Very fast.
>
> If you want to add your own you would need to create a new subclass
>of
> vtkVolumeMapper. You can follow the ray casting API, render directly
>into
> the graphics context, or you can provide an image back to the
>renderer. If
> you are providing an image back, you are responsible for asking the
> renderer for the current RGB and Z buffers and merging your results
>in.
>
>
> Lisa
>
>
> At 01:49 PM 6/15/00, Jim Morash wrote:
>
> >Hi all,
> >I'm just getting started with VTK and I may be using it for a
>medical
> >visualization application. Could anyone tell me what the included
> >options are for volume rendering algorithms, and give me some idea
>of
> >how hard it would be to add them if I want to try something that's
>not
> >included?
> >thanks,
> >--Jim Morash
> >
> >------------------------------------------------------------------
> >Loyalty to petrified opinions never yet broke a chain or freed a
> >human soul in this world--and never will. --Mark Twain
> >------------------------------------------------------------------
> >jmorash at mit.edu http://web.mit.edu/jmorash/www
> >
> >_______________________________________________
> >This is the private VTK discussion list.
> >Please keep messages on-topic. Check the FAQ at:
> ><http://public.kitware.com/cgi-bin/vtkfaq>
> >vtkusers mailing list
> >vtkusers at public.kitware.com
> >http://public.kitware.com/mailman/listinfo/vtkusers
>
>
>
> _______________________________________________
> This is the private VTK discussion list.
> Please keep messages on-topic. Check the FAQ at:
><http://public.kitware.com/cgi-bin/vtkfaq>
> vtkusers mailing list
> vtkusers at public.kitware.com
> http://public.kitware.com/mailman/listinfo/vtkusers
More information about the vtkusers
mailing list