From 82db63d1957b29c98143344ef4d85f597dc54b82 Mon Sep 17 00:00:00 2001 From: ud18010 Date: Tue, 21 Jul 2026 15:19:48 +0800 Subject: [PATCH] =?UTF-8?q?ModelTranslator:=20=E8=AE=A1=E5=88=92=20Task2?= =?UTF-8?q?=20baked=20in=20UVPM=20=E6=8E=A2=E9=92=88=E7=BB=93=E8=AE=BA?= =?UTF-8?q?=EF=BC=88heuristic=20=E4=B8=BA=E4=B8=BB=E6=9D=86,rotation=5Fste?= =?UTF-8?q?p=20=E8=B0=83=E7=BB=86=EF=BC=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-Authored-By: Claude Opus 4.8 (1M context) --- .../plans/2026-07-21-uvpm-packing-utilization.md | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/docs/superpowers/plans/2026-07-21-uvpm-packing-utilization.md b/docs/superpowers/plans/2026-07-21-uvpm-packing-utilization.md index efdb0e1a..68882b89 100644 --- a/docs/superpowers/plans/2026-07-21-uvpm-packing-utilization.md +++ b/docs/superpowers/plans/2026-07-21-uvpm-packing-utilization.md @@ -133,13 +133,15 @@ cd "d:/UD/AI/AIC#Project/Tools/ModelTranslator" && rm tests/bl_probe_uvpm.py **Files:** - Modify: `Tools/ModelTranslator/bl_decimate.py`(常量区 + `_uvpm_repack` 之前新增 `_uvpm_set` + `_uvpm_repack` 内部) +**Task 1 探针结论(已确认,用于本任务)**:`default_main_props` 上 `rotation_enable`(bool, 默认 True)、`rotation_step`(int 度, 默认 90)、`heuristic_enable`(bool, 默认 False)、`heuristic_search_time`(int 秒, 默认 0=无限) 均存在且可设;旋转默认已开、pre-rotation 默认开(`pre_rotation_disable=False`);`pack` 返回 `{'FINISHED','PASS_THROUGH'}`,现有 `if 'FINISHED' not in ret` 判定已兼容;无需改 `pack_op_type`。真正需显式开的是 **heuristic**,并把 rotation_step 调细以利薄斜条对齐。 + - [ ] **Step 1: 新增常量** -在 `bl_decimate.py` 常量区 `UVPM_TEX_SIZE = 2048` 那一行之后追加(取值以探针结论校正): +在 `bl_decimate.py` 常量区 `UVPM_TEX_SIZE = 2048` 那一行之后追加: ```python -UVPM_ROTATION_STEP = 90 # UVPM 旋转步进(度);探针确认类型/范围后校正 -UVPM_HEURISTIC_TIME = 5 # UVPM 启发式搜索秒数上限 +UVPM_ROTATION_STEP = 15 # UVPM 旋转步进(度);比默认 90 更细,利于薄斜条对齐 +UVPM_HEURISTIC_TIME = 10 # UVPM 启发式搜索秒数上限(默认 0=无限,必须给正值上限) ``` - [ ] **Step 2: 新增 `_uvpm_set` 辅助** @@ -171,8 +173,8 @@ def _uvpm_set(p, name, value, warnings): ``` 注意: -- 若 Task 1 发现时间上限属性名是 `heuristic_max_wait_time`(而非 `heuristic_search_time`),把最后一行的名字换成实测的;`hasattr` 守卫使写错的名字只被跳过、不报错,但**为让功能真正生效,必须用探针确认的正确名字**。 -- 若 Task 1 发现启发式需要非 `'0'` 的 `pack_op_type`,同时修改 `_uvpm_repack` 里 `bpy.ops.uvpackmaster4.pack(...)` 的 `pack_op_type` 实参,并在 commit 正文说明。 +- 属性名已由 Task 1 探针确认全部存在(`rotation_enable`/`rotation_step`/`heuristic_enable`/`heuristic_search_time`)——用上面这四行即可,无需改名。 +- `pack_op_type` 保持 `'0'`(探针确认启发式开启下 `'0'` 正常返回 FINISHED,无需改)。 - 这些设置在现有 `_uvpm_repack` 的 `try/except Exception` 内;`_uvpm_set` 的 `hasattr` 守卫确保单属性问题不触发整体回退。 - [ ] **Step 4: 语法自检 + 单测不回归**