由于老版本的光线抛射法接口更改,使用VTK 7.1 以上版本不断提示 ray casting 相关的函数被移除。调试良多。
更换多次接口始终不对版
vtkVolumeRayCastCompositeFunction was deprecated for VTK 7.0 and will be removed in a future version.
vtkVolumeRayCastMapper was deprecated for VTK 7.0 and will be removed in a future version.
等等诸如此类问题;
新版本只有一个结构,不用专门new个新的 rat casting function 成员出来,就一句解决;
vtkSmartPointer < vtkFixedPointVolumeRayCastMapper > = vtkSmartPointer<vtkFixedPointVolumeRayCastMapper>::New();
volumeMapper->SetInputConnection(reader->GetOutputPort());//获取读取接口
下文为官方参考文档:
MedicalDemo4.cxx
// Derived from VTK/Examples/Cxx/Medical4.cxx // This example reads a volume dataset and displays it via volume rendering. // #include <vtkCamera.h> #include <vtkColorTransferFunction.h> #include <vtkFixedPointVolumeRayCastMapper.h> #include <vtkMetaImageReader.h> #include <vtkNamedColors.h> #include <vtkPiecewiseFunction.h> #include <vtkRenderer.h> #include <vtkRenderWindow.h> #include <vtkRenderWindowInteractor.h> #include <vtkSmartPointer.h> #include <vtkVolume.h> #include <vtkVolumeProperty.h> #include <array> int main (int argc, char *argv[]) { if (argc < 2) { cout << "Usage: " << argv[0] << "file.mhd" << endl; return EXIT_FAILURE; } vtkSmartPointer<vtkNamedColors> colors = vtkSmartPointer<vtkNamedColors>::New(); std::array<unsigned char , 4> bkg{ {51, 77, 102, 255}}; colors->SetColor("BkgColor", bkg.data()); // Crea