Meshy 免费版 GLB 拆解:只有几何,没有材质

一句话结论:免费 AI 3D 交付的常常不是"带材质的模型",而是一堆三角面。一份 Meshy 免费账号导出的葡萄风信子 GLB 有 784,708 字节、21,781 顶点、43,546 三角形,唯一的网格属性是 POSITION——没有 UV、没有法线、没有贴图、没有 PBR。它能进 Houdini、能过 glTF 校验、能在 Three.js 里 33 毫秒加载完(本地预热),但它不是可直接用的资产。全文最值钱的一条教训是:把模型归一化到 0.6 单位高之后,照默认参数做清理,细叶被删掉近一半(43,546 → 23,817 三角形,边界边 0 → 11,625)。

披露:本文编译自 Alicia / Digital Garden 的免费工作流实测(dev.to 2026-10-20),原文由 Codex 操作 Meshy 网页、Houdini 22.0.429 与 Three.js 验收页完成,作者保留了失败项与未测边界。模型以 CC BY 4.0 发布,署名"model created with Meshy by Alicia",派生件附修改说明。我们没有复跑;免费额度与面板文案是 2026-10-20 的界面观察,平台随时可能改。


一、先确认"能不能导出",再花时间生成

这份实测的第一个坑不在几何,在账号权限:

观察项(2026-10-20) 结果
免费计划 100 credits / 月,10 次下载 / 月,限定 Meshy 6 Lite
3D Agent 的模型选择器 有更高阶模型,但没有 Lite 选项;Agent 自己的回答也把免费下载指回普通生成器
普通 Text to 3D 面板 可选 6 Lite,报价 10 credits,许可选 CC BY 4.0
实际生成一次 下载计数 10 → 9;账户另有 30 credits 的每日签到,余额 120 不是这次成本
下线提示 页面写明 Text to 3D 将于 2026-10-31 退役(当天观察,不构成承诺)

作者的做法值得抄:先用一次真下载验证权限,再谈批量生成。选择器里有某个模型,不等于这个账号能把它导出来;"先生成 20 个,最后发现一个都下不了"是最贵的失败。

二、下载下来的文件里到底有什么

项目 值
文件字节 784,708(约 766 KB)
顶点 21,781
三角形 43,546
网格属性 仅 POSITION
UV / 法线 无
材质图像 / PBR 无
连通组件 13
边界边 / 非流形边(Houdini 导入并解包后) 0 / 0
许可 CC BY 4.0

三点必须分清:

  1. 颜色不是"贴图丢了",而是从来没生成过。提示词里写的紫色花、绿色茎,只存在于提示词里;交付物是纯几何。要颜色,后面得自己做 UV、材质或顶点色。
  2. 0 边界边 + 0 非流形边,只证明"每个壳闭合、没有三面共边"。它不证明无自交、不证明 13 个组件是一个整体、更不证明可打印。网站上的 printable 徽章不能替代测量。
  3. 13 个组件对植物是合理的(叶片、花、茎可能各自成件),但进引擎后就是 13 个可分离对象:合并、命名、碰撞体、LOD 都要额外处理。

三、一次失败的清理,把"尺度"问题暴露出来

作者的处理顺序:保留原始文件 → 派生件居中到 X/Z、落到地面、归一化到 0.6 单位高 → 进 Houdini 清理。

第一版清理用默认参数,结果:

  • 只剩 23,817 三角形
  • 边界边 11,625
  • 组件 69

文件确实变小了,但洞更多了——作者直接拒绝:"更小的文件 + 更多的洞不是清理"。

原因在 Houdini 的 Clean 参数语义:Degeneracy Tolerance 是"边长"量纲,其平方与面积比较(SideFX 文档原话)。所以模型被缩放后,"什么算退化"的物理阈值也跟着变了:把 0.6 单位高的小模型交给默认容差,等于用别人的尺度标准删你的细节。

接受版的做法:

  • 把退化容差降到 1e-12
  • 可能的重叠/自交条件只标记、不自动修
  • 结果:43,546 三角形、0 边界边、0 非流形边、13 组件全部保留

这条经验比任何参数表都重要:先固定尺度策略(原始单位,还是统一归一化),再调容差;每跑一步都记录三角数 / 边界边 / 组件数,数字变了就要问"这是我想要的吗"。

四、减面与重网格:参数要落在"真正生效的字段"上

  • PolyReduce:用 Output Polygon Count 目标,finalcount=3000。 注意:只把数字写成 3000、但目标类型还停在 percentage,这个值不会生效。
  • Remesh 分支:target size 0.006,5 次迭代。
阶段 点 三角形 边界边 非流形边 组件
raw 21,781 43,546 0 0 13
clean 21,781 43,546 0 0 13
reduce 1,508 3,000 0 0 13
remesh 2,785 5,554 0 0 13

两个诚实的点:

  • remesh 丢了一部分叶宽,与包围盒的变化一致,所以不能叫"视觉一致"。
  • 三个分支在导出 GLB 前都做了六面投影 UV + 计算法线。这产生的是"可检视的 UV",不是手工低畸变的 UV 布局;源文件没有 PBR 图像可烘,作者也没有伪造"贴图烘焙成功"。HIP 保存、重开、重算过一遍。

五、浏览器验收:四个候选,两组数字

  • glTF 校验:源文件与最终 GLB 均 0 error / 0 warning(信息级与 bufferView 提示保留在回执里)。
  • Three.js 0.186.1:每个候选都通过 5 个不同的 localhost URL 加载;计时包含解析、编译与提交一帧,是预热后的本地时间,不是公网或冷启动时间。
候选 字节 本地加载到提交帧(中位)
原始下载 784,708 33.3 ms
clean(加 UV / 法线) 2,025,332 33.3 ms
reduce(加 UV / 法线) 214,740 16.6 ms
remesh(加 UV / 法线) 391,480 16.6 ms

最容易误读的一行是第二行:给全分辨率派生件补上 UV 和法线后,它比"只有 POSITION"的原始文件更大。减面与补属性是两件不同的事,不能指望"清理一下文件就小了"。

实例化测试:把 3,000 三角形的候选复制 1,000 份,用 InstancedMesh,回执记录 2 次 render call、3,000,001 个三角形(含节点渲染器的输出 pass)。实例化共享数据,但不减少重复的三角形工作量。WebGPU 与强制 WebGL2 回退都测过。

glTF 查看器

六、可直接抄的验收清单(AI 3D → 引擎 / 打印)

  1. 许可与署名:平台条款 + 导出许可(本例 CC BY 4.0);派生件保留署名与修改说明。
  2. 账号权限:当前计划能下载哪些模型?先做一次真下载验证。
  3. 字节 / 三角形 / 顶点:先记账,再谈优化。
  4. 属性清单:POSITION / NORMAL / TEXCOORD / 材质图像 / 扩展。
  5. 组件数:几个壳?是否需要合并、命名、分组。
  6. 边界边与非流形边:焊接后测,别把 UV 缝当边界边。
  7. 绕序与法线:导入后是否统一朝外。
  8. 尺度 / 单位 / 原点 / 朝向:包围盒 vs 实物尺寸。
  9. 清理容差与尺度的绑定:归一化后重设容差;每一步记录计数。
  10. UV 来源:投影 UV 可用于检视,不等于可交付 UV。
  11. glTF 校验:0 error 是底线,warning 也要看。
  12. 运行预算:加载时间、draw call、三角形/实例预算。

七、这条路什么时候够用,什么时候不够

够用:概念图、道具、远景、白模打印前的形状探索、给程序化场景做参考件。

不够用:

  • 替换生产资产:缺材质、UV、变形属性,也没有场景级验收;
  • 直接打印:细叶/薄壁、最小壁厚、支撑面都还没验(水密不等于能打印);
  • 继续编辑:三角面不是 B-rep,要参数化得走 STL → 可编辑 CAD。

作者最后放了一株独立编写的 Houdini 风信子做几何预算与结构可见性的参照,并明确说明:它不是植物学真值,也不是盲测审美对比。这个态度值得学——参考件只用来对齐预算,不用来证明"AI 做得对不对"。

一句话:免费额度买到的是几何起点,不是资产交付。 把它当草稿,后面的 UV、材质、尺度、拓扑与场景验收,每一步都要自己补。


Sources

同主题阅读

主工具:拿到一个 GLB 先别急着进引擎——拖进在线 glTF 查看器 看一眼有没有法线、材质和贴图,再决定要不要清理。要看三角形数量与包围盒,用 3D 模型查看器 也行。

本文属于「AI × 3D / 生成式 AI」专题。BimAnt 编译整理,转载请注明出处。原文为免费额度下的单模型、单文件测试(由 Codex 操作),加载时间为本地预热数据;模型以 CC BY 4.0 发布,转载时请保留署名。

本文属于「AI × 3D」专题。查看专题全部文章 →