Rock Gen 2.17.0: Erz-Maske invertiert - Nuggets laufen auf A = 0 zu

Entscheidung der Spielseite: die A-Semantik bleibt eingefroren (1.0 = kein Erz),
der Master loest es ueber

    Erz = (1 - A) * ErzMenge

mit ErzMenge als MI-Regler, Standard 0. Normale Stein-MIs ignorieren den Kanal
damit vollstaendig, nur die Erz-MIs drehen ihn auf. Kein Re-Export des
25er-Sets noetig, keine Fallunterscheidung im Addon.

Dafuer musste die Maske umgedreht werden: bisher lag das Nugget-ZENTRUM auf
A = 1.0 - also auf demselben Wert wie "kein Erz". Unter der Master-Formel waere
das Erz damit unsichtbar gewesen und der ganze RESTLICHE Stein haette als Erz
gegolten. Jetzt laufen die Nuggets auf A = 0 zu.

Gemessen: ohne Erz A 1.00..1.00 und (1-A) max 0.000 - ein normaler Stein zeigt
im Master garantiert nichts. Mit Erz erreicht (1-A) 1.00, Abdeckung unveraendert
4/9/15 % bei Anteil 0.08/0.18/0.35. Die Erzstellen sitzen an denselben Punkten
wie vorher, nur andersherum kodiert.

Die Tests pruefen jetzt direkt gegen die Master-Formel statt gegen den Rohwert -
am Rohkanal ist die Richtung zu leicht zu verwechseln. Panel zeigt bei aktivem
Erz-Bake "A=Erz (0=Erz)" plus den Hinweis auf die Formel, damit das niemand
versehentlich zurueckdreht.

Nugget-Groesse bleibt wie entschieden ABSOLUT (Radius in Metern).

ACHTUNG: Erz-Assets, die mit 2.15/2.16 exportiert wurden, tragen die alte
Richtung und muessen neu exportiert werden. Steine ohne Erz-Bake sind nicht
betroffen - deren A war und ist durchgehend 1.0.

17 Tests bestehen.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
2026-08-03 08:38:46 +02:00
co-authored by Claude Opus 4.8
parent 2bf2f907bf
commit a2d46424ec
9 changed files with 86 additions and 36 deletions
+5 -3
View File
@@ -110,9 +110,11 @@ for anzahl in (2, 3, 4):
if lay is None:
fails.append("%s: kein Vertex-Layout v2" % ob.name)
elif ob.name.endswith("_Piece_Erz"):
if max(a) < 0.9 or min(a) > 0.01:
fails.append("%s: traegt keine Erz-Maske (A %.2f..%.2f)"
% (ob.name, min(a), max(a)))
# Der Master rechnet (1 - A): Nuggets muessen auf A = 0 zulaufen.
erz = [1.0 - x for x in a]
if max(erz) < 0.9 or min(erz) > 0.01:
fails.append("%s: traegt keine Erz-Maske ((1-A) %.2f..%.2f)"
% (ob.name, min(erz), max(erz)))
else:
if min(a) < 0.999:
fails.append("%s: A ist nicht 1.0 (min %.2f) - nur das "