尝试使用 PraView 显示时,两个 vtkcells 重叠的地方会出现闪烁

Flickering occurs at places where two vtkcells overlap when trying to display with PraView

我希望在ParaView中显示时能够独立切换属于不同区域的非结构化网格的显示。因此,vtm 文件是使用 vtkMultiBlockDataSet 输出的,如下所示。 但是当尝试使用 PraView 显示时,闪烁发生在两个 vtkcells 重叠的地方。 如果您能告诉我如何消除闪烁,我会很高兴。

vtkSmartPointer<vtkMultiBlockDataSet> mb =
  vtkSmartPointer<vtkMultiBlockDataSet>::New();
int numRegions = 2;
mb->SetNumberOfBlocks(numRegions);
mb->SetBlock(0, MakeHexahedron());
mb->SetBlock(1, MakeHexagonalPrism());

vtkSmartPointer<vtkXMLMultiBlockDataWriter> writer =
  vtkSmartPointer<vtkXMLMultiBlockDataWriter>::New();
writer->SetFileName(filename);
writer->SetInputData(mb);
writer->Write();

MakeHexahedron()MakeHexagonalPrism()returnvtkSmartPointer<vtkUnstructuredGrid>,两个vtkcells的表面相互接触

我正在使用 vtk 7,ubuntu 16.04,paraview 5.2。

当您使用 vtkMultiBlockDataSet 时,我认为您可能希望通过使用 vtkExtractBlock class 或其在 ParaView 中的相应过滤器独立地与每个元素进行交互。但是在我看来,只要数据集共享公共单元格,渲染就会出现闪烁。

解决这个问题的另一种方法是在数据集上附加 vtkAppendFilter 并使用 Clean to grid ParaView 过滤器,通过这样做消除常见的单元格,从而消除闪烁。