From 243f0c8ced7a7983c6dbd825b8d7713489f7944f Mon Sep 17 00:00:00 2001 From: que01 Date: Thu, 30 Jul 2026 09:17:07 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20load=5Ftree=5Fvariants()=20=E7=BC=BA?= =?UTF-8?q?=E5=B0=91=20return=20variants=20=E8=AF=AD=E5=8F=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 函数在构建 variants 列表后删除了 imported objects 但忘记 return。 Python 隐式返回 None,导致 tree.assemble() 永远进入 'not variants' 分支(但 assemble 里也没有检查 None,只是 silently return 0)。 结果:tree 构建静默失败,场景里一棵树都没有。 181 棵树现在正确出现在 SCENE_DONE 和 GLB 里 (362 objects, 113k tris)。 Co-Authored-By: Claude Opus 4.8 (1M context) --- blender/osmassets/tree.py | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/blender/osmassets/tree.py b/blender/osmassets/tree.py index dd8440b..bd80b1b 100644 --- a/blender/osmassets/tree.py +++ b/blender/osmassets/tree.py @@ -95,6 +95,13 @@ def load_tree_variants(): for obj in imported: bpy.data.objects.remove(obj, do_unlink=True) + tris = sum(len(bm.loop_triangles) + len(lm.loop_triangles) + for bm, lm in variants) + print(f"Poly Haven tree variants loaded: {len(variants)} " + f"({tris} tris per instance)") + return variants + + def assemble(positions, collection): """Place island_tree_01 instances at `positions`.