语法

  • 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 操作可能需要清理。 例如,setNormals 和 softenNormals 操作需要合并重复折点才能使用相邻面法线计算折点法线。

注:

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

相关内容

示例

清理三角化资产

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

Init-->
   i("myHouse.dae")
GUID-96B307A5-7D3E-4D61-9100-B0940B07E737-web

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

Init-->
   i("myHouse.dae")
   cleanupGeometry(all, 0)
GUID-F6AA0DED-CD75-4EC9-BBDC-6AF608062070-web

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

Init-->
   i("myHouse.dae")
   cleanupGeometry(all, 0.1)
GUID-EF8C74F5-0940-4C56-A039-F728850DA299-web