我确信普通的vtk用户已经多次看到过如下结果。
我的问题:你如何修复这样破碎的表面?表面上这种整体的原因通常是什么?
我的特定示例是使用vtkBooleanOperationPolyDataFilter和vtkAppendPolyData创建的,但我在不同的场合也见过这种破坏,退化的表面。
非常感谢您的建议。
答案 0 :(得分:2)
这很可能与数据有关。建议:
vtkBooleanOperationPolyDataFilter
期望输入是多方面的,否则"可能会获得意想不到的结果"。你在为布尔过滤器提供什么?这些输入是歧管吗? 其他一些过滤器有更严格的要求,只能使用三角形表面;在你发布的图片中我想想我看到了四边形。尝试在处理管道的开头通过vtkTriangleFilter
运行输入,将所有多边形分成三角形。
检查vtkBooleanOperationPolyDataFilter
的第二个输出,其中包含作为折线组的交集,以获取有关可能原因的任何提示。
尝试将中间结果保存到文件中,并期望它们位于处理管道的不同阶段。
如果这些问题都不能解决您的问题,请发布您正在运行的输入,代码和vtk版本以及系统,以便我们重现您的结果。
HTH,
米罗
答案 1 :(得分:0)
在我上面提到的情况下,破碎的表面是由vtkBooleanOperationPolyDataFilter
的问题引起的。根据{{3}}线程,该算法已得到改进,并且(或将很快)在较新的vtk版本中提供。
我还需要接受这样一个事实,即没有通用的方法可以从vtk中的这些故障中恢复,而且正如mirni指出的那样,它与数据有关。