ModelTranslator: FBX 减面工具 model_decimate(Decimate collapse + Smart UV 重展)

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
ud18010
2026-07-16 10:39:16 +08:00
co-authored by Claude Opus 4.8
parent 8ede09f859
commit 65b4c3fe8e
2 changed files with 126 additions and 0 deletions
+30
View File
@@ -0,0 +1,30 @@
"""FBX 减面 CLI:减到指定三角面数并 Smart UV 重展,输出 <名>_low.fbx。
用法:python model_decimate.py src/well1500.fbx --tris 5000 [-o dir] [--blender exe]"""
import argparse
import os
from mt_run import find_blender, run_blender_script
def main():
ap = argparse.ArgumentParser(description=__doc__)
ap.add_argument("input", help="FBX 文件")
ap.add_argument("--tris", type=int, required=True, help="目标三角面数")
ap.add_argument("-o", "--out", default=None, help="输出目录(默认源文件同目录)")
ap.add_argument("--blender", default=None)
args = ap.parse_args()
blender = find_blender(args.blender)
name = os.path.splitext(os.path.basename(args.input))[0]
outdir = args.out or os.path.dirname(os.path.abspath(args.input))
out_fbx = os.path.join(outdir, name + "_low.fbx")
s = run_blender_script(blender, "bl_decimate.py",
[args.input, out_fbx, str(args.tris)])
print("== %s: %d -> %d 面(目标 %d-> %s" %
(s["src"], s["tris_before"], s["tris_after"], s["target"], out_fbx))
for w in s["warnings"]:
print(" [警告] %s" % w)
if __name__ == "__main__":
main()