如何修复 vtk 中的破损表面?
How to repair a broken surface in vtk?
我敢肯定,普通的 vtk 用户已经不止一次看到类似下面的结果。
我的问题:你会如何修复这样一个破损的表面?表面出现这种整体的典型原因是什么?
我的特定示例是通过使用 vtkBooleanOperationPolyDataFilter 和 vtkAppendPolyData 创建的,但我在不同的场合也看到过这种破碎、退化的表面。
非常感谢您的建议。
这很可能与数据有关。建议:
- 许多 vtk 过滤器对输入都有假设,我猜您的输入违反了其中一些假设。例如。
vtkBooleanOperationPolyDataFilter
期望输入是流形,否则 "unexpected results may be obtained"。你在布尔过滤器中输入什么?这些输入是流形的吗?
其他一些过滤器有更严格的要求,只需要三角形表面;在图片中,你 posted 我 think 我看到了四边形。尝试在处理管道的开头通过 vtkTriangleFilter
运行 输入,将所有多边形拆分为三角形。
检查 vtkBooleanOperationPolyDataFilter
的第二个输出,其中包含作为多段线集的交点,以获取有关可能是什么原因的任何提示。
尝试将中间结果保存到一个文件中,并期望它们出现在处理管道的不同阶段。
如果 none 将引导您找到问题的原因,请 post 输入、代码和您正在使用的 vtk 版本和系统 运行 ,以便我们可以重现您的结果。
HTH,
米罗
在我上面介绍的案例中,破损的表面是由 vtkBooleanOperationPolyDataFilter
的问题造成的。根据 this 线程,该算法已得到改进,并且(或即将)在较新版本的 vtk 中可用。
我还需要接受这样一个事实,即在 vtk 中没有从此类故障中恢复的通用方法,而且正如 mirni 指出的那样,这些故障与数据有关。
我敢肯定,普通的 vtk 用户已经不止一次看到类似下面的结果。
我的问题:你会如何修复这样一个破损的表面?表面出现这种整体的典型原因是什么?
我的特定示例是通过使用 vtkBooleanOperationPolyDataFilter 和 vtkAppendPolyData 创建的,但我在不同的场合也看到过这种破碎、退化的表面。
非常感谢您的建议。
这很可能与数据有关。建议:
- 许多 vtk 过滤器对输入都有假设,我猜您的输入违反了其中一些假设。例如。
vtkBooleanOperationPolyDataFilter
期望输入是流形,否则 "unexpected results may be obtained"。你在布尔过滤器中输入什么?这些输入是流形的吗? 其他一些过滤器有更严格的要求,只需要三角形表面;在图片中,你 posted 我 think 我看到了四边形。尝试在处理管道的开头通过
vtkTriangleFilter
运行 输入,将所有多边形拆分为三角形。检查
vtkBooleanOperationPolyDataFilter
的第二个输出,其中包含作为多段线集的交点,以获取有关可能是什么原因的任何提示。尝试将中间结果保存到一个文件中,并期望它们出现在处理管道的不同阶段。
如果 none 将引导您找到问题的原因,请 post 输入、代码和您正在使用的 vtk 版本和系统 运行 ,以便我们可以重现您的结果。
HTH,
米罗
在我上面介绍的案例中,破损的表面是由 vtkBooleanOperationPolyDataFilter
的问题造成的。根据 this 线程,该算法已得到改进,并且(或即将)在较新版本的 vtk 中可用。
我还需要接受这样一个事实,即在 vtk 中没有从此类故障中恢复的通用方法,而且正如 mirni 指出的那样,这些故障与数据有关。