VTK:我应该如何从结构化网格生成阈值渲染

VTK: How should I generate threshold render from a structured grid

我想在通过特定阈值(例如,见下文)的结构化网格上呈现标量数据

我试过vtk。请参阅下面的代码片段

 grid.SetPoints(points)                                                         
 grid.SetDimensions(nx,ny,nz)                                                   
 grid.GetPointData().SetScalars(scalars)                                        
                                                                                
 threshold = vtk.vtkThresholdPoints()                                           
 threshold.SetInputData(grid)                                                   
 threshold.ThresholdByUpper(0.5)                                                
                                                                                
 mapper = vtk.vtkDataSetMapper()                                                
 mapper.SetInputConnection(threshold.GetOutputPort())                           
                                                                                
 actor = vtk.vtkActor()                                                         
 actor.SetMapper(mapper)                                                        
 renderer.AddActor(actor)                                                       
                                                                                
 interactor.Start()    

即我有一个带有点和标量集的结构化网格。然后我构建了一个阈值映射器和参与者。只要正确的子集被挑选出来,阈值看起来就可以正常工作。但是它生成的不是一组立方体,而是一组点(见下文)。

我的问题:如何用第一个图中显示的立方体替换这些点

使用 vtkThreshold 而不是 vtkThresholdPoints

既然你想要立方体,你就需要保留拓扑结构。 points 版本只提取点,因此它破坏了单元格信息。