diff --git a/blender_manifest_tree.toml b/blender_manifest_tree.toml index 4d13782..cdb0e8e 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.16.0" +version = "1.17.0" name = "Stylized Tree Generator" tagline = "Parametrische Baeume, Palmen, Bueschen mit Wachstums-Stufen" maintainer = "D4rkst3r" diff --git a/dist/index.json b/dist/index.json index 3eb8e33..2596408 100644 --- a/dist/index.json +++ b/dist/index.json @@ -32,7 +32,7 @@ "id": "stylized_tree_generator", "name": "Stylized Tree Generator", "tagline": "Parametrische Baeume, Palmen, Bueschen mit Wachstums-Stufen", - "version": "1.16.0", + "version": "1.17.0", "type": "add-on", "maintainer": "D4rkst3r", "license": [ @@ -48,9 +48,9 @@ "Mesh", "Modeling" ], - "archive_url": "./stylized_tree_generator-1.16.0.zip", - "archive_size": 16318, - "archive_hash": "sha256:6bf0522b41a7d78e82f6a525acbcbd8343c53c24ee7005ce2a2829773a5c1adc" + "archive_url": "./stylized_tree_generator-1.17.0.zip", + "archive_size": 16523, + "archive_hash": "sha256:49c3e777aa602ba3c63537aacd866bb5b11ac6484dbc0f91b28d26f497f98c00" } ] } \ No newline at end of file diff --git a/dist/stylized_tree_generator-1.16.0.zip b/dist/stylized_tree_generator-1.16.0.zip deleted file mode 100644 index 2f9a67c..0000000 Binary files a/dist/stylized_tree_generator-1.16.0.zip and /dev/null differ diff --git a/dist/stylized_tree_generator-1.17.0.zip b/dist/stylized_tree_generator-1.17.0.zip new file mode 100644 index 0000000..5a9b8b7 Binary files /dev/null and b/dist/stylized_tree_generator-1.17.0.zip differ diff --git a/stylized_tree_generator.py b/stylized_tree_generator.py index 8b870e7..55835b2 100644 --- a/stylized_tree_generator.py +++ b/stylized_tree_generator.py @@ -1,7 +1,7 @@ bl_info = { "name": "Stylized Tree Generator", "author": "D4rkst3r", - "version": (1, 16, 0), + "version": (1, 17, 0), "blender": (4, 2, 0), "location": "View3D > Sidebar > Tree Gen", "description": "Parametrischer Baum-/Palmen-/Busch-Generator (Geometry Nodes) mit Wachstums-Stufen", @@ -59,10 +59,14 @@ DEFAULTS = { "Tip Blunt": 0.18, # >0 verhindert Nadelspitzen (0 = spitz, 0.45 = Kaktus) "Crown Taper": 0.35, # >0 kegelfoermig, 0 saeulig, <0 besenfoermig "Crown Bulge": 0.0, # >0 = Bauch in der Mitte (runde Krone) - "Root Flare": 1.1, # Wurzelanlauf: Stamm verbreitert sich am Fuss + "Root Flare": 1.55, # Wurzelanlauf. Ziel ist das TreeIt-Verhaeltnis + # Fuss/Stamm ~2.2 (dort 0.179 zu 0.082). "Root Lobes": 6.0, # Wurzelbretter; sollte in "Sides" aufgehen, # sonst sampelt das Profil die Lappen weg - "Root Lobe Depth": 1.3, # wie weit die Lappen rausstehen + "Root Lobe Depth": 0.65, # wie weit die Lappen rausstehen. Am TreeIt-Baum + # gemessen: Unrundheit am Basisring 1.60. + # Messfalle: Ringe nicht ueber z-Bereiche mitteln, + # sonst mischt man Nachbarringe rein (ergab faelschlich 5.1). "Root Height": 1.1, # Hoehe (m) des Anlaufs; zu klein -> zu wenige # Ringe liegen drin und man sieht nichts "Detail": 0.55, # skaliert alle Resample-Counts = Tri-Budget-Regler @@ -107,7 +111,7 @@ PRESETS = { "Branch Start": 0.3, "Branch End": 0.95, "Crown Taper": -0.15, "Crown Bulge": 0.5, "Branch Bend": 0.9, "Branch Thickness": 0.24, "Sub Count": 3, - "Sub Length": 0.8, "Root Flare": 1.6, "Root Lobe Depth": 1.6, + "Sub Length": 0.8, "Root Flare": 1.5, "Root Lobe Depth": 0.4, }, "birke": { # schlank, hoher Ansatz, feine Zweige "Height": 7.5, "Trunk Radius": 0.09, "Bend": 0.7, "Taper": 0.92, @@ -818,9 +822,11 @@ def build_group(): L(fat.outputs[0], fml.inputs[0]); L(V["Root Lobes"], fml.inputs[1]) fco = N("ShaderNodeMath"); fco.location = (5350, 1000); fco.operation = 'COSINE' L(fml.outputs[0], fco.inputs[0]) - fno = N("ShaderNodeMath"); fno.location = (5500, 1000); fno.operation = 'MULTIPLY_ADD' - fno.inputs[1].default_value = 0.5; fno.inputs[2].default_value = 0.5 - L(fco.outputs[0], fno.inputs[0]) + # cos direkt verwenden (-1..1), NICHT auf 0..1 heben: sonst druecken die + # Lappen nur nach aussen und der MITTLERE Radius waechst mit der Lappentiefe + # (gemessen: 0.184 -> 0.224). Zentriert bleibt der Mittelwert konstant und + # es entstehen echte Taeler zwischen den Wurzelbrettern. + fno = fco # Betrag = RootLobeDepth * Hoehenabfall * Lappen * Stammradius fa1 = N("ShaderNodeMath"); fa1.location = (5800, 1150); fa1.operation = 'MULTIPLY'