ModelTranslator: model_decimate 新增 --max-overlap 参数(校验+透传)
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 4.8
parent
7499358def
commit
3609ea4334
@@ -14,10 +14,14 @@ def main():
|
|||||||
ap.add_argument("-o", "--out", default=None, help="输出目录(默认源文件同目录)")
|
ap.add_argument("-o", "--out", default=None, help="输出目录(默认源文件同目录)")
|
||||||
ap.add_argument("--unwrap", choices=("seam", "smart"), default="seam",
|
ap.add_argument("--unwrap", choices=("seam", "smart"), default="seam",
|
||||||
help="UV 展开:seam=锐边接缝整岛展开(默认),smart=Smart UV Project")
|
help="UV 展开:seam=锐边接缝整岛展开(默认),smart=Smart UV Project")
|
||||||
|
ap.add_argument("--max-overlap", type=float, default=None,
|
||||||
|
help="UV 重叠容忍上限(0-1,默认内置 0.08);调高可让更高 seam 角度过门、减少碎岛")
|
||||||
ap.add_argument("--blender", default=None)
|
ap.add_argument("--blender", default=None)
|
||||||
args = ap.parse_args()
|
args = ap.parse_args()
|
||||||
if args.tris <= 0:
|
if args.tris <= 0:
|
||||||
ap.error("--tris 必须为正整数")
|
ap.error("--tris 必须为正整数")
|
||||||
|
if args.max_overlap is not None and not (0.0 < args.max_overlap <= 1.0):
|
||||||
|
ap.error("--max-overlap 必须在 (0, 1] 内")
|
||||||
|
|
||||||
blender = find_blender(args.blender)
|
blender = find_blender(args.blender)
|
||||||
name = os.path.splitext(os.path.basename(args.input))[0]
|
name = os.path.splitext(os.path.basename(args.input))[0]
|
||||||
@@ -25,7 +29,8 @@ def main():
|
|||||||
out_fbx = os.path.join(outdir, name + "_low.fbx")
|
out_fbx = os.path.join(outdir, name + "_low.fbx")
|
||||||
|
|
||||||
s = run_blender_script(blender, "bl_decimate.py",
|
s = run_blender_script(blender, "bl_decimate.py",
|
||||||
[args.input, out_fbx, str(args.tris), args.unwrap])
|
[args.input, out_fbx, str(args.tris), args.unwrap,
|
||||||
|
"" if args.max_overlap is None else str(args.max_overlap)])
|
||||||
|
|
||||||
print("== %s: %d -> %d 面(目标 %d)-> %s" %
|
print("== %s: %d -> %d 面(目标 %d)-> %s" %
|
||||||
(s["src"], s["tris_before"], s["tris_after"], s["target"], out_fbx))
|
(s["src"], s["tris_before"], s["tris_after"], s["target"], out_fbx))
|
||||||
|
|||||||
Reference in New Issue
Block a user