实测四款免费网格简化工具:meshoptimizer、CGAL、Open3D 与 fast-simplification

AI3D 发表于 4 周前 浏览 0 分类 新闻资讯

Testing 4 Free Mesh Simplification Tools

引言

我在来自 Bohemia Interactive 的《Arma Reforger》的生产级游戏资产上,对四款免费、开源的网格简化工具(meshoptimizer、CGAL、Open3D 和 fast-simplification)进行了基准测试,以弄清独立开发者究竟该用哪一款。我针对八个资产运行了 288 次基准操作,然后让 150 人在近 2,800 次成对比较中评判视觉质量。以下是我希望在我刚开始时就已经存在的推荐表格,以及数字背后隐藏的故事。

测得几何误差最低的那款工具,在人们实际观看偏好中排名第三。人们最偏好的工具同时也是最快的。而那款速度第二快的工具,在被要求简化 80% 时,把一座教堂塔楼压塌成了锯齿状的尖刺。

为什么这很重要

如果你有预算,你就去购买 Simplygon 授权,然后了事。但我们大多数人并不在有这种选择的游戏工作室工作。如果你是独立开发者、学生或小团队,你就是在免费工具之间做选择,而没有关于哪一款能在真实游戏资产上真正产生好结果的实证指导。

这四款工具

这四款都实现了二次误差度量(quadric error metric)的变体,这是大多数网格简化背后的标准算法。meshoptimizer、Open3D 和 fast-simplification 都可以在不到三分钟内通过 pip 安装。CGAL 需要通过 vcpkg 进行 C++ 编译,带有 109 个依赖项,构建时间约一小时。

Testing 4 Free Mesh Simplification Tools

何时该用哪种工具

排名前三的工具在感知偏好上的差距仅有 3.4 个百分点。差距非常小。如果你无法安装 CGAL,meshoptimizer 能覆盖大部分相同的功能。

表格没有向你展示的内容

数字会把故事抹平。以下是数据实际呈现出的样子。

Testing 4 Free Mesh Simplification Tools

fast-simplification 使用了一种激进的误差阈值,该阈值随着每次迭代而升级。在紧凑、水密几何体上,它运行良好。在 Church 上,由于其塔尖和窗棂,算法在减少 79.5% 时遇到了瓶颈,而不是所要求的 90%,而且它实际生成的结果在结构上被破坏了。

它还填充了 Jeep 的挡风玻璃空洞,并移除了 Watermill 的桨叶。开发者自己的文档说,该方法“适用于没有薄截面的水密体”。这是一个狭窄的细分领域,大多数生产管线都不适合。

Testing 4 Free Mesh Simplification Tools

Open3D 的情况则更为微妙。它把顶点放置得比任何其他工具都更贴近原始表面,差距达到三倍。但它在折叠边时会平均顶点法线,这意味着硬表面资产的结果看起来像被“枕头化”了:在美术师本想要锐利边缘的地方却变得平滑。而在像 Bunker 沙袋或 Mi-8 直升机机身这样的有机几何体上,同样的平滑反而有帮助,Open3D 在这些资产上的感知表现领先。

问题在于,它的几何误差指标看起来完美,视觉效果却并非如此。这就引出了一个更广泛的发现:像豪斯多夫距离这样的几何精度指标,只能解释驱动玩家视觉偏好的因素中约 10–15% 的部分。着色保持、轮廓完整性和特征保留的重要性要大得多,而没有任何标准指标能捕捉到这些。如果你通过比较哪个工具报告的误差数值最低来评估简化工具,那你很可能在优化错误的目标。

meshoptimizer 在任何单个资产上都没有取得压倒性的胜利,但它也从不惨败。它在折叠前按类型对顶点进行分类,从索引缓冲区自动检测属性不连续之处,并保留其他工具要么忽略、要么平均掉的着色边界。正是这种跨资产类型的一致性,让它登上了感知偏好的榜首(57.6%);而且平均 24 毫秒的速度,也让它在速度上大幅领先。

CGAL 在对紧凑硬表面物体进行适度减面时表现最强,在 50% 减面率下以 63.5% 的胜率在感知上领先。但在激进减面水平下它的效果会下降,而且对于没有 C++ 经验的人来说,安装它是一个真正的门槛。

自己动手试试

完整的基准测试流程、感知研究平台和分析脚本都已发布在 [GitHub]上。你可以在自己的资产和方法上运行同样的评估,而无需重新搭建基础设施。完整的论文也包含在该仓库中。

Lukáš Gallo,技术美术

相关链接

原文链接:https://80.lv/articles/testing-4-free-mesh-simplification-tools

喜欢这篇内容吗?