Meshlab 加权简化

Meshlab Weighted Simplification

我使用 Meshlab Quadric edge collapse 进行简化。这个想法是使用第二个网格来定义网格中的感兴趣区域,然后使用 Hausdorff 距离计算两个网格之间的距离。与加权简化相比,我希望网格的较远部分比较近的部分更简化。不幸的是,我不知道如何到达那里,因为每个顶点的质量在较远的部分很高,而在靠近定义的感兴趣区域的部分很低,相反我需要它。任何的想法? 非常感谢!

使用 Per Vertex Quality Function 过滤器可以轻松实现。

首先,让我构建一个类似于您的示例。我有两个网格(灰色和黄色石像鬼),将使用 Distance from Reference Mesh 计算一个网格到另一个网格的距离,并将距离值存储为每个顶点的质量。

我们可以渲染质量直方图以查看值。您可以看到有很多顶点的距离接近 0.0(蓝色值)。两个网格之间的最大距离值为 1.83(红色值)。

现在,您想以低距离值采用高质量值的方式反转这些值。您可以使用 Per Vertex Quality Function 过滤器并编写一个将低值转换为高值的表达式。在您的表达式中,q 表示当前每个顶点的质量值,因此您可以使用 q = 1.83 - qq = 1 / (1+q)

等公式

在这个例子中,我使用了q = 1.83 - q。这很好,但是使公式取决于距离的最大值。如您所见,直方图已反转,现在是具有低距离高质量值的顶点。

而这里,我使用了q = 1 / (1+q)。我使用这个公式来避免被零除,这将由普通 1 / q 产生。您也可以使用非线性并使用 q = 1 / (1 + q * q).