[vtk-developers] Volume rendering implementation

Julien Finet julien.finet at kitware.com
Mon May 9 10:03:27 EDT 2011


Hi Sason,

VTK has CPU and GPU implementations for raycasting volume rendering. For
more information about the GPU ray cast mapper, you can read July 2008
edition of The Source:
http://www.kitware.com/products/archive/kitware_quarterly0708.pdf (the
mapper was previously in VTKEdge but is now in VTK).

Some doxygen doc:
http://www.vtk.org/doc/nightly/html/classvtkFixedPointVolumeRayCastMapper.html
http://www.vtk.org/doc/nightly/html/classvtkGPUVolumeRayCastMapper.html
http://www.vtk.org/doc/nightly/html/classvtkSmartVolumeMapper.html

Hope this helps,
Julien.

On Mon, May 9, 2011 at 9:31 AM, Sason Ohanian Saki <sason at kth.se> wrote:

> Hi!
>
> I am wondering If anyone knows how volume rendering with ray casting is
> implemented in VTK? Is it a software implementation or hardware-accelerated
> with shaders?
>
> Thanks!
>
> /Sason
>
> 7 maj 2011 kl. 23.25 skrev David Gobbi:
>
> > The only way that I know of is to get the range directly from the
> scalars,
> >
> > double range[2];
> > data->GetPointData()->GetScalars()->GetRange(range, component);
> >
> > Personally, I would not be opposed to changing vtkDataSet::ComputeRange()
> > so that it computed the range over all components.
> >
> >  David
> >
> >
> > On Sat, May 7, 2011 at 1:37 PM, Nicolas Rannou
> > <Nicolas_Rannou at hms.harvard.edu> wrote:
> >> Hi David,
> >>
> >> Thanks for the clarification.
> >> Which is the best practice to get the scalar range of each component
> then?
> >>
> >>
> >> On May 6, 2011, at 5:53 PM, David Gobbi wrote:
> >>
> >>> Hi Nicolas,
> >>>
> >>> The GetScalarRange() method computes the scalar range of the first
> component.
> >>>
> >>> - David
> >>>
> >>>
> >>> On Fri, May 6, 2011 at 3:00 PM, Nicolas Rannou
> >>> <nicolas_rannou at hms.harvard.edu> wrote:
> >>>> Hello,
> >>>>
> >>>> I'm experiencing a strange behavior in VTK which might be a bug.
> >>>> It took me a while to locate the issue:
> >>>>
> >>>> if I create a LUT with a NULL red component:
> >>>>   iRed = 0;
> >>>>   iGreen = 255;
> >>>>   iBlue = 255;
> >>>>   iAlpha = 255;
> >>>>   double iRange[2] = {0, 255};
> >>>>
> >>>>   vtkSmartPointer<vtkLookupTable> lut =
> >>>>       vtkSmartPointer<vtkLookupTable>::New();
> >>>>   double* HSV = vtkMath::RGBToHSV(iRed,iGreen,iBlue);
> >>>>   lut->SetAlpha(iAlpha);
> >>>>   lut->SetHueRange(HSV[0], HSV[0]);
> >>>>   lut->SetSaturationRange(1, 1);
> >>>>   lut->SetValueRange(0, 1);
> >>>>   lut->SetRange(iRange);
> >>>>   lut->Build();
> >>>>
> >>>> I color my image with this LUT:
> >>>>
> >>>>   vtkSmartPointer<vtkImageMapToColors> coloredImage =
> >>>>       vtkSmartPointer<vtkImageMapToColors>::New();
> >>>>   coloredImage->SetLookupTable(iLUT);
> >>>>   coloredImage->SetInput( iImage );
> >>>>   coloredImage->PassAlphaToOutputOff();
> >>>>   coloredImage->SetOutputFormatToRGB();
> >>>>   coloredImage->Update();
> >>>>
> >>>> then:
> >>>>   double* range = coloredImage->GetOutput()->GetScalarRange();
> >>>> returns [0,0].
> >>>> then everything I do with this image is messed up...
> >>>>
> >>>> If iRed != 0, the scalar range of the "coloredImage" will be correct
> then my
> >>>> pipeline is working.
> >>>>
> >>>> Am I doing something wrong?
> >>>>
> >>>> Thanks,
> >>>>
> >>>> Nicolas
> > _______________________________________________
> > Powered by www.kitware.com
> >
> > Visit other Kitware open-source projects at
> http://www.kitware.com/opensource/opensource.html
> >
> > Follow this link to subscribe/unsubscribe:
> > http://www.vtk.org/mailman/listinfo/vtk-developers
> >
>
> _______________________________________________
> Powered by www.kitware.com
>
> Visit other Kitware open-source projects at
> http://www.kitware.com/opensource/opensource.html
>
> Follow this link to subscribe/unsubscribe:
> http://www.vtk.org/mailman/listinfo/vtk-developers
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://public.kitware.com/pipermail/vtk-developers/attachments/20110509/3a6bf0c3/attachment.html>


More information about the vtk-developers mailing list