From fa7067d42e2b7517af17585f8a718c4331fc5130 Mon Sep 17 00:00:00 2001 From: D4rkst3r Date: Thu, 6 Aug 2026 11:08:24 +0200 Subject: [PATCH] Tree Gen 1.35.0: Node-Gruppen-Waechter + Mindestradius fuer Saemlinge 1) build_group riss Szenen-Baeume ab Die Gruppe GN_Tree wurde bei JEDEM Erzeugen geloescht und neu angelegt - damit zeigten alle bereits erzeugten Baeume auf ein totes Datablock und evaluierten leer. Gemessen: nach vier Arten-Erzeugungen lebte nur noch die letzte. Dass direkt nach dem Erzeugen exportiert wurde, hat das verdeckt. Jetzt ein Waechter mit ZWEI Kriterien: abgelegte Schema-Version (TREE_SCHEMA) UND die tatsaechlich vorhandenen Eingaenge. Die Version allein reicht nicht - wer waehrend der Entwicklung Sockets aendert ohne die Zahl anzufassen, bekaeme eine veraltete Gruppe untergeschoben. Muss doch neu gebaut werden, werden bestehende Modifier auf die neue Gruppe umgehaengt. Beide Pfade gemessen: vier Arten nacheinander leben alle (624/796/924/1036 Verts), und nach build_group(rebuild=True) ebenfalls unveraendert. 2) Saemlinge zu duenn Die McMahon-Skalierung macht duennstaemmige Arten am Setzling zu Draehten: Birke 0.6 cm Fussradius gegen 1.9 der Eiche - dreimal duenner, waehrend der Unterschied beim Altbaum nur 1.2x betraegt. Die Regel gilt fuer die Statik ausgewachsener Baeume; ein Saemling ist eine Pflanze, kein Balken. SEEDLING_MIN_RADIUS + SEEDLING_MIN_FLARE heben die duennen Arten an, ohne die dicken anzufassen. Danach liegen alle bei 2.8 cm. test_proportionen laesst die McMahon-Abweichung genau dort zu, wo der Boden greift, und prueft dass sie nicht weiter geht - die Regel bleibt sonst scharf. 23 Tests bestehen. Co-Authored-By: Claude Opus 4.8 --- README.md | 30 +++++++++ blender_manifest_tree.toml | 2 +- dist/index.html | 6 +- dist/index.json | 8 +-- dist/stylized_tree_generator-1.34.0.zip | Bin 40964 -> 0 bytes dist/stylized_tree_generator-1.35.0.zip | Bin 0 -> 42185 bytes stylized_tree_generator.py | 78 ++++++++++++++++++++++-- tests/test_proportionen.py | 19 +++++- 8 files changed, 127 insertions(+), 16 deletions(-) delete mode 100644 dist/stylized_tree_generator-1.34.0.zip create mode 100644 dist/stylized_tree_generator-1.35.0.zip diff --git a/README.md b/README.md index b098139..c4e1a5c 100644 --- a/README.md +++ b/README.md @@ -563,6 +563,36 @@ Der Kaktus erzeugt regulaer **0 Cards** — kein Ast ist duenner als `Max Radius und das ist botanisch richtig. Vorher lief das still durch und man stand vor einer leeren `_Leaf`-Ebene; jetzt sagt der Operator es und nennt den Regler. +### Die Node-Gruppe wird WIEDERVERWENDET, nicht neu gebaut + +`build_group()` loeschte die Gruppe `GN_Tree` bei jedem Erzeugen und legte sie +neu an — damit riss sie sie **allen bereits erzeugten Baeumen** unter dem +Modifier weg. Gemessen: nach vier Arten-Erzeugungen lebte nur noch die letzte, +alle frueheren evaluierten leer. Dass in der Praxis direkt nach dem Erzeugen +exportiert wurde, hat das lange verdeckt. + +Jetzt prueft ein Waechter zwei Dinge, bevor er ueberhaupt neu baut: die +abgelegte **Schema-Version** (`TREE_SCHEMA`) *und* die tatsaechlich vorhandenen +Eingaenge. Die Version allein reichte nicht — wer waehrend der Entwicklung +Sockets aendert, ohne die Zahl anzufassen, bekaeme sonst eine veraltete Gruppe +untergeschoben. Muss doch neu gebaut werden, werden **bestehende Modifier auf +die neue Gruppe umgehaengt**. Beide Pfade sind gemessen: vier Arten +nacheinander leben alle, und nach einem erzwungenen `build_group(rebuild=True)` +ebenfalls. + +### Saemlinge: Mindestradius sticht McMahon + +Die Skalierung nach McMahon (Durchmesser ~ Hoehe^1.5) macht duennstaemmige +Arten am Setzling zu Draehten: gemessen kam die Birke auf **0.6 cm** Fussradius +gegen **1.9 cm** der Eiche — dreimal duenner, waehrend der Unterschied beim +Altbaum nur 1.2x betraegt. Die Regel gilt fuer die Statik ausgewachsener Baeume; +ein Saemling ist eine Pflanze, kein Balken. + +`SEEDLING_MIN_RADIUS` und `SEEDLING_MIN_FLARE` heben die duennen Arten an, ohne +die dicken (Tanne, Palme, Kaktus) anzufassen. Danach liegen alle bei **2.8 cm**. +`tests/test_proportionen.py` laesst die McMahon-Abweichung genau dort zu, wo der +Boden greift — und prueft, dass sie nicht weiter geht. + ### Faell-Teile (Punkt 4) Kein Laufzeit-Zerlegen: beim Faellen tauscht das Spiel die ISM-Instanz gegen diff --git a/blender_manifest_tree.toml b/blender_manifest_tree.toml index 5ea4525..7a60f24 100644 --- a/blender_manifest_tree.toml +++ b/blender_manifest_tree.toml @@ -1,7 +1,7 @@ schema_version = "1.0.0" id = "stylized_tree_generator" -version = "1.34.0" +version = "1.35.0" name = "Stylized Tree Generator" tagline = "Parametrische Baeume, Palmen, Bueschen mit Wachstums-Stufen" maintainer = "D4rkst3r" diff --git a/dist/index.html b/dist/index.html index b7b91ca..8adcbf2 100644 --- a/dist/index.html +++ b/dist/index.html @@ -50,17 +50,17 @@ 34.1KB - stylized_tree_generator-1.34.0 + stylized_tree_generator-1.35.0 Stylized Tree Generator Parametrische Baeume, Palmen, Bueschen mit Wachstums-Stufen link 4.2.0 - ~ all all - 40.0KB + 41.2KB -

Built 2026-08-06, 08:32

+

Built 2026-08-06, 09:08

diff --git a/dist/index.json b/dist/index.json index 4fcc035..3ccfb09 100644 --- a/dist/index.json +++ b/dist/index.json @@ -82,7 +82,7 @@ "id": "stylized_tree_generator", "name": "Stylized Tree Generator", "tagline": "Parametrische Baeume, Palmen, Bueschen mit Wachstums-Stufen", - "version": "1.34.0", + "version": "1.35.0", "type": "add-on", "maintainer": "D4rkst3r", "license": [ @@ -98,9 +98,9 @@ "Mesh", "Modeling" ], - "archive_url": "./stylized_tree_generator-1.34.0.zip", - "archive_size": 40964, - "archive_hash": "sha256:1cb548b5fef9bb79342ef92f7bc40f7ecb66e21f6356c8e00623ada5c842b0d6" + "archive_url": "./stylized_tree_generator-1.35.0.zip", + "archive_size": 42185, + "archive_hash": "sha256:db4de9904c876c1336879fe4de7a183f1a1f2c7dc52c55e8278e0bf7e43bd323" } ] } \ No newline at end of file diff --git a/dist/stylized_tree_generator-1.34.0.zip b/dist/stylized_tree_generator-1.34.0.zip deleted file mode 100644 index 2928779e6e7acc56113d287a93f5cb5cc71a64e1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 40964 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 Ip8x;=0Q9L6yZ`_I diff --git a/dist/stylized_tree_generator-1.35.0.zip b/dist/stylized_tree_generator-1.35.0.zip new file mode 100644 index 0000000000000000000000000000000000000000..d750edb87f4072c4f8c3e4e3da523a8513bd4763 GIT binary patch literal 42185 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 hZfSI1UoLQYP)h{{000000ssO4d;kCdH>3an001 Sidebar > Tree Gen", "description": "Parametrischer Baum-/Palmen-/Busch-Generator (Geometry Nodes) mit Wachstums-Stufen", @@ -222,11 +222,53 @@ def _out(node, *names): return node.outputs[0] -def build_group(): - old = bpy.data.node_groups.get(GROUP_NAME) - if old: - bpy.data.node_groups.remove(old) +# Schema-Version der Baum-Gruppe. HOCHZAEHLEN, sobald sich Sockets aendern - +# daran erkennt build_group, ob eine vorhandene Gruppe noch passt. +TREE_SCHEMA = 3 + + +def _gruppe_passt(ng): + """Ist eine vorhandene GN_Tree-Gruppe noch die aktuelle? + + Zwei Kriterien: die abgelegte Schema-Version UND die tatsaechlich + vorhandenen Eingaenge. Die Version allein reichte nicht - wer waehrend der + Entwicklung Sockets aendert, ohne die Zahl anzufassen, bekaeme eine + veraltete Gruppe untergeschoben. + """ + if ng.get("schema") != TREE_SCHEMA: + return False + vorhanden = {so.name for so in ng.interface.items_tree + if getattr(so, "in_out", "") == 'INPUT'} + return set(DEFAULTS).issubset(vorhanden) + + +def build_group(rebuild=False): + """Baut die Baum-Node-Gruppe - aber nur, wenn noetig. + + FALLE, die das hier noetig macht: die Gruppe bedingungslos zu loeschen und + neu anzulegen reisst sie ALLEN bereits erzeugten Baeumen unter dem Modifier + weg. Gemessen: nach vier Arten-Erzeugungen lebte nur noch die letzte, alle + frueheren evaluierten leer. Dass der Export direkt nach dem Erzeugen lief, + hat das lange verdeckt. + + Wenn doch neu gebaut werden muss (Schema-Aenderung), werden bestehende + Modifier auf die neue Gruppe umgehaengt - sonst zeigen sie auf ein totes + Datablock. + """ + alt = bpy.data.node_groups.get(GROUP_NAME) + if alt is not None and not rebuild and _gruppe_passt(alt): + return alt + + nutzer = [] + if alt is not None: + for ob in bpy.data.objects: + for md in ob.modifiers: + if getattr(md, "node_group", None) is alt: + nutzer.append(md) + bpy.data.node_groups.remove(alt) + ng = bpy.data.node_groups.new(GROUP_NAME, "GeometryNodeTree") + ng["schema"] = TREE_SCHEMA N, L = ng.nodes.new, ng.links.new iface = ng.interface @@ -1042,6 +1084,15 @@ def build_group(): shade = N("GeometryNodeSetShadeSmooth"); shade.location = (2200, 200) L(_out(pick, "Output"), _sock(shade, "Geometry")) L(_out(shade, "Geometry"), gout.inputs[0]) + + # Bestehende Modifier auf die NEUE Gruppe umhaengen. Ohne das zeigen sie + # nach einem Rebuild auf ein geloeschtes Datablock und der Baum evaluiert + # leer - der Fehler, der ueberhaupt zu diesem Waechter gefuehrt hat. + for md in nutzer: + try: + md.node_group = ng + except (ReferenceError, AttributeError): + pass return ng @@ -1050,6 +1101,17 @@ def build_group(): # ein Wachstums-System, damit Stufe 1 und Stufe 4 wie DERSELBE Baum wirken. GROWTH_HEIGHT = 0.16 # Setzling ist 16 % der Endhoehe +# Mindest-Stammradius und Mindest-Wurzelanlauf fuer den Saemling. +# +# Die McMahon-Skalierung (Durchmesser ~ Hoehe^1.5) macht duennstaemmige Arten am +# Setzling zu Draehten: gemessen kam die Birke auf 0.6 cm Fussradius gegen 1.9 +# der Eiche - dreimal duenner, waehrend der Unterschied beim Altbaum nur 1.2x +# betraegt. Die Regel gilt fuer die STATIK ausgewachsener Baeume; ein Saemling +# ist eine Pflanze, kein Balken. Der Boden hebt die duennen Arten an, ohne die +# dicken (Tanne, Palme, Kaktus) anzufassen. +SEEDLING_MIN_RADIUS = 0.018 # m, Stammradius am Fuss vor dem Wurzelanlauf +SEEDLING_MIN_FLARE = 0.55 # Wurzelanlauf-Faktor, sonst steht der Stiel stumpf + GROWTH_YOUNG = { "Height": GROWTH_HEIGHT, # Faktoren (werden mit dem Zielwert multipliziert) @@ -1128,6 +1190,12 @@ def growth_values(preset, t): target = full[key] young = target * young_factor v = young + (target - young) * t + # Boden fuer die Saemlings-Stufen anwenden, bevor gerundet wird. + if key == "Trunk Radius": + v = max(v, min(target, SEEDLING_MIN_RADIUS)) + elif key == "Root Flare": + v = max(v, min(target, SEEDLING_MIN_FLARE)) + if isinstance(target, int): # Ein Faktor von genau 0.0 heisst "gibt es beim Setzling noch gar # nicht" und darf auf 0 fallen. Alles andere bekommt mindestens 1, diff --git a/tests/test_proportionen.py b/tests/test_proportionen.py index 38b0c36..719c6c1 100644 --- a/tests/test_proportionen.py +++ b/tests/test_proportionen.py @@ -12,6 +12,9 @@ belegt - deshalb lohnt es sich, sie festzunageln: * Setzling-Schlankheit: elastische Aehnlichkeit nach McMahon, Hoehe ~ Durchmesser^(2/3). Der Setzling darf relativ zu seiner Hoehe nicht dicker sein als der Altbaum. Vorher war er es um den Faktor 2.4. + AUSNAHME: wo der Mindest-Stammradius greift, ist die Abweichung gewollt - + McMahon gilt fuer die Statik ausgewachsener Baeume, ein Saemling ist eine + Pflanze und kein Balken. * Palme und Kaktus sind davon ausgenommen: Palmen haben kein Dickenwachstum ("its diameter is fixed for life", UF/IFAS ENH1212), Kakteen sind Sukkulenten. Beide bauen zuerst den Durchmesser auf - deren Setzling ist absichtlich @@ -107,10 +110,20 @@ for p in tg.PRESETS: continue schlank_alt = r_alt / h_alt schlank_neu = r_neu / h_neu - if schlank_neu > schlank_alt * 1.5: + # AUSNAHME: der Mindest-Stammradius fuer Saemlinge sticht McMahon. Die Regel + # gilt fuer die Statik ausgewachsener Baeume; duennstaemmige Arten wurden am + # Setzling sonst zu Draehten (Birke 0.6 cm Fussradius gegen 1.9 der Eiche, + # dreimal duenner, waehrend der Unterschied beim Altbaum nur 1.2x betraegt). + # Wo der Boden greift, ist die Abweichung gewollt - geprueft wird dann nur, + # dass sie NICHT weiter geht als der Boden hergibt. + am_boden = r_neu <= tg.SEEDLING_MIN_RADIUS * 1.05 + grenze = 2.5 if am_boden else 1.5 + if schlank_neu > schlank_alt * grenze: fails.append("%s: Setzling ist relativ %.1fx dicker als der Altbaum " - "(r/H %.4f gegen %.4f) - McMahon verlangt schlanker" - % (p, schlank_neu / schlank_alt, schlank_neu, schlank_alt)) + "(r/H %.4f gegen %.4f)%s" + % (p, schlank_neu / schlank_alt, schlank_neu, schlank_alt, + " - mehr als der Mindestradius hergibt" if am_boden + else " - McMahon verlangt schlanker")) # --- 5) Kein Setzling haengt nennenswert unter den Wurzelansatz ----------- # Wedel und Aeste, die unter den Ursprung reichen, lassen das Asset in UE