Der User hat Genshin-Screenshots als Stilvorlage geschickt. Auswertung: die
Felsen dort bestehen aus WENIGEN GROSSEN, fast leeren Platten mit SCHMALEN
DUNKLEN FUGEN. Das Detail steckt in der Fuge, nicht in der Flaeche.
Meine Textur machte das Gegenteil - viele kleine Zellen mit breitem Verlauf ueber
die ganze Oberflaeche. Deshalb half weder TexScale noch die Zellgroesse: beide
haben nur am Symptom gedreht, waehrend das Muster grundsaetzlich zu dicht war.
Neue Regler:
- "Fugenbreite" (Default 0.05): Breite des Uebergangs Fuge -> Flaeche. Klein =
harte Fuge und flache Platte. War vorher fest auf 0.32 = weicher Verlauf ueber
die ganze Zelle ("Golfball").
- "Platten flach" (Default 1.0): 1 = Flaeche nahezu einfarbig, Kontrast wandert
komplett in die Fuge.
- "Zellgroesse" heisst jetzt "Plattengroesse" (Default 0.7 statt 2.5) - kleiner
= GROESSERE Platten. Der alte Name war irrefuehrend.
Grundton auf helles warmes Grau, AO-Staerke 1.0 -> 0.55 (weniger Unruhe).
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
1) KLASSEN-GROESSE (vom User gemeldet): S und M kamen gleich gross raus.
Ursache war eine Luecke im Design, nicht in der Bedienung: "keep_size"
normiert die Zufalls-Streuung auf konstantes Volumen - damit wurde alles,
was ueber scale_min/max eingestellt war, wieder herausgerechnet. Fuer die
Groesse der KLASSE gab es schlicht keinen Regler.
Neu: CLASS_SIZES (S=0.45, M=1.0, L=1.9, XL=3.2) plus "Groesse aus Klasse"
und eine freie "Basis-Groesse". Die Klassengroesse ist bewusst gesetzt und
von der Streuung getrennt; sie greift auch bei abgeschalteter Randomisierung.
Gemessen: S 0.85 m | M 1.9 m | L 3.5 m | XL 6.0 m, Volumen-Streuung
INNERHALB jeder Klasse bleibt bei 1.11x (nur Form).
2) BUG im Zufalls-Button (kam mit 2.5.0): jitter() schrieb einen float in die
int-Property subsurf_levels -> TypeError, der Operator brach komplett ab.
jitter() rundet jetzt fuer Int-Properties. Von tests/test_randomize.py
gefangen.
Neuer Test tests/test_rock_classes.py deckt die Klassengroessen ab.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Blatt-Card waehlen -> wird auf die duennen Zweige gestreut (Filter ueber das
Radius-Attribut des Meshes) und als <Name>_Leaf mit identischem Ursprung abgelegt.
Regler fuer Dichte, Groesse, Streuung, Kippung, Zweig-Schwelle. Der Button meldet
Stamm + Blatt = Summe und warnt bei Ueberschreitung des Tri-Budgets.
Gemessen: Eiche 1428 + Blattwerk 1032 = 2460 von 2500 Tris bei Default-Dichte 150.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Aeste kruemmen sich zur Spitze hin zur Senkrechten - als echte Rotation um den
Astansatz, nicht als Z-Versatz. Die Astlaenge bleibt dabei erhalten (gemessen:
+0.08 m Hoehe statt +0.93 m beim alten Droop-Hack). Pro Preset abgestimmt.
Idee aus UE 5.8 Procedural Vegetation / Weber-Penn.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
"Sub Count = 0" schaltete die Sub-Aeste nicht ab (Curve to Points klemmt auf 1) ->
duenne "Nadeln" bei Palme und Kaktus. Jetzt echter Geometry-Switch.
Palme am TreeIt-Referenzbaum ausgemessen: kurze Wedelstiele (0.78 m statt 3.4 m),
Stamm 4.4 m mit dickem Kronenschaft. 854 statt 1784 Tris.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Palmenstamm mit nahezu konstantem Durchmesser (Taper 0.22), glatt geschwollener
Fuss ohne Wurzelbretter, 15 kraeftige Wedelstiele im Bogen statt duenner
haengender Draehte. 1784 von 2500 Tris.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Rock Generator 2.5.0:
- "Zufaellig"-Button: wuerfelt Seed und Form-Parameter, "Streuung" steuert die
Abweichung von den aktuellen Werten (0 = nur neuer Seed). Optional werden auch
Basis-Form und Noise-Typ gewuerfelt. Werte werden auf ihre Grenzen geklemmt.
- Skalierung streut jetzt die FORM, nicht die Groesse: nicht-uniform ist Default,
und "Gesamtgroesse konstant halten" normiert das geometrische Mittel auf 1.
Gemessen ueber 6 Rocks: Volumen-Spanne 1.92x -> 1.11x. Wichtig, weil EcoGame
die Groesse zusaetzlich ueber ScaleMin/Max streut.
Tree Generator 1.19.0:
- "Zufaellig"-Button: neuer Seed plus Streuung auf Hoehe, Radius, Biegung,
Ast-Anzahl/-Laenge, Kronenform und Wurzelanlauf. Preset-Charakter bleibt, weil
relativ zu den aktuellen Werten gestreut wird (gemessen: Hoehe 6.65 -> 8.34 m).
- "_Leaf"- und "_Frucht"-Ebenen: leere Objekte mit IDENTISCHEM Ursprung neben dem
Baum (gemessen: Abstand 0.000000), damit die Ebenen in UE deckungsgleich sitzen.
Vier Test-Suiten liegen jetzt unter tests/ statt nur im Scratchpad.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Rock Generator 2.4.0:
- Benennung Fels_<Form>_<Klasse> statt Rock_000 (Praefix/Form/Klasse im Panel,
Klasse S/M/L/XL, optionale Durchnummerierung bei Batches)
- Bake liefert jetzt <name>_albedo und <name>_normal. AO/Cavity wird per Option
MULTIPLIKATIV ins Albedo gebacken (Staerke regelbar) - separate Roughness- und
AO-Paesse sind Default aus, weil Roughness in EcoGame eine Zahl im Master-
Material ist. Gemessen: Albedo-Mittelwert 0.549 -> 0.433 mit AO, Kontrast rauf.
- UV1 Lightmap Default AUS (EcoGame beleuchtet dynamisch)
Tree Generator 1.18.0:
- Benennung <Art>_<Variante>_S<Stufe>, z.B. Birke_01_S1..S4 (statt stage0..3);
Art-Feld und Varianten-Nummer im Panel, Art leer = Preset-Name
- UV1 Lightmap Default AUS
README: Konventionen dokumentiert.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Basisring trifft den TreeIt-Baum jetzt fast exakt (r 0.178 vs 0.179, Unrundheit
1.61 vs 1.60). Lappen zentriert moduliert, damit die Lappentiefe nicht mehr den
mittleren Radius mit anhebt.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Zweige waren 70 % so dick wie ihre Aeste (jetzt ~35 %). Eiche und Birke hatten
durch verkettete Replaces vertauschte Ast-Dicken.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Aeste waren mit 32 % des Stammradius doppelt zu dick (Referenz: 11-16 %). Das
war die Ursache der groben Astansaetze - nicht fehlende Verschweissung.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Collar-Abfall von Exponent 6 auf 2.5 (bei ~7 Segmenten pro Ast war 6 nur einen
Punkt breit = Widerhaken statt Uebergang). Trunk Radius 0.13 -> 0.085.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Beide Arme laufen flach raus, knicken und steigen parallel zum Stamm, ohne ihn
zu ueberragen (Droop und Hoehe aufeinander abgestimmt). Neu 'Trunk Tip': steuert,
ob der Stamm duenn auslaeuft oder mit stumpfer Kuppe endet.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Crown Taper / Crown Bulge steuern die botanische Huellkurve (kegelfoermig bis
rund) - damit sind Tanne, Eiche, Birke, Weide und toter Baum als Presets
moeglich. Alle neun Presets liegen im Tri-Budget des Projekts.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Stamm rund (8 Seiten), Aeste 4, Zweige 3 - wie im TreeIt-Referenzbaum. Runderer
Stamm bei gleichzeitig ~25% weniger Tris (baum 1368 -> 1032).
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
- 'Detail' skaliert alle Resample-Counts -> zentrale Budget-Stellschraube
- Defaults treffen jetzt das Projekt-Budget (baum 1368, busch 532 Tris)
- 'Root Flare': Wurzelanlauf am Stammfuss, kostet keine Tris
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
- 'Branch Collar': Aeste werden an der Basis leicht breiter -> gewachsener
Uebergang zum Stamm, ohne einen einzigen zusaetzlichen Vert
- Stammspitze laeuft duenn aus statt mit flachem Deckel zu enden
- 'Merge'/'Merge Voxel' (Voxel-Remesh) optional, Default AUS: verschmilzt Aeste
organisch, kostet aber die UVs und bis zu 14x Verts (gemessen), duenne Zweige
zerfallen -> fuer Game-Assets nicht empfohlen
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Aeste/Zweige werden per Instanz-Scale an den Radius ihres Elternpunktes gekoppelt
('Input Radius' auf der Punkt-Domain von Instance on Points). Oben am duennen
Stamm sind die Aeste dadurch automatisch kuerzer und duenner statt gleich dick.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Sub-Aeste hatten gar keine Biegung -> gerade Staebe. Jetzt nutzen Stamm, Aeste
und Zweige dieselbe Noise-Kruemmung (nach Realize ueber die Weltposition, damit
jeder Zweig anders faellt). Zweige ausserdem duenn + fast gleichmaessig statt
dick-kegelig (das war die eigentliche Dorn-Ursache).
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Mindestdicke (Tip Blunt) wirkt jetzt auf Verjuengung*Kuppel statt nur auf die
Kuppel. Duennster Querschnitt 0.8 mm -> 7.5 mm (gemessen).
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
- UVMap aus Geometry Nodes (V = Bogenlaenge, U = Umfang*Radius) -> Rinde ueberall
gleich dicht, Regler 'UV Scale'
- 'UV1 Lightmap-UV' beim Modifier-Apply (Parity zum Rock-Generator; aktiver Kanal
wird gesetzt, damit lightmap_pack UV0 nicht ueberschreibt)
- Sub-Aeste enden nicht mehr als Nadeln
- Test prueft jetzt beide UV-Kanaele + world-space-Skalierung
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Die Zell-Look-Aenderung am Textur-Bake (Voronoi statt fBm, Grundfarbe/Zellgroesse
regelbar) war im vorigen Commit ohne Versions-Bump mitgelaufen -> Blender haette
kein Update angeboten. Version nachgezogen, Listing enthaelt jetzt
Rock 2.3.0 + Tree 1.0.0.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Ein Extension-Repo kann mehrere Addons ausliefern (server-generate listet jedes
Zip in dist/) -> die bereits eingetragene Blender-URL liefert jetzt Rock UND Tree,
ein 'Check for Updates' aktualisiert beide.
- stylized_tree_generator.py: Panel 'Tree Gen', Presets baum/palme/busch/kaktus,
Wachstums-Stufen (gleicher Seed = dieselbe Baum-Identitaet), Modifier-Apply
- Node-Kern 1:1 aus EcoGame tools/blender_tree_gen.py generiert (keine Abweichung)
- build.ps1 baut jetzt beide Extensions
- Headless getestet: alle 4 Presets, Stufen aufsteigend (504/744/1236/1872), Apply ok
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
- Bake BaseColor/Normal/Roughness/AO als PNG
- Nahtlos tileable via 4D-Torus-Projektion der UV (cos/sin u,v)
- Cycles-Bake mit Zustands-Restore, temporaere Bake-Plane + Cleanup
- docs/UE_Material_Triplanar.md: WorldAlignedTexture/Normal-Verdrahtung
- _deselect_all gegen transiente None-Refs nach Objekt-Removal gehaertet
- Live gegen Blender 5.1.2 getestet (4 Maps, Normal jetzt mit Struktur), Headless gruen
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
- Fix: smart_project/dissolve_limited angle_limit jetzt in Radiant (Blender 4.x/5.x)
- Fix: Lightmap-UV-Kanal vor lightmap_pack aktiv setzen (UV0 nicht mehr ueberschrieben)
- Fehlerbehandlung pro bpy.ops-Call; einzelner Rock-Fehler bricht Batch nicht ab
- Modaler Batch-Modus mit Progress-Bar (ab modal_threshold)
- Bevel + Weighted Normal Toggle
- LOD-Set als fbx_type=LodGroup-Gruppe fuer Unreal
- Preset-System (JSON) + eingebaute Presets
- Platzhalter-Material-Zuweisung
- Headless-Testskript (tests/test_rock_gen.py)
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>