使用Meshlab减少3d打印模型的多边形数量 

3D打印技术 /[软件]
2017-10-18 23:00
1.jpg
很多时候我们会碰到对物体多边形数量的限制,比如有些网站,因为处理大量的多边形会迅速增加其服务器和打印机的工作量,可能会要求你上传的物体多边形数量必须小于1百万。
有些工具比如ZBrush的使用会产生很高的多边形数量,所以这样的限制会很容易超过。幸运的是,有一种被称为多边形减少(或网格抽除)的解决办法。也许你的3D应用程序已经内置了这项功能,不然则开源工具meshlab提供了一个很好的选择。meshlab可用于Windows,OSX和Linux。
下图展示的是我用一个拥有480000个面的小车模型做的测试。降到120000个面的时候,模型质量上的差异几乎看不出来。再低的话,你将看到模型变得越来越粗糙(点击图片可以看到图片高分辨率的版本):
2.jpg


那么让我们开始吧!


如果你没有安装Meshlab那么请下载并安装,然后导入你的模型。
从菜单上选择Filters >Remeshing, simplification and construction> Quadratic Edge Collapse Detection。如果你的模型已经结构化(textured)了,也有个效果不错的带结构的选项(with texture)用来恰当的保持你的模型的结构位置。会弹出一个有些选项的面板。你可以点击“Help”键来获取额外的关于这些可获得选项的信息,不过这些信息不能回答你所有的疑问,所以你可以尝试直接联系Meshlab的创作者Paolo Cignoni进行确认。
下图是我们认为最有的选型设定:
3.jpg
Targetnumber of faces – 面数目标,意义很直观;
Quality threshold:1.质量阈值
此处输入一个介于0和1之间的数字;数值越大Meshlab就会越努力的尝试保持你原有模型的形状。说明文档没有明确使用较大的值会有什么不良后果,我印象中也许就是处理起来比较小值要慢一点点,所以我便很高兴的直接使用1这个最大值来获取很不错的转换结果了。
Paolo的注解是:质量阈值影响的是对不好形状面集进行惩罚的简化。相对于可以更自由的选择最终形状而言,为了只使用由三角形集构成的更好的形状来准确的逼近原始形状,你将需要使用更多数量的面。[0..1]范围内的值含义是:
0 接受任何一种形状的面(无惩罚),
0.5惩罚质量< 0.5的面,即跟他们的形状比例小于0.5。(显然,1就是指基本保持原有形状)
PreserveBoundary of the Mesh: Yes. 网格边界保持:Yes
Paolo的注解是:简化过程将力图不破坏网格的边界。例如网格的外露的边界将原封不动的不做处理。这个参数对水密性网格不起作用。
PreserveNormal: Yes. 法向保持:Yes
选择这个可以阻止Meshlab意外的翻动面的法向量。Paolo的注解是:试图避免面的翻动效果,保持面的原始朝向。使能此项唯一的缺点是将轻微增加处理的时间开销。此项默认为开启状态。
如果你在上传或其他什么操作的过程中真碰到了法向量反转这类问题,可以尝试使用以下选项重新定位法向量:Filter>Normals, Curvature and Orientation > Re-Orient all faces coherently注:这项功能仅在物体满足流形要求的时候有效(流形可直观理解为物体表面任意局部连续并可微)
Optimalposition of simplified vertices: Yes. 最优化简化后顶点位置:Yes
Paolo的注解是:在破坏一条边的时候,选定顶点位置会最小化当前估计的误差。如果不使能,破坏掉的边将坍缩到其所在两个顶点的一个上,这样处理完得到的网格的顶点将变成原始网格顶点的一个子集。这项功能默认为开启状态。

Planarsimplification: Yes. 平坦简化:Yes
Paolo的注解是:这增加的额外的简化约束将尽量保持当前三角形群所组成的形状。它能够显著的提升网格中非常平坦的部分三角形群最终构成的形状的质量。跟质量阈值一样,它影响的是精度和复杂度的比值(accuracy/complexityratio)。默认为关闭,因为它只在一些特定的场合非常有效,例如你的模型里有镶嵌得特别好的很平坦的区域。'
感谢shapeways提供的如此详细的教程,该中文版本由DGO点构三维技术有限公司翻译完成并对原文进行了一些整理
如果你还想学习meshlab的相关教程,不妨看看【教程02】MeshLab & Netfabb 修复你的模型
声明:3D打印资源库(3dzyk)内网友所发表的所有内容及言论仅代表其本人,并不代表3D打印资源库(3dzyk)观点和立场;如对文章有异议或投诉,请联系kefu@3dzyk.cn。
使用Meshlab减少3d打印模型的多边形数量 
快速回复 返回顶部 返回列表