在尝试使用PreView显示时,在两个vtk单元重叠的位置发生闪烁

问题描述 投票:1回答:1

我希望能够在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。

vtk
1个回答
1
投票

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

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

© www.soinside.com 2019 - 2024. All rights reserved.