Rock Gen 2.19.0: Schnellstart-Sorten + Dissolve als Bereich

Weniger einstellen muessen: oben im Panel Sorte waehlen, Haken druecken,
erzeugen. Die neun Unter-Panels bleiben fuer den Feinschliff.

  Findling     rund, weiche Kanten          ~1160 V / ~2320 Tris
  Platte       flach, liegt satt auf         ~670 V / ~1340 Tris
  Kantig       Bevel + Weighted Normal       ~350 V /  ~690 Tris
  Erzbrocken   dicht genug fuer die Maske   ~1280 V / ~2560 Tris, Slot M_Rock_Ore

dissolve_angle ist jetzt ein BEREICH statt eines festen Werts - direkt aus der
Rueckmeldung "hab ich immer auf 17-25 je nach Stein". Je Stein wird einer
gezogen; gemessen an sechs Findlingen bei 17-25 Grad: 1936-2928 Tris. Beide
Regler gleich setzen = fester Winkel wie frueher.

Zwei Sachen fielen beim Messen auf:

1) Der Dissolve-Winkel frisst deutlich Geometrie. Derselbe dichte Satz liefert
   bei niedrigem Standardwinkel ~2700 Tris, bei 17-25 Grad nur noch ~1030 und
   faellt damit unter ORE_MIN_VERTS - das Erz-Set haette seine EIGENE Warnung
   ausgeloest, sobald vorher eine Sorte mit hohem Winkel gewaehlt war. Der
   Bereich gehoert deshalb mit in DENSE_PRESET. Ueber vier Seeds und beide
   Groessenklassen nachgemessen: 0.70/0.92 haelt den Worst Case bei 847 Verts.

2) Erz-Dichte und Tri-Fenster kollidieren. Die Maske braucht ~800 Verts auch
   beim kleinen S-Brocken, das treibt einen M-Stein auf ~3400 Tris - ueber das
   Fenster 1500-3000. Deshalb entkoppelt: normale Sorten leichter (0.40/0.80),
   Erzbrocken knapper (0.45/0.82), das S+M-SET dichter (0.70/0.92), weil dort
   die kleinen Brocken die Untergrenze setzen.

Nebenbei gefunden und behoben: der erzwungene Ursprung wurde aus der
GEMEINSAMEN Bbox aller LOD-Stufen berechnet. Eine stark dezimierte Stufe kann
tiefer reichen als LOD0 - dann sass LOD0 sieben Zentimeter ueber dem Pivot und
der Stein haette in UE geschwebt. Unreal platziert nach LOD0, also gibt LOD0
jetzt den Ursprung vor.

Neu: tests/test_schnellstart.py. 18 Tests bestehen.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
2026-08-03 14:21:14 +02:00
co-authored by Claude Opus 4.8
parent f996832d75
commit 74df6dfa1b
8 changed files with 295 additions and 16 deletions
+26
View File
@@ -127,6 +127,31 @@ Abgestimmt auf `A:\eco\EcoGame` (UE 5.8). Kurzfassung:
---
## Schnellstart-Sorten
Ganz oben im Panel: Sorte waehlen, Haken druecken, erzeugen. Deckt den Alltag
ab — die neun Unter-Panels bleiben fuer den Feinschliff.
| Sorte | Form | Dissolve | gemessen |
|---|---|---|---|
| **Findling** | rund, weiche Kanten | 1725° | ~1160 V / ~2320 Tris |
| **Platte** | flach, liegt satt auf | 1725° | ~670 V / ~1340 Tris |
| **Kantig** | Bevel + Weighted Normal, Flat | 814° | ~350 V / ~690 Tris |
| **Erzbrocken** | dicht genug fuer die Nugget-Maske, Slot `M_Rock_Ore` | 1725° | ~1280 V / ~2560 Tris |
**Der Dissolve-Winkel ist ein Bereich, kein Wert.** Ein fester Winkel passt nie
fuer alle Steine einer Sorte — man stellt ihn sonst bei jedem Stein nach. Je
Stein wird einer aus dem Bereich gezogen; gemessen an sechs Findlingen bei
1725°: 19362928 Tris. Beide Regler gleich setzen = fester Winkel wie frueher.
> **Warum die Sorten unterschiedlich dicht sind.** Die Erz-Maske haengt an der
> Vertex-Dichte, ein normaler Stein braucht das nicht. Deshalb hat der
> Erzbrocken ein hoeheres Decimate als der Findling — sonst waere entweder das
> Erz verschmiert oder der normale Stein ueber dem Tri-Fenster. Der Satz hinter
> dem **S+M-Set** ist noch etwas dichter (0.70/0.92), weil dort auch kleine
> S-Brocken vorkommen: mit dem Findling-Satz fielen die im schlechtesten Fall
> auf 708 Verts und damit unter die Schwelle fuer eine saubere Maske.
## Erzfels-Set (A-Kanal)
**EIN neutrales Set fuer ALLE Erzsorten.** Die Maske im A-Kanal sagt nur, *wo*
@@ -549,6 +574,7 @@ gefiltert `.\run_tests.ps1 -Filter panels`.
|---|---|
| `tests/test_proportionen.py` | Baum-Proportionen: Palmenkrone, Strauch-Breite, Setzling-Schlankheit, Branch Count 0 |
| `tests/test_bruchstuecke.py` | Bruchstuecke: Volumen 100 % des Muttersteins, dichte Topologie, genau ein Erz-Stueck, Material-Slots, Ursprung, UCX je Teil |
| `tests/test_schnellstart.py` | Schnellstart: jede Sorte liefert ohne Nacharbeit Geometrie + Slot, Erz-Sorte ueber der Dichte-Schwelle, Dissolve-Bereich streut je Stein |
| `tests/test_erz.py` | Erz-Maske: A=1.0 ohne Erz, Anteil monoton, Set-Namen/Groessen, Einstellungen zurueckgesetzt, FBX-Roundtrip, Tri-Fenster |
| `tests/test_export_robust.py` | Export am **reimportierten** FBX: Ursprung erzwungen, flach = liegend, UCX geschlossen/umschliessend/im Budget, LOD+Vertex-Farben |
| `tests/test_panels.py` | Alle vier Addons: registrieren, jedes Panel zeichnet, Unter-Panels im richtigen Tab, **jede Property irgendwo erreichbar** |