Remesh模块

Icon

网格导入格式: obj, stl, off, ply(文本格式)


Remesh-简化: 这里提供两种网格简化方式:一种通过设定目标顶点数进行简化,另一种通过指定最短网格边长进行简化。两种方法均致力于在简化网格的同时,尽可能保持原始模型的几何特征。

  • 测试注意事项:请注意是否勾选“Unify”参数。该参数会将导入的三维模型自动均匀缩放到其包围盒为 [-1, 1] 的范围内,因此后续计算得到的距离值均处于该缩放后的尺度空间中。此缩放操作旨在简化测试流程。如需基于原始模型尺寸设置参数,请取消勾选“Unify”。
  • 大数据测试说明:您可在软件首页设置参数 MaxSubVertexCount。若输入网格的顶点数超过该设定值,系统将自动调用适用于大数据的网格简化算法版本。该版本采用分片计算方式,可显著降低内存消耗。
  • 边长的估计:在测试过程中,边长绝对值通常不是关注的重点。若已知输入网格的平均边长,可基于该值设定简化过程中的各项长度参数。例如,参数 MinEdgeLen 的初始值即为网格的平均边长,而 MaxEdgeLen 的初始值则设置为平均边长的 20 倍。
  • 基于目标顶点数的简化方法

  • 参数-TargetNum:指定简化后期望的顶点个数。在大多数情况下,该目标顶点数能够实现;但在某些特殊情况下——例如目标顶点数设置过低,或存在额外简化约束时——最终顶点数量可能无法完全达到预设值。
  • 参数-MaxAngleDev:指定网格简化后,新生成网格中各个三角形的法线与原始网格对应区域法线之间的最大允许偏差角度。可以通过该参数限制网格简化过程中新网格形状与原始形状之间的偏差,防止出现过大的几何差异。
  • 参数-MaxEdgeLen:该参数为可选项,用于指定网格简化过程中保留的边长上限:超过该长度的边将不会被简化。借助此参数,可有效限制在几何平坦区域生成过长的边。
  • 参数-Error:该参数为可选参数,用于控制在网格简化过程中是否启用误差约束。误差约束由 ErrorBound 参数定义,表示简化后网格与原始网格之间的最大允许距离误差。该距离采用单向 Hausdorff 距离,即从简化网格到原始网格的最大距离。
  • 一个网格简化的例子:如图所示,为网格简化后的结果显示。输入网格共含 90 万个顶点,采用基于目标顶点数的简化方法,参数设置为:目标顶点数 3,MaxAngleDev=3(度),MaxEdgeLen=0.1(约为网格平均边长的30倍)。由简化结果可见,在曲率较大的区域,简化程度较低;同时受 MaxEdgeLen 参数限制,即便在曲率较小的区域,简化后的边长度也得以控制,未出现过长边。
  • meshsimplification_small

    基于最短网格边长的简化方法(这种简化方法主要用于移除网格中的短边或退化边)

  • 参数-MinEdgeLen:用于指定简化过程中将被移除的最大边长阈值,即所有长度小于该值的边都会被尝试简化。在大多数情况下,这一目标能够实现;但在某些存在误差约束等特殊情况下,最终结果可能无法完全达到该预设要求。
  • 参数-Error:该参数为可选参数,用于控制在网格简化过程中是否启用误差约束。误差约束由 ErrorBound 参数定义,表示简化后网格与原始网格之间的最大允许距离误差。该距离采用单向 Hausdorff 距离,即从简化网格到原始网格的最大距离。

  • Remesh-细分

  • 细分网格。三角网格采用Loop细分规则,四边形网格采用Catmull-Clark细分规则
  • 参数-SubdTimes:细分次数
  • 参数-KeepGeom:细分结果是否保持原始几何不变

  • Remesh-加密

  • 增加网格顶点个数,增加的点在原始网格的三角面片上,此操作不改变网格的几何。
  • 参数-TargetNum:加密后的网格顶点个数。
  • 参数-TargetLen:加密后的网格最长边长小于这个参数。

  • Remesh-Remesh

  • 重新网格化。
  • 参数-TargetNum:Remesh的目标顶点数
  • 参数-SharpAngle:网格边的相邻面夹角大于sharpAngle,则认为是一个sharp边。重新网格化的时候,会保持住sharp边的几何。参数范围是(0, 180)。
  • 参数-ItrNum:Remesh网格优化的最大迭代次数
  • 参数-OpEpsilon:Remesh网格优化的最小几何变化值。网格优化过程中,几何变化值小于这个数据值时,则停止继续优化。-1为自动计算值。
  • 均匀:网格顶点均匀分布的目标顶点数Remesh,如下中图所示。
  • 几何:网格顶点非均匀分布的目标顶点数Remesh,曲率大的地方顶点密一些,如下右图所示。
  • remesh_egea
  • 参数-TargetLen:Remesh的目标平均边长
  • 参数-Error:是否加入误差约束。ErrorBound为简化后网格的距离误差。距离为单边Hausdorff距离(简化网格到原网格距离) 。注意是否勾选了Unify参数:三维模型在导入的时候做了均匀缩放到包围盒[-1, 1],所以这里的距离是在缩放后的尺度空间里的。模型缩放到[-1, 1]是为了方便测试。如果想设置模型尺寸的参数,可以把Unify去掉。

  • Remesh-优化

  • 优化网格的拓扑连接和几何。这里的优化主要是一些局部的优化算子。
  • 参数-SharpAngle:网格边的相邻面夹角大于sharpAngle,则认为是一个sharp边。网格优化的时候,会保持住sharp边的几何。参数范围是(0, 180)。
  • 参数-FlatAngle:网格优化过程中,如果三角片的法线变动超过这个角度,则会取消掉对应的优化操作。这个参数的用意是需要在优化过程中,三角片的形状变动尽量的小。所以,如果FlatAngle设置的比较小的时候,有些三角片不会被优化。参数范围是(0, 180)。
  • 参数-ItrNum:网格优化的最大迭代次数
  • 参数-OpEpsilon:网格优化的最小几何变化值。网格优化过程中,几何变化值小于这个数据值时,则停止继续优化。-1为自动计算值。
  • CDT:Delaunay网格优化。优化网格连接关系,减少狭长三角形,保持网格顶点数目不变。
  • CVT:重心Voronoi网格优化。优化网格连接关系和顶点位置,减少狭长三角形,保持网格顶点数目不变。
  • 参数-KeepTopo:CVT优化过程中是否保持网格拓扑不变
  • 参数-Error:是否加入误差约束。ErrorBound为简化后网格的距离误差。距离为单边Hausdorff距离(简化网格到原网格距离) 。注意是否勾选了Unify参数:三维模型在导入的时候做了均匀缩放到包围盒[-1, 1],所以这里的距离是在缩放后的尺度空间里的。模型缩放到[-1, 1]是为了方便测试。如果想设置模型尺寸的参数,可以把Unify去掉。
  • 拓扑:优化网格拓扑,目标是优化顶点度数尽量为6。
  • 如下图所示,左图是原始网格,中间图是CDT的结果,右图是CVT的结果。
  • cdt_cvt_patch

    Remesh-Wrap

  • 用闭网格把导入的网格包裹住,形成的闭网格,内部是空的。输入的网格,可以带有空洞,三角片的正反面可以是乱的。详细操作参考视频示例数据下载
  • 参数-DistTol:包裹网格与原网格的距离误差范围
  • 参数-GapRes:包裹网格的包裹分辨率,值越大,则原始网格的细节保留越低。注意,一般情况下:GapRes >= DistTol * 2
  • wrapmesh_car

    Remesh-RemeshLine

  • 重新采样网格线,局部重新网格化。详细操作参考视频
  • 参数-TargetLen:重新采样网格线的平均边长,注意是否勾选了Unify参数
  • 参数-SharpAngle:网格线的相邻边夹角大于sharpAngle,则认为是一个sharp点。重新网格化的时候,会保持住sharp点的几何。参数范围是(0, 180)。
  • wrapmesh_car

    选择:从左至右按钮依次是:右键方框选择,右键方框取消选择,删除选择,是否忽略背面,返回右键平移,取消所有选择

    Connected Region: 右键框选时,是否把网格连通部分都选上


    如果您有任何疑问和建议,欢迎发email:

    contact