我可以在具有传统OpenGL支持的VTK <= 8.0.1中使用以下方法执行射线投射等值面提取。我可以可视化提取的表面,没有任何问题,一切正常。
现在,我想在VTK 8.1.1 OpenGL2(3.2)支持下移植相同的代码。在此版本中,不建议使用vtkVolumeRayCastIsosurfaceFunction和vtkVolumeRayCastMapper类。我尝试使用vtkContourFilter而不是使用这些类,但从未成功。如何使用新的GPU映射器vtkOpenGLGPUVolumeRayCastMapper或vtkFixedPointVolumeRayCastMapper获得相同的输出?
void IsoExtraction::create(double _iso, vtkImageData* _data)
{
p_iso_surf_func = vtkVolumeRayCastIsosurfaceFunction::New();
p_iso_surf_func->SetIsoValue(_iso);
p_mapper = vtkVolumeRayCastMapper::New();
p_mapper->SetVolumeRayCastFunction(p_iso_surf_func); // Set volume ray cast function
p_mapper->SetInputData(_data);
// … addToLOD (p_mapper)
// …
}
void IsoExtraction::setIsoValue(double _iso)
{
p_iso_surf_func->SetIsoValue(_iso);
}