Zum Inhalt springen
Pipfold

Die harten Kanten im Filz waren nicht der Verlauf

· gestaltung · spiel

Der Filz in der Wanne bekommt zum Rand hin einen dunklen Saum. Das ist gefälschte Umgebungsverdeckung: dort, wo Boden und Wand sich treffen, kommt weniger Licht an. Ohne diesen Saum liegt der Boden nicht im Kasten, sondern klebt darin.

Der Saum war da. Und mit ihm eine Linie, die nicht sein durfte.

Nahaufnahme der linken Ecke der Wanne. Am Fuss der Wand liegt ein dunkles Band auf dem Filz, das nach innen an einer geraden, scharf gezeichneten Linie parallel zur Wand endet — dahinter wird der Filz wieder heller.
vorherDas dunkle Band endet an einer Kante statt auszulaufen — genau dort, wo der Saum verschwinden soll. Beide Aufnahmen in der Garnitur Esche mit blauem Filz; auf dem grünen Ahorn steht dieselbe Linie, nur weniger deutlich.
Dieselbe Ecke nach der Änderung: die Verdunkelung an der Wand läuft gleichmässig nach innen aus, ohne Linie und ohne sichtbaren Übergang.
nachherEine Fläche über die ganze Wanne, Dunkelheit aus dem Abstand zum Rand. Nichts hört mehr auf.

Runde eins: der Knick im Verlauf

Links am Filz stand ein doppelter Rand. Die Vermutung lag nahe und stellte sich als halb richtig heraus — es waren zwei Dinge übereinander:

Der Verlauf des Saums hatte bei 35 % eine Stützstelle und damit einen Knick in der Steigung. Das Auge sieht einen Knick als Linie, auch wenn die Kurve stetig ist. Dazu warf die linke Wange ihren Schlagschatten mit harter Kante auf den Filz. Rechts fehlt der Schatten — deshalb stand dort nur eine Kante.

Behoben: der Verlauf wird jetzt als Potenzkurve gerechnet, der Saum ist schwächer und leiser (0,32 → 0,17), shadow_blur von 2,2 auf 3,4.

Bei der Gelegenheit fiel noch etwas anderes: GIER_QUER und GIER_HOCH standen auf ein paar Grad. Gedacht war das als „dann liest er als Körper“ — im Bild stand der Kasten aber schief ohne sichtbaren Grund. Auf 0 gesetzt. Frontal ist er zudem schmaler, die Kamerapassung geht näher heran, und die Klappen sind merklich grösser. Hochkant besonders.

Die Linie war trotzdem noch da.

Runde zwei: an der falschen Stelle

Beide Änderungen waren richtig und bleiben. Keine war die Ursache.

Das ist die unangenehmste Lage beim Suchen: Man ändert etwas, das tatsächlich verbesserungswürdig war, das Bild wird tatsächlich besser — und der Fehler bleibt. Zwei Runden lang wurde das für „noch nicht genug“ gehalten statt für „falsche Stelle“.

Gefunden durch Abschalten

Irgendwann wurde der Saum komplett abgeschaltet und einmal gerendert. Ohne ihn war der Filz sauber.

Damit war die Menge der Verdächtigen von „alles, was den Filz zeichnet“ auf „der Saum“ geschrumpft — und die Ursache stand in einer Zeile, an der niemand etwas gestaltet hatte:

BaseMaterial3D.texture_repeat steht standardmässig auf an.

Am auslaufenden Rand des Saum-Quads mischt der lineare Filter über die Texturgrenze hinweg zurück auf die erste Zeile der Textur — und die ist voll deckend. Das ergibt eine rasiermesserscharfe Linie parallel zur Wand, genau dort, wo der Saum verschwinden soll.

Kein Verlauf hilft dagegen. Der Verlauf ist richtig; er wird am Rand nur nicht zu Ende gelesen, sondern wieder von vorn. texture_repeat = false steht jetzt auf allen vier Flächen mit Alpha.

Und dann war der Saum immer noch falsch herum

Beim Nachmessen kam der zweite Fehler heraus, und der ist grundsätzlicher.

Der Saum bestand aus vier gedrehten Quads mit je einem Verlauf über die Quad-Höhe. Bei den Seiten sass die volle Deckung nicht an der Wand, sondern am inneren Ende. Und weil ein Quad dort einfach aufhört, stand genau da eine Kante mitten im Filz.

Entschieden hat es ein Pixelschnitt quer über die Wanne. Von der Wand nach innen gemessen:

51  →  36  →  Sprung auf 66

Ein Saum wird zur Wand hin dunkler. Dieser wurde heller. Das sieht man in einem Bild mit Holzmaserung, Vignette und drei Lichtern nicht — man sieht nur, dass „irgendwas nicht stimmt“. In einer Zahlenreihe von drei Werten sieht man es sofort.

Die Lösung war, das Problem zu löschen

Statt vier Quads richtig herum zu drehen: eine PlaneMesh über die ganze Wanne, deren Dunkelheit aus dem Abstand zum Rand in Weltkoordinaten gerechnet wird.

Damit kann nichts mehr verkehrt herum liegen, die Ecken verdoppeln sich nicht mehr, und es gibt keinen auslaufenden Quad-Rand, an dem eine Texturgrenze mitmischen könnte. Der erste Fehler dieses Eintrags ist damit nebenbei auch strukturell weg, nicht nur abgeschaltet.

Verworfen: die vier Quads richtig drehen. Das wäre eine Zeile gewesen und hätte funktioniert. Es hätte aber die Bauart behalten, bei der es zwei richtige und sechs falsche Möglichkeiten gibt, dieselbe Fläche zu legen — und bei der die Ecken doppelt gedeckt sind, weil dort zwei Quads überlappen. Eine Bauart, in der ein Fehler nicht mehr formulierbar ist, ist besser als ein korrigierter Fehler.

Zwei Regeln aus einem Nachmittag

Wenn eine Änderung das Bild verbessert und den Fehler nicht behebt, war es die falsche Stelle. Nicht „noch nicht genug“. Zwei Runden gingen dafür drauf, diesen Unterschied nicht zu machen.

Und: einen Effekt abschalten ist schneller, als ihn zu verstehen. Der Filz war in dem Moment sauber, in dem der Saum weg war — und damit stand in zehn Sekunden fest, wo weiterzusuchen ist. Davor war die Verdächtigenliste so lang wie die Materialdefinition.

← Devlog