[vtkusers] Volume rendering
xiong fei
xfpku at yahoo.com.sg
Thu Feb 15 11:08:14 EST 2001
Thank you for your advice. But when I try it in my
program, that error still exist.
"ERROR: In
d:\nightly\vtk\graphics\vtkVolumeRayCastMapper.cxx,
line 912
vtkVolumeRayCastMapper (0x007EADB0): The scalar data
type: 4 is not supported when volume rendering. Please
convert the data to unsigned char or unsigned short."
I have put my sourse code below, can you take a look?
Your help is greatly appreciated.
//some codes from example "volProt.cxx"
void main( int argc, char *argv[] )
{
vtkDataSet *dataSet;
// read data
dataSet = ReadFinancialData();
if (! dataSet) exit(0);
// Create the renderer, render window, and
interactor
vtkRenderer *ren1 = vtkRenderer::New();
vtkRenderWindow *renWin = vtkRenderWindow::New();
renWin->AddRenderer(ren1);
vtkRenderWindowInteractor *iren =
vtkRenderWindowInteractor::New();
iren->SetRenderWindow(renWin);
vtkGaussianSplatter *popSplatter =
vtkGaussianSplatter::New();
popSplatter->SetInput(dataSet);
popSplatter->SetSampleDimensions(50,50,50);
popSplatter->SetRadius(0.05);
popSplatter->ScalarWarpingOff();
vtkImageCast *cast = vtkImageCast::New();
cast->SetInput(popSplatter->GetOutput());
cast->SetOutputScalarTypeToShort();
// Read data from original dataset and transfer it
to structuredpoints
// Create a transfer function mapping scalar value
to opacity
vtkPiecewiseFunction *oTFun =
vtkPiecewiseFunction::New();
oTFun->AddSegment(80, 0.0, 255, 1.0);
// Create a transfer function mapping scalar value
to color (grey)
vtkPiecewiseFunction *cTFun =
vtkPiecewiseFunction::New();
cTFun->AddSegment(0, 1.0, 255, 1.0);
// Create a property for the volume and set the
transfer functions.
// Turn shading on and use trilinear interpolation
vtkVolumeProperty *volumeProperty =
vtkVolumeProperty::New();
volumeProperty->SetColor(cTFun);
volumeProperty->SetScalarOpacity(oTFun);
volumeProperty->SetInterpolationTypeToLinear();
volumeProperty->ShadeOn();
// Create a ray function - this is a compositing ray
function
vtkVolumeRayCastCompositeFunction *compositeFunction
=
vtkVolumeRayCastCompositeFunction::New();
// Create the volume mapper and set the ray function
and scalar input
vtkVolumeRayCastMapper *volumeMapper =
vtkVolumeRayCastMapper::New();
//****
volumeMapper->SetInput(cast->GetOutput());
volumeMapper->SetVolumeRayCastFunction(compositeFunction);
// Create the volume and set the mapper and property
vtkVolume *volume = vtkVolume::New();
volume->SetMapper(volumeMapper);
volume->SetProperty(volumeProperty);
// Add this volume to the renderer and get a closer
look
ren1->AddVolume(volume);
ren1->GetActiveCamera()->Azimuth(20.0);
ren1->GetActiveCamera()->Dolly(1.60);
ren1->ResetCameraClippingRange();
renWin->SetSize(300,300);
renWin->Render();
SAVEIMAGE( renWin );
// Interact with the data at 3 frames per second
iren->SetDesiredUpdateRate(3.0);
iren->SetStillUpdateRate(0.001);
iren->Start();
// Clean up
ren1->Delete();
renWin->Delete();
iren->Delete();
popSplatter->Delete();
oTFun->Delete();
cTFun->Delete();
volumeProperty->Delete();
compositeFunction->Delete();
volumeMapper->Delete();
volume->Delete();
}
--- bo wang <bowang at iastate.edu> wrote: >
> -----Original Message-----
> From: xiong fei <xfpku at yahoo.com.sg>
> To: vtkusers at public.kitware.com
> <vtkusers at public.kitware.com>
> Date: Wednesday, February 14, 2001 9:53 PM
> Subject: Re: [vtkusers] Volume rendering
>
>
> >Hi, all
> >
> > Sorry to post this message again, but I am
> really
> >stuck now. As what was said before, I want to
> >visualize some financial data using volume
> rendering.
> >But the question is how to do it?
> > I have tried vtkGaussianSplatter or
> >vtkShepardMethod to transfer the raw data to be
> >structured points, and it really did. However, when
> I
> >try to run the program, a error is reported :
> >"vtkVolumeRayCastMapper (0x10031048): The scalar
> data
> >type: 10 is not supported when volume rendering.
> >Please convert the data to unsigned char or
> unsigned
> >short." So what shall I do next? can someone help
> me?
> >Thanks.
>
> use vtkImageCast to convert the data type.
>
>
>
>
> _______________________________________________
> This is the private VTK discussion list.
> Please keep messages on-topic. Check the FAQ at:
> <http://public.kitware.com/cgi-bin/vtkfaq>
> Follow this link to subscribe/unsubscribe:
> http://public.kitware.com/mailman/listinfo/vtkusers
__________________________________________________
Do You Yahoo!?
Yahoo! Mail Free email you can access from anywhere!
http://mail.yahoo.com.sg/
More information about the vtkusers
mailing list