cleanupGeometry 操作

语法

  • cleanupGeometry(components, tolerance)

参数

  1. components - 选择器
    要清理的组件:
    • vertices - 合并折点并移除共线折点。
    • edges - 合并折点并移除共面的面之间的共享边。
    • faces - 合并折点并移除重复面以及小面积退化面。
    • all - 清理所有组件。
  2. tolerance - 浮点型(范围 [0, 1])
    控制清理操作的严谨性。
    • 0 - 仅清除匹配组件。 折点必须相同,边共线,面共面或面积为零才能移除。
    • 1 - 将合并间距不超过 1m 的折点。 夹角不超过 10 的边视为共线。 法线夹角不超过 10 视为共面。 将移除面积不超过 1m² 的面。
    • [0, 1] - 对于介于 0 和 1 之间的值,将应用线性插值。

说明

cleanupGeometry 操作用于清理当前形状的几何。

此操作的目的是优化几何的网格数据结构,但不会更改模型的外观。 可能减少面和折点计数。

后续 CGA 操作可能需要清理。 例如,setNormalssoftenNormals 操作需要合并重复折点才能使用相邻面法线计算折点法线。

注:

由于会保留不连续的纹理坐标,因此可以禁用清理步骤。 在某些情况下,可能需要事先删除 UV 坐标。

相关内容

示例

清理三角化资产

原始资产(464 个面,758 个折点)。

Init-->
   i("myHouse.dae")
原始资产

轻度清理会清除大多数的干扰边(190 个面,752 个折点)。

Init-->
   i("myHouse.dae")
   cleanupGeometry(all, 0)
轻度清理之后的资产

提高容差可清除其余难以处理的边(146 个面,616 个折点)。

Init-->
   i("myHouse.dae")
   cleanupGeometry(all, 0.1)
提高容差之后的资产

在本主题中