如何在 Cympha Studio 中填充孔洞与光顺网格
Fill holes 封闭整个网格的开放边界,Smooth 平滑表面噪点,本文说明为牙科病例准备扫描时何时组合使用两者.
适用对象: 大体正确但存在开放边界(想要在整张网格上封闭所有孔洞)或表面有高频噪声需要松弛的网格的临床医生和技工所设计师,且不需要 Fix model 中较重的非流形与最大区域处理.
你将了解到: 何时该选 Fill holes 或 Smooth 而不是 Fix model 或笔刷工具;如何从网格右键菜单调用它们;每个命令对几何做了什么;它们通常如何与其它清理命令配合使用.
所需时间: 单击需几秒,单颌网格上每个命令运行需几秒.
开始之前
你需要:
- 已通过 Add model (+)、☰ Open optical scan file… 或拖放添加到场景中的网格. 支持格式:
.stl、.ply、.obj. - 未加载 GuideMia 病例 —— Fill holes 与 Smooth 仅在没有完整
.gvw病例打开时才会出现在用户添加网格的右键菜单中. 若已打开,请用 ☰ → Clear scene.
登录 studio.cympha.com 并打开你的网格.
整张表面,而非笔刷. ** Fill holes 与 Smooth 都是对整张网格**一键执行 —— 它们不接受涂抹的区域. 如果网格上一处好、一处坏,笔刷工具能给你更精细的控制. 参见 如何用笔刷工具清理网格.
何时该用哪个命令
右键菜单中提供三种整张表面清理选择. 选对工具能省去返工:
| 命令 | 是否封孔? | 是否光顺? | 是否去除非流形? | 是否保留最大区域? | |---|---|---|---|---| | Fix model | 是(小孔,两遍) | 是(轻度) | 是 | 是 —— 丢弃不连通件 | | Fill holes | 是(两遍) | 轻度 | 否 | 否 —— 保留不连通件 | | Smooth | 否 | 是 | 否 | 否 |
当网格结构上没有问题但你希望一次性封闭所有开放边界时,选 Fill holes —— 典型场景是扫描仪未捕捉到的几处小缺口,或布尔切割后沿切割路径残留的孔洞. 它会封闭这些开口,且不会处理不连通的岛.
当拓扑正常、边界也符合预期,但表面本身有噪声时,选 Smooth —— 例如低分辨率打印扫描的阶梯伪影,或来自手机摄像头的面部扫描上的散斑噪声. Smooth 只改变顶点位置,不删除三角形也不封孔.
当你想要一次保守的全流程处理时,选 Fix model —— 参见 如何用 Fix model 修复网格.
当缺陷是局部的、网格其余部分正常时,选笔刷工具 —— 参见 如何用笔刷工具清理网格.
第 1 步 —— 打开网格右键菜单
- 在主 3D 视图中直接在网格主体上右键单击. 菜单在光标处打开;标题显示你点击的网格文件名,这样你能确认即将编辑的就是正确的那一个.
- 在菜单外单击或按 <kbd>Escape</kbd> 可关闭菜单且不执行任何操作.
第 2 步 —— 运行 Fill holes
- 在右键菜单中选择 Fill holes.
- 流水线在主线程上运行期间,视图显示等待光标. 单颌网格预计几秒;密集网格更久.
- 关注视口底部的状态行:
- 开始:"Fill holes: running global pipeline…"
- 成功:"Fill holes complete (global + slight smooth)."
- 失败:"Fill holes failed: empty result."、"Fill holes failed (geometry update).",或带原因的 "Fill holes failed: …".
- 成功后,清理后的几何替换场景中的原网格.
流水线做了什么: 两遍全局填洞,随后一次轻度光顺. 非常大的开口按设计保留为开放 —— 尺寸上限的存在是为了避免算法跨过一颗缺失牙齿"假装"那里是表面.
**两遍而非一遍. ** 一遍填洞偶尔会暴露第一遍揭开的次级孔洞 —— 例如一条细窄的缺失表面,在周围三角形被缝合之后才变成可封闭的边界. 第二遍能捕获这些.
第 3 步 —— 或运行 Smooth
- 在右键菜单中选择 Smooth.
- 流水线运行期间视图显示等待光标.
- 关注状态行:
- 开始:"Smooth: running global pipeline…"
- 成功:"Smooth complete (global)."
- 失败:"Smooth failed: empty result."、"Smooth failed (geometry update).",或带原因的 "Smooth failed: …".
- 成功后,松弛后的几何替换场景中的原网格.
它做了什么: 一次作用于每个三角形的全局光顺. 没有刻意的封孔、没有三角形删除、没有拓扑变化. 三角形数量和连通性保持不变;仅顶点位置移动.
**平滑会累积. ** 运行 Smooth 两次的效果大约是一次的两倍. 如果一遍不够,可以再跑一次,而不是直接换用笔刷 —— 但一旦解剖结构开始肉眼可见地变软就停下. <kbd>Ctrl</kbd>+<kbd>Z</kbd> 可恢复上一版几何,但撤销只有一步 —— 想回退更多就得重新导入原文件.
与 Fix model 及笔刷清理的搭配
这些命令的设计能很好地组合:
- 嘈杂扫描的典型修复顺序: Add model → 可选 Fix model 做一次保守处理 → 如果某处仍有问题,使用笔刷工具(Smart cleanup… / Delete region… / Local smoothing…) → 如果局部编辑后仍有开放边界,使用 Fill holes → 最后如果想再让表面松弛一次,使用 Smooth.
- 不要默认在
Fix model之后跟Fill holes—— Fix model 已经跑过两遍填洞. 仅当你仍能看到 Fix model 留下的开放边界时,再加 Fill holes.
成功的样子
- 对 Fill holes:状态行显示 "Fill holes complete (global + slight smooth).",开放边界已封闭. 表面比输入略光顺,但仍可辨识.
- 对 Smooth:状态行显示 "Smooth complete (global).",高频噪声 —— 阶梯、散斑、三角形尺度的粗糙 —— 减弱. 三角形数量与孔洞位置不变.
- 两种情况下,Models 中该网格条目仍在,颜色与可见性设置保留,只是几何被原地重写.
故障排查
**右键菜单不显示 Fill holes 或 Smooth. ** 加载了 GuideMia 病例 —— 用 ☰ → Clear scene 清场,或切换到一个未加载病例的标签页. 若你在病例几何而非用户添加网格上右键,这两个命令也会消失.
**Fill holes complete 但我仍能看到一个大开口. ** 这个洞超过了过滤器的尺寸上限,所以被跳过. 使用笔刷 —— Smart cleanup… 有时可以先削薄边缘再封闭较大的边界 —— 或者在专门的网格编辑工具中先封孔,再重新导入.
**Fill holes 产出了明显错误的补片 —— 比如一个把两个牙弓桥接起来的平面. ** 过滤器看到了它认为可封闭的开放路径. 按 <kbd>Ctrl</kbd>+<kbd>Z</kbd> 恢复上一版几何,或重新导入原文件;要么在扫描工具中预先合并两个壳,要么用笔刷工具先修剪一个壳的边缘,再次运行 Fill holes.
**Smooth 让解剖结构看起来变软了. ** 全局光顺虽然温和,但在密集扫描上肉眼可见. 按 <kbd>Ctrl</kbd>+<kbd>Z</kbd> 恢复上一版几何(一步撤销),或重新导入原文件;考虑改用 Local smoothing…,只松弛噪声斑.
**浏览器标签页好几秒像卡住了. ** 两个命令都运行在主线程. 等待状态行更新 —— 中途重新加载标签页会丢失未保存的工作.
状态行显示 "Fill holes failed: empty result." 或 "Smooth failed: empty result." 流水线运行了但未产生任何三角形. 通常表示输入早已损坏到过滤器无法恢复的程度. 先尝试 Fix model 清理拓扑,再在清理后的网格上用 Fill holes 或 Smooth.
相关教程: 如何用 Fix model 修复网格 · 如何用笔刷工具清理网格 · 如何在 Cympha Studio 中构建虚拟患者 · Cympha Studio 操作参考
