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.
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.