ModelTranslator: QR use ExactQuadCount, authoritative QR_ENGINE override

真机验证发现 ExactQuadCount=0 自适应在高细节硬表面模型上面数暴涨
(well1500 目标2500->11500 quads)并连带 seam 展开重叠爆炸;改用 exact=True
尊重目标数后 well1500 得 5940 面/591 UV岛(优于 collapse 745)。
find_qr_engine 改为权威覆盖:QR_ENGINE 无效即 None,不再静默自动发现,
使强制回退可测、覆盖契约成立。

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
ud18010
2026-07-22 17:26:49 +08:00
co-authored by Claude Opus 4.8
parent 11036877fc
commit b8eb40f3e4
3 changed files with 19 additions and 4 deletions
+4 -1
View File
@@ -144,7 +144,10 @@ def _remesh_quad(obj, target_tris, warnings):
bpy.ops.export_scene.fbx(filepath=in_fbx, use_selection=True)
target_quads = qr_bridge.tris_to_target_quads(target_tris)
with open(settings, "w") as fp:
fp.write(qr_bridge.build_settings(in_fbx, out_fbx, prog, target_quads))
# exact=True:尊重目标四边形数。自适应(exact=False)在高细节硬表面模型上会
# 把面数炸开数倍(实测 well1500 目标 2500→11500 quads),并连带 seam 展开重叠爆炸。
fp.write(qr_bridge.build_settings(in_fbx, out_fbx, prog, target_quads,
exact=True))
proc = subprocess.Popen([engine, "-s", settings])
except Exception as e:
warnings.append("QR 启动失败(%s),回退 collapse" % e)