网格编辑模块

Icon

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


修复

  • 流形检测:检测网格是否是流形结构
  • 拓扑:修复网格拓扑缺陷,移除孤立顶点, 非流形结构
  • 几何:修复网格几何缺陷,优化退化三角形, 折叠三角形
  • 孤立项:移除网格孤立项. 参数-Isolation:孤立值小于此值的网格部分会被移除掉
  • 反向:翻转网格法向量方向
  • 自交检测:检测网格是否有自交情况
  • 法线:更新法线

  • 滤镜:过滤网格的几何,比如去噪,光滑网格,增强网格细节.

  • 去噪:去除网格噪音, 并保持特征边不被光滑. 如果有面片选择,则局部去噪。这个功能有两个参数:Iterations-迭代次数;Intensity-去噪强度,范围是(0, 1),强度越大,网格越光滑.
  • denoise
  • 法线:光滑法线
  • 光滑:光滑网格。如果有面片选择,则局部光滑。参数-PosWeight:为顶点位置固定的权重,权重越大,去噪光滑程度越小,参数范围是(0, infinity),默认为1.0
  • Sharp:特征边增强。参数:Intensity-增强强度,范围(0, 1); Radius-特征边增强范围半径; Angle-特征边曲面夹角。增强结果的红色部分为增强区域。用户也可以手动选择区域。如果有用户选择的区域,则功能只增强选择区域,否则会先计算增强区域,再做特征边增强。
  • sharp_mesh_edge
  • Blend:特征边光顺。参数:Intensity-光顺强度,范围(0, 1); Radius-特征边光顺范围半径; Angle-特征边曲面夹角。
  • 抹平:抹平选择部分的几何。注意,不能选择边界点
  • filteroutgeometry

    Remesh-简化

  • 简化网格,简化结果尽量保持原始模型的几何特征。
  • 参数-TargetNum:基于目标顶点数的简化,参数为网格简化后的期望顶点个数。期望顶点数大多数情况是可以达到的,某些期望顶点数很少的情况,有可能简化不到期望的顶点数。
  • 参数-MinEdgeLen:简化掉网格的短边,短边长度小于MinEdgeLen。
  • 参数-Error:是否加入误差约束。ErrorBound为简化后网格的距离误差。距离为单边Hausdorff距离(简化网格到原网格距离) 。注意是否勾选了Unify参数:三维模型在导入的时候做了均匀缩放到包围盒[-1, 1],所以这里的距离是在缩放后的尺度空间里的。模型缩放到[-1, 1]是为了方便测试。如果想设置模型尺寸的参数,可以把Unify去掉。
  • meshsimplification_small

    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)。
  • 参数-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:包裹网格的包裹分辨率,值越大,则原始网格的细节保留越低
  • wrapmesh_car

    Remesh-RemeshLine

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

    四边形-四边形

  • 根据导入的三角形网格生成边长均匀的四边形网格。
  • 对齐:生成的四边形网格边走向尽量对其几何特征,如图二所示。参数-QuadSize:生成的初始四边形网格的平均边长。参数-SubdNum:在生成的初始四边形网格做细分的次数。
  • Fast:快速生成四边形网格。参数-QuadSize:生成的初始四边形网格的平均边长。
  • Subd:用CC细分的方式生成四边形网格
  • GenerateQuadMesh_Bunny

    四边形-优化

  • 优化四边形网格的几何或者拓扑结构
  • 参数-ItrNum:网格优化的最大迭代次数
  • 参数-OpEpsilon:网格优化的最小几何变化值。网格优化过程中,几何变化值小于这个数据值时,则停止继续优化。-1为自动计算值。
  • 几何:优化四边形网格的几何
  • 拓扑:优化四边形网格的拓扑结构,减少奇异点个数
  • optimise_quadmesh_bunny

    补洞

  • 补洞:目前有三角化,平面,光滑和曲率四种类型的补洞方法。如果有选择洞,则选择的洞不会修补,如果没有选择,则全部补洞。参数MaxHoleSize可以控制只补点数<=MaxHoleSize的洞。
  • catfillhole
  • 搭桥:选择需要搭桥的一对边,自动桥接。参数Smoothness为搭桥部分的光滑性,范围是[0, 1]:0-代表平的类型,1-代表曲率类型,之间的值介于两者之间,值越大越光滑
  • fillhole_wolf

    抽壳

  • Offset: 参数意义则为移动距离D。注意,三维模型在导入的时候做了均匀缩放到包围盒[-1, 1],所以这里的移动距离D是在缩放后的尺度空间里的。模型缩放到[-1, 1]是为了方便测试。如果想设置模型尺寸的参数,可以把Unify去掉。
  • 抽壳:使网格沿法线方向移动距离D,如果是开网格,则在边界处于原网格连接变成一个闭网格。如下图2
  • 等距:使网格沿法线方向移动距离D
  • 加厚:使网格往内外都等距增厚。如下图3
  • implicit: 是否使用隐式曲面的计算方法。如果是,则需要设置Resolution
  • shell_thicken

    映射-投射

  • 导入一个参考网格,把网格投射到参考网格上。
  • project

    映射-拟合

  • 导入一个参考网格,用网格去拟合参考网格的几何。
  • 拟合需要导入两个网格的对应标记点,标记点文件格式为file.mark: markSize markIndex0 markIndex1 ...... 如图所示,第一个网格是导入的网格,第二个网格是导入的参考网格,第三个网格是拟合的结果。
  • fit

    映射-特征点

  • 鼠标右键可以选择网格顶点特征点
  • 保存:保存特征点
  • 删除:清空当前的特征点

  • 布尔-参考模型

  • 参考模型-Unify:导入的参考模型是否需要归一化。归一化可以使参考模型与导入的模型在同一尺度下。如果它们本身是同一尺度下的,则不需要Unify。
  • 参考模型-导入:导入参考模型。
  • 参考模型-移动:鼠标右键进入移动参考网格的模式。
  • 参考模型-直纹面:鼠标右键在屏幕画出一条曲线,这条曲线往屏幕视角方向延伸,生成一个直纹面,作为参考模型。

  • 布尔-平面

  • 用平面切割网格。参数为平面距离原点的距离。
  • 平面-随机:切割平面的法线为随机方向。
  • 平面-XY:切割平面为XY平面。
  • 平面-YZ:切割平面为YZ平面。
  • 平面-ZX:切割平面为ZX平面。
  • 选择平面:鼠标右键在网格上选择三个点可以定义一个平面

  • 布尔-网格切割

  • 网格切割:用参考网格来切割网格。
  • CutMesh
  • 网格切割-FillSplitHoles:是否用参考网格的切割部分来填充网格切割后形成的空洞。填充的空洞边界需要是单联通的,并且是切断的。所谓切断的,就是切口出有两条几何重合的切割边界。如下图所示,左边的就没有切断,右边是切断的。如果切割边界不满足补洞条件,则不做填充。
  • SplitType.jpg
  • 网格切割-Fill2Sides:网格切割形成的空洞有两部分,这个选项是是否把两部分都填充了。如果不选择两边,则只用参考网格切割部分的网格去填充其中一面。
  • FillSplitHoles

    布尔-布尔

  • 并:布尔运算并(如下图2结果)。布尔运算需要封闭的网格输入
  • 交:布尔运算交(如下图3结果)
  • 差:布尔运算差(如下图4结果).
  • mesh_boolean_almodilo
  • implicit:是否使用隐式曲面的计算方法。如果是,则需要设置Resolution, Radius. Blend类型有Smooth, Round, Sharp, Chamfer类型,如图所示
  • boolean_implicit_blend

    布尔-叠加:把参考网格和原网格合并。


    分割-特征线:计算网格特征线。

  • 曲率:基于曲率计算的特征线检测。Ratio-显示特征线比例(特征线根据权重排序,显示比例Ratio的特征线)。
  • 二面角:基于网格边二面角检测特征线。Angle-二面角阈值。二面角大于阈值的边为特征边。
  • 分割:基于特征线的网格分割。Details-值越大,分割越细,范围(0.5, 1.0]

  • 分割-分割:根据用户设定的分割数量,自动分割网格区域。注意,分割数量不是分割硬约束,分割算法会根据实际情况自动计算分割数量。


    分割-计算凹槽特征线:用户在网格上选择一个顶点,设置选择半径大小(r=mesh_boundingbox_size * 参数),然后程序会自动在用户选择的区域内计算一条凹槽特征线。紫色区域为用户选择的区域,可以通过设置参数大小来改变选择区域的大小。一般情况下,只要这个选择范围刚好覆盖凹槽特征线即可。

    如果一次点击不能满足要求,则可以多次选择:

  • “+”:如果切割线有部分没有选到,可以点击这个按钮进入增加选点模式。然后算法会根据多个点来计算切割线。
  • “-”:如果切割线圈到了多余的部分,则可点击这个按钮进入去掉背景模式。
  • 一些计算凹槽特征线的例子


    分割-标记分割:基于标记点的网格分割。用户在网格上拾取标记点,不同标记点有不同的分割ID,算法根据标记点自动分割网格。

  • “+”:鼠标右键加点模式。
  • “-”:鼠标右键减点模式。
  • 随机:随机生成标记点。
  • 计算:根据标记点分割网格。Dist-是否根据距离来分割。

  • 分割-Refine:优化网格分割结果。

  • Refine:细化分割结果,比如把多边界部分细化成多个单边界部分。
  • 拓扑:优化分割边界线拓扑。
  • 光滑:光滑分割边界线。
  • “-”:收缩分割结果。SRatio-ShrinkRatio, 收缩比例。

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

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


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

    contact