[vtkusers] Using a VTK file (volume rendering)
Guilherme Ferraz de Arruda
guiep at yahoo.com.br
Thu Oct 1 00:05:11 EDT 2009
Hi, I read this piece of code in C++, it works ok, but i can't
understand exactly why i use vtkPiecewiseFunction in a
vtkVolumeProperty->SetColor and vtkVolumeProperty->SetScalarOpacity.
The code is:
vtkRenderer *aren = vtkRenderer::New();
vtkRenderWindow *renWin = vtkRenderWindow::New();
renWin->AddRenderer(aren);
vtkRenderWindowInteractor *iren = vtkRenderWindowInteractor::New();
iren->SetRenderWindow(renWin);
aren->SetBackground(0.8, 0.8, 0.8);
vtkDataSetReader *reader = vtkDataSetReader::New();
reader->DebugOn();
reader->SetFileName("heart.vtk");
reader->Update();
vtkPiecewiseFunction *oTFun = vtkPiecewiseFunction::New();
oTFun->AddSegment(80, 0.0, 255, 1.0);
oTFun->AddSegment(0, 255, 0, 0);
vtkPiecewiseFunction *gTFun = vtkPiecewiseFunction::New();
gTFun->AddSegment(80, 0.0, 255, 1.0);
gTFun->AddSegment(0, 255, 0, 0);
vtkVolumeProperty *volProperty = vtkVolumeProperty::New();
volProperty->SetColor(gTFun);
volProperty->SetScalarOpacity(oTFun);
volProperty->SetInterpolationTypeToLinear();
volProperty->ShadeOn();
vtkVolumeRayCastCompositeFunction *cpf =
vtkVolumeRayCastCompositeFunction::New();
vtkVolumeRayCastMapper *volmap = vtkVolumeRayCastMapper::New();
volmap->SetInput(reader->GetOutput());
volmap->SetVolumeRayCastFunction(cpf);
vtkVolume *vol = vtkVolume::New();
vol->SetMapper(volmap);
vol->SetProperty(volProperty);
aren->AddVolume(vol);
iren->Initialize();
iren->Start();
I'm new with VTK, sugestions are welcome,
The problem is how to visualize an VTK file, with volume rendering.
Thanks for all!
More information about the vtkusers
mailing list