这种情况可能是由于体绘制顺序不正确导致的。在体绘制时,通常需要按照远到近的顺序进行绘制,这样可以避免后面的体覆盖前面的体。如果不按照正确的顺序绘制,就可能会出现透视问题。
volumeProperty = vtk.vtkVolumeProperty()
volumeProperty.SetIndependentComponents(1)
创建渲染器vtkSmartPointer<vtkRenderer> renderer = vtkSmartPointer<vtkRenderer>::New();
// 设置渲染顺序
renderer->SetUseDepthPeeling(true);
renderer->SetMaximumNumberOfPeels(100);
renderer->SetOcclusionRatio(0.1);
// 将两个 Volume 添加到渲染器中renderer->AddVolume(volume1);
renderer->AddVolume(volume2);
以上代码最重要的是AddVolume的顺序
AddVolume(volume2);
AddVolume(volume2);
如果不能解决,先RemoveVolume,再AddVolume