欢迎加入我的VTK社区,雪易VTK社区-CSDN社区云
前言:3-matic中的Remesh功能在保留实体几何形状的同时对其进行Remesh。VTK中能保留几何形状又能改变网格点集的Filter有Decimate相关的Filter。本博文研究VTK中关于Decimate网格抽取相关的Filter。
目录
vtkDecimatePro
vtkQuadricDecimation
vtkQuadricClustering
VTK中与抽取相关的类有:vtkDecimatePolylineFilter、vtkGreedyTerrainDecimation、vtkDecimatePro、vtkQuadricDecimation、vtkQuadricClustering、vtkUnstructuredGridQuadricDecimation。
vtkDecimatePro是一个过滤器,用于减少三角形网格中三角形的数量并形成一个与原始几何形状很好的近似。vtkDecimatePro的输入是一个vtkPolyData对象,并且只处理三角形。如果你想对多边形网格进行抽取,首先使用vtkTriangleFilter对象对多边形进行三角化。
1. 将网格中所有的点进行分类并加入优先队列。
2. 首先将删除错误的点和重新定位孔。(Vertices顶点不能被删除和三角化,因此Vertices直接跳过)。
3. 然后,处理优先队列中的每个顶点(即删除后使用边折叠进行孔三角测量)。这一直持续到优先级队列为空为止。
4. 处理所有剩余的顶点,网格沿着尖锐的边缘或在非流形附着点被分割成单独的块,并重新插入优先队列。同样,优先级队列被处理到空为止。如果仍然没有达到所需的减少,剩余的顶点将按需要分割(以递归的方式),以便有可能根据需要消除每个三角形。
1. 设置TargetReduction,将网格面片抽取的比例控制在0~1。若设置为0.6,则说明有60%的三角面片单元将被一处。
2. 支持网格分裂,即Splitting变量的值设置为TRUE。
3. 支持模型拓扑的改变,即将PreserveTopology变量值设为FALSE。
4. 支持修改模型的边界,即将变量BoundaryVertexDeletion的值设置为TRUE。
5. 设置最大误差变量MaximumError的值为VTK_DOUBLE_MAX
描述:可以实现三角网格的减化,并能较好地逼近原模型。值得注意的是该Filter的最终简化率并非严格等于设置的简化率,可以通过GetActualReduction()函数来获取最终模型简化率。
描述:是抽取类中最快的一种,能够处理大数据模型。