ModelTranslator: QR watertightness gate + quad default
根因(真机排查):QuadRemesher 引擎在激进减面下非确定性地从封闭流形 输入打出孔洞/非流形边(实测同一输入约 85% 次数破碎),即"破碎面"。 修复:QR 导回后比对输入拓扑,若比输入新增开边(孔洞)/非流形边即判破损、 弃用 QR 回退 collapse(topology_acceptable 纯策略+单测;_edge_defects 计数)。 顺带修复水密门在导入后拒绝时未恢复 obj 选中态,导致 collapse 回退时 export use_selection 选不到对象、只导出 4KB 空 FBX 的 bug。 含用户改动:--reducer 默认改为 quad(配合水密门,破碎自动回退,安全), 及其 CLI 默认值测试。 Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 4.8
parent
44060ac3cb
commit
0481f10b8c
@@ -62,3 +62,11 @@ def parse_progress(text):
|
||||
if v < 0:
|
||||
return ("error", lines[1] if len(lines) > 1 else "")
|
||||
return ("running", "")
|
||||
|
||||
|
||||
def topology_acceptable(src_boundary, src_nonmanifold,
|
||||
out_boundary, out_nonmanifold):
|
||||
"""QR 输出拓扑是否可接受:不比输入引入更多开边(孔洞)/非流形边。
|
||||
QR 引擎在激进减面下会非确定性地打出孔洞——封闭输入(0/0)时要求输出也 0/0,
|
||||
输入本身开放(壳)时按其基线放行;否则判破损,交上层回退 collapse。"""
|
||||
return out_boundary <= src_boundary and out_nonmanifold <= src_nonmanifold
|
||||
|
||||
Reference in New Issue
Block a user