当尝试使用PraView显示时,闪烁发生在两个vtkcells重叠的位置

时间:2017-12-05 04:41:21

标签: vtk

我希望能够在ParaView中显示时独立切换属于不同区域的非结构化网格的显示。因此,使用vtkMultiBlockDataSet输出vtm文件,如下所示。 但是当试图用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()返回vtkSmartPointer<vtkUnstructuredGrid>,两个vtkcells的表面相互接触。

我使用的是vtk 7,ubuntu 16.04,paraview 5.2。

1 个答案:

答案 0 :(得分:1)

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

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