Tree Gen 1.43.0: UCX in _Pieces_All.fbx - und zwei Fehler, die dabei auffielen

Die Gesamtdatei kam ohne Kollision an, waehrend die Einzeldateien welche
hatten. Jetzt bekommt jedes Teil auch dort seine Huelle, gleiche Konvention wie
beim Stand-Baum: UCX_<Teilname> als Geschwister, kein Elternteil. Sie entstehen
VOR dem Umsetzen der Pivots, weil in der Gesamtdatei alle Teile noch an ihrer
Originalposition stehen.

Beim Nachmessen kamen zwei Fehler heraus, die auch die BESTEHENDEN
Einzeldateien betrafen:

1) Die Huellen umschlossen das Laub mit
   _tree_ucx las alle Vertices eines Teils, also auch die Blatt-Cards. Gemessen
   am baum-Preset war die Huelle dadurch 1.4- bis 2.1-mal so gross wie das Holz.
   Jetzt nur noch Material-Slot 0. Die Spielseite hatte das fuer ihre
   Interim-Boxen laengst so gemacht - zu Recht.

2) Das Aufweiten war fuer schlanke Teile kaputt
   Nach dem Vereinfachen wurde die Huelle durch Skalieren um die Huellenmitte
   aufgeblasen. Bei langgestreckten Teilen entgleist das: liegt eine Flaeche
   fast durch die Mitte, wird der Hebel winzig und der Faktor explodiert -
   gemessen 4.2 an einem Stammsegment mit Laenge zu Dicke 13:1. An der dicken
   Eiche blieb es bei 1.0-1.4, deshalb ist es nie aufgefallen; erst der Wechsel
   auf Rinde-only machte die Teile schlank genug.

   Jetzt wird je Flaeche der ECHTE Fehlbetrag gemessen und die Vertices um genau
   diesen Betrag nach aussen geschoben - eine Verschiebung in Metern, kein
   Verhaeltnis. Iterativ, weil ein Vertex mehreren Flaechen angehoert und
   entlang seiner eigenen Normale wandert (ein Durchgang liess einen Rest
   stehen, der Test schlug an). Bleibt danach etwas uebrig, faellt die Funktion
   auf die unvereinfachte Huelle zurueck.

Ergebnis am 12-teiligen Baum: alle Huellen 14-31 Verts (Budget 32), keine
groesser als das 1.35-fache ihres Holzes.

test_faell_teile prueft die Gesamtdatei jetzt auf: je Teil genau eine Huelle,
richtiger Name, kein Elternteil, und Huellengroesse gegen die RINDE.
Gegenproben: ohne Rinde-Filter 10 Fehler (1.41x bis 2.06x), ohne Huellen in der
Gesamtdatei 1 Fehler.

27 Tests bestehen.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
2026-08-07 06:53:28 +02:00
co-authored by Claude Opus 4.8
parent ae7806e082
commit 20e8e24322
8 changed files with 222 additions and 34 deletions
+37
View File
@@ -563,6 +563,43 @@ 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.
### UCX auch in der Gesamtdatei - und zwei Fehler, die dabei auffielen
`_Pieces_All.fbx` kam ohne Kollision an, waehrend die Einzeldateien welche
hatten. Jetzt bekommt jedes Teil auch dort seine Huelle, gleiche Konvention wie
beim Stand-Baum: `UCX_<Teilname>` als Geschwister, kein Elternteil. Sie
entstehen VOR dem Umsetzen der Pivots - in der Gesamtdatei stehen alle Teile
noch an ihrer Originalposition.
**Die Huellen umschlossen das Laub mit.** `_tree_ucx` las alle Vertices eines
Teils, also auch die Blatt-Cards. Gemessen am `baum`-Preset war die Huelle
dadurch **1.4- bis 2.1-mal** so gross wie das Holz - beim obersten Stammsegment,
das die Krone traegt, 1.67x. Jetzt nur noch Material-Slot 0 (Rinde). Die
Spielseite hatte das fuer ihre Interim-Boxen laengst so gemacht.
**Und das Aufweiten war fuer schlanke Teile kaputt.** Nach dem Vereinfachen
wurde die Huelle wieder aufgeblasen, damit alles hineinpasst - durch Skalieren
um die Huellenmitte. Bei langgestreckten Teilen entgleist das: liegt eine
Flaeche fast durch die Mitte, wird der Hebel winzig und der noetige Faktor
explodiert. Gemessen an einem Stammsegment (Laenge zu Dicke rund 13:1)
**Faktor 4.2**. Bei der dicken Eiche blieb es bei 1.0-1.4 - deshalb ist es nie
aufgefallen. Erst der Wechsel auf Rinde-only machte die Teile schlank genug,
dass es durchschlug.
Jetzt wird nicht mehr skaliert, sondern je Flaeche der ECHTE Fehlbetrag
gemessen (wie weit liegt der schlimmste Quellpunkt vor ihrer Ebene?) und die
Vertices um genau diesen Betrag nach aussen geschoben - eine Verschiebung in
Metern, kein Verhaeltnis, sie kann nicht explodieren. Das laeuft ITERATIV: ein
Vertex gehoert mehreren Flaechen an und wandert entlang seiner eigenen Normale,
die Ebene verschiebt sich also nur um den projizierten Anteil. Ein Durchgang
liess einen Rest stehen (der Test schlug an), nach wenigen ist er weg. Bleibt
doch etwas uebrig, faellt die Funktion auf die unvereinfachte Huelle zurueck -
ein paar Vertices mehr kosten nichts, eine vierfach zu grosse Kollision schon.
Ergebnis am 12-teiligen Baum: alle Huellen 14-31 Verts (Budget 32), keine
groesser als das 1.35-fache ihres Holzes. Gegenproben: ohne Rinde-Filter 10
Fehler (1.41x bis 2.06x), ohne Huellen in der Gesamtdatei 1 Fehler.
### Stamm-UCX fuer den Stand-Baum
Die Stand-Baeume bekommen eine konvexe Kollisionshuelle um den **Stamm**, vom