Tree Gen 1.32.0: Deckung pro Stufe, mitwachsender Radius-Filter, LOD als Teilset

Drei Befunde aus der Turnhalle abgearbeitet.

1) Deckung PRO STUFE statt globaler Formel
   Die alte Rechnung (Dichte durch faktor^2) hielt den Setzling vor der
   Kahlheit, gab ihm aber die Deckung eines Altbaums. Jetzt Tabelle
   LEAF_STUFEN. S4 traegt die volle Dichte 170, S2 liegt 15 % darunter, S1
   deutlich. Der Dichte-Anteil bei S1/S2 sieht hoch aus - "Dichte" ist Punkte
   pro m2 ZWEIGFLAECHE, und die waechst ueber die Stufen dramatisch. Was zaehlt
   ist die Anzahl: 17 / 43 / 67 / 130 Cards, Kante 0.19 / 0.29 / 0.37 / 0.45.
   Budget S3/S4 auf 4300 (die Spielseite hebt ASSETS.md nach dem 170er-Export
   entsprechend an).

2) Radius-Filter skaliert mit dem Wachstum (der S3-Befund)
   Der Filter trennt duenne Zweige von dickem Geaest - aber mit starren 0.04 m
   greift er bei jungen Baeumen nicht: gemessen sassen bei S2 81 % der Cards am
   Stamm, bei S3 58 %. Jetzt 48 bzw. 52 %.

   Dabei eine eigene Fehldeutung korrigiert: bei S1 bleiben ~88 % am Stamm, und
   das ist KEIN Defekt. Nachgemessen ist die zulaessige Flaeche dort fuer jeden
   Schwellwert identisch (0.013 m2) - der Saemling hat kein dickes Geaest, an
   dem sich etwas trennen liesse. Blaetter am Stiel sind bei einem Saemling der
   Normalfall. Ein erster Sweep hatte mich in die Irre gefuehrt, weil ich
   growth_t=0 auf einen AUSGEWACHSENEN Baum gesetzt hatte - der hat die volle
   Zweigflaeche und verhaelt sich voellig anders als ein echter Setzling.

3) LOD-Reduktion als TEILSET der LOD0-Cards
   Bisher wurde je Stufe neu gestreut - die Cards sassen an anderen Stellen und
   die Silhouette sprang beim LOD-Wechsel um. Jetzt wird ausgeduennt: jede
   verbleibende Card liegt genau dort, wo sie in LOD0 schon war, die
   Ueberlebenden werden groesser. Gearbeitet wird auf zusammenhaengenden
   INSELN, nicht auf Faces - eine Card muss ganz bleiben oder ganz verschwinden.
   Auswahl ist seed-stabil.

   Gemessen am reimportierten FBX: 260 / 156 / 78 / 32 Blatt-Faces, und 100 %
   der Cards auf LOD1-3 sitzen auf einer LOD0-Position. Der Versatz zu LOD0 ist
   dabei kleiner geworden als beim Neustreuen.

23 Tests bestehen.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
2026-08-06 09:44:52 +02:00
co-authored by Claude Opus 4.8
parent 2c339b5d0c
commit d170e4067f
9 changed files with 285 additions and 60 deletions
+35 -5
View File
@@ -395,7 +395,7 @@ gemessen und abgenommen:
| | vorher | jetzt | Wirkung |
|---|---|---|---|
| Groesse | 0.22 | **0.85** | Bueschel statt Bonsai |
| Dichte | 500 | **150** | wenige grosse statt viele Fussel |
| Dichte | 500 | **170** | wenige grosse statt viele Fussel |
| **Max Radius** | 0.02 | **0.04** | der Volumen-Hebel |
| Kippung | 0.5 | **0.9** | Rotations-Chaos schliesst Sichtluecken |
@@ -403,6 +403,29 @@ gemessen und abgenommen:
Zweigspitzen Laub, die Krone hatte nur Kontur und war innen nackt. Bei 0.04
wachsen Bueschel auch am mittleren Geaest und die Krone bekommt Tiefe.
**Deckung pro Stufe, nicht per Formel.** Card-Anteil und Groesse stehen als
Tabelle (`LEAF_STUFEN`). Der Dichte-Anteil bei S1/S2 sieht hoch aus — das
taeuscht: „Dichte" ist Punkte pro m² *Zweigflaeche*, und die waechst ueber die
Stufen dramatisch. Gemessen hat der S1-Setzling **0.013 m²** zulaessige Flaeche;
ohne Anhebung bekaeme er null Cards. Was zaehlt, ist die Anzahl:
| Stufe | Cards | Card-Kante | Tris | Budget |
|---|---|---|---|---|
| S1 | 17 | 0.19 | 498 | 800 |
| S2 | 43 | 0.29 | 754 | 1200 |
| S3 | 67 | 0.37 | 946 | 4300 |
| S4 | 130 | 0.45 | 1396 | 4300 |
**Der Radius-Filter skaliert mit.** Er trennt duenne Zweige (Laub) von dickem
Geaest — aber ein Setzling ist *komplett* duenner als eine feste Schwelle. Mit
starren 0.04 m sassen bei S2 **81 %** der Cards am Stamm, bei S3 58 %; jetzt
48 bzw. 52 %.
> Bei S1 bleiben rund 88 % am Stamm, und das ist **kein Defekt**: gemessen ist
> die zulaessige Flaeche dort fuer *jeden* Schwellwert identisch — der Saemling
> hat schlicht kein dickes Geaest, an dem sich etwas trennen liesse. Blaetter am
> Stiel sind bei einem Saemling der Normalfall.
**Bueschelgroesse haengt am Wachstum.** Der Generator merkt sich `growth_t` am
Objekt; der Blattwerk-Operator skaliert die Cards damit (`Setzlings-Anteil`,
Standard 45 %). Gemessen ueber vier Stufen: Card-Kante 0.19 → 0.28 → 0.37 → 0.45.
@@ -436,10 +459,17 @@ Haken `LOD-Kette erzeugen`: exportiert `<Name>_LODGroup.fbx` mit `_LOD0..3` unte
einem `fbx_type=LodGroup`-Empty — dasselbe Schema wie die Fels-Pipeline. **Nur
der Stand-Baum**; die Faell-Teile leben Sekunden als Physik-Actor, dort reicht LOD0.
Die Blatt-Reduktion laeuft ueber die **Dichte**, nicht ueber Decimate: eine Card
besteht aus zwei Dreiecken und laesst sich nicht vereinfachen — man muss weniger
davon setzen. Damit die Krone dabei nicht ausduennt, werden die verbleibenden
Cards groesser. LOD3 ist der Impostor-Ersatz.
Die Blatt-Reduktion ist ein **Teilset der LOD0-Cards**, keine Neustreuung. Das
ist der Unterschied zwischen „die Krone wird duenner" und „die Krone springt
um": beim Neustreuen laegen die Cards an anderen Stellen und die Silhouette
wechselt beim LOD-Uebergang sichtbar. Als Teilset bleibt jede verbleibende Card
genau dort, wo sie in LOD0 schon war; damit die Krone nicht loechrig wird,
werden die Ueberlebenden groesser. Gemessen: **100 % der Cards auf LOD13
sitzen auf einer LOD0-Position.** LOD3 ist der Impostor-Ersatz.
Gearbeitet wird auf zusammenhaengenden **Inseln**, nicht auf einzelnen Faces —
eine Card besteht aus mehreren Dreiecken und muss ganz bleiben oder ganz
verschwinden.
| Stufe | Dichte | Card-Groesse | Rinde | gemessen (Rinde/Blatt/Tris) |
|---|---|---|---|---|