From 75d92445255b6420bbb82f604332ee8b3e698604 Mon Sep 17 00:00:00 2001 From: ud18010 Date: Thu, 16 Jul 2026 15:16:04 +0800 Subject: [PATCH] =?UTF-8?q?ModelTranslator:=20=E7=83=98=E7=84=99=E5=89=8D?= =?UTF-8?q?=E5=BA=94=E7=94=A8=E7=89=A9=E4=BD=93=E5=8F=98=E6=8D=A2=E2=80=94?= =?UTF-8?q?=E2=80=94=E4=BF=AE=E6=9C=AA=E5=BA=94=E7=94=A8=E7=BC=A9=E6=94=BE?= =?UTF-8?q?(cm=E5=8D=95=E4=BD=8DFBX)=E8=87=B4=E5=B0=84=E7=BA=BF=E8=B7=9D?= =?UTF-8?q?=E7=A6=BB=E5=A4=B1=E6=95=88=E7=9A=84=E8=84=8F=E8=89=B2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit well_uv.fbx(scale=0.01) 烘焙 22-33% 像素脏色,应用变换后与 well5k 像素级一致(<0.04%) Co-Authored-By: Claude Opus 4.8 --- Tools/ModelTranslator/README.md | 2 +- Tools/ModelTranslator/bl_bake.py | 9 ++++++++- 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/Tools/ModelTranslator/README.md b/Tools/ModelTranslator/README.md index e6d9f343..ad8bfb3e 100644 --- a/Tools/ModelTranslator/README.md +++ b/Tools/ModelTranslator/README.md @@ -46,7 +46,7 @@ python model_translator.py out_bake/well1500/well1500.fbx # -> out/well1500/ ``` - **model_decimate.py**:多 mesh 自动 join;三角化后 Decimate(collapse) 减到 `--tris`(±3%,最多 2 轮修正);旧 UV 全删后重展——默认锐边标 seam + MINIMUM_STRETCH 整岛展开(碎岛少、接缝落在硬边),质量不达标(翻转 >2% 或重叠 >8%)自动回退 Smart UV Project,`--unwrap smart` 可强制旧行为;输出 `<名>_low.fbx`(`-o` 改目录),日志报 UV 岛数/利用率 -- **model_bake.py**:Cycles selected-to-active 烘焙。normal(切线空间 OpenGL +Y)/ao 直接烘;color/metallic/roughness 把高模 Principled 对应输入接 Emission 烘 EMIT。`--size` 默认 2048,`--samples` AO 采样默认 64,射线距离默认低模包围盒对角线 2%(`--ray-distance` 覆盖);低模无 UV 会报错,高低模包围盒差超 10% 打警告 +- **model_bake.py**:Cycles selected-to-active 烘焙。normal(切线空间 OpenGL +Y)/ao 直接烘;color/metallic/roughness 把高模 Principled 对应输入接 Emission 烘 EMIT。`--size` 默认 2048,`--samples` AO 采样默认 64,射线距离默认低模包围盒对角线 2%(`--ray-distance` 覆盖);低模无 UV 会报错,高低模包围盒差超 10% 打警告;导入后自动应用物体变换——未应用缩放的 FBX(如 cm 单位导出的 scale=0.01)会把射线距离缩到近零导致大面积烘空(脏色) - 输出命名 `<名>_color/normal/metallic/roughness/ao.png`,正好命中转换器的纯网格贴图命名约定 ## 转换规则 diff --git a/Tools/ModelTranslator/bl_bake.py b/Tools/ModelTranslator/bl_bake.py index 4d3ff185..abdc19b2 100644 --- a/Tools/ModelTranslator/bl_bake.py +++ b/Tools/ModelTranslator/bl_bake.py @@ -57,7 +57,14 @@ def _import_fbx_joined(path, warnings): % (os.path.basename(path), ", ".join(skipped))) if not meshes: return None - return join_meshes(meshes) + obj = join_meshes(meshes) + # 应用物体变换(世界坐标不变):cage_extrusion/max_ray_distance 按低模局部空间解释, + # 未应用的缩放(如 cm 单位 FBX 的 scale=0.01)会把射线距离缩到近零导致大面积打空(脏色) + bpy.ops.object.select_all(action='DESELECT') + obj.select_set(True) + bpy.context.view_layer.objects.active = obj + bpy.ops.object.transform_apply(location=True, rotation=True, scale=True) + return obj def _setup_bake_target(low, stem):