Schwarze Linien/Kreuze über Bäumen, Büschen, Buschreihen, Backdrops entfernen

  • Keine Angst, die Erklärung(en) sind viel umständlicher als die Lösung selbst, die ist nahezu trivial.


    Bspl.: Diese Tanne hatte leider den Nachteil, aufgrund der breiten und dunklen Standfläche ein deutlich sichbares schwarzes Kreuz zu erzeugen.

    Diese schwarzen Linien sind aus Enfernung immer noch sichbar gewesen, nachdem die unteren 8 Pixelreihen gelöscht wurden, Gesamtbild (.ACE) hat 512x512 Pxl.


    Es wären nach altbewährter Methode, siehe Honza-Schwarze Linien im Himmel, noch mehr Pixel im unteren Bereich zu löschen gewesen, um den Effekt mit den Linien zu unterdrücken. Da mir das irgendwann zu bunt wurde, überlegte ich ob es nicht einen anderen Weg gibt.


    Zunächst ist zu verstehen, warum diese optischen Artefakte überhaupt entstehen.

    Werden Objekte mit dem lightMatId = Cruziform aus größeren Entfernung betrachtet, wie bei Bäumen, nur diese zeigen das Phänomen, werden mehrere Pixelreihen des Quellbildes vermutlich zu einer zusammen gefasst, um sie im Zielbild, also auf dem Bildschirm im Spiel darzustellen. Im oberen Bereich des Baumes am Texturabriff Nahe 1 kommt es zum wrap around, Pixel des unteren Bereiches bei 0 werden ergänzt. Da der Baum hier eine dunkle Linie aufweist, erscheint diese über den Bäumen.


    Bzgl. der Texturdarstellung außerhalb des Bereiches des Texturabgriffes (uv-Abgriff) von 0 bis 1 gibt es aber mehrere Modi.


    texAddrMode


    Neben dem Standard Wrap gibt es noch weitere Modi:

    (1) Wrap, der Standard, außerhalb der Koordinatenbereiches 0 - 1 wird das Quellbild einfach wiederholt.

    (2) Mirror, das Bild oberhalb von 1 wird gespiegelt dargestellt, oberhalb von 2 wieder im Original, usw., immer im Wechsel.

    (3) Clamp, Texturkoordinaten unterhalb von 0 erhalten den Wert an der Stelle 0, oberhalb von 1 den Wert an der Stelle 1.

    (4) Border, Texturkoordinaten außerhalb des Bereiches 0 - 1 erhalten die Border-Color, ich glaube in OR die Standardfarbe grau für alle undefinierten Flächen. Da bin ich mir nicht sicher, im Test hatte ich eine fast weiße Farbe. Vielleicht wird auch die jedem Vertex zuordnenbare Color verwendet.


    Die Zahlen davor entsprechen auch der Kodierung innerhalb der Shape Datei.

    Nicht definierte Zahlen 0 oder >=5 werden als Standard Wrap dargestellt. Abweichende Modi werden von TSRE5 sowie dem ShapeViewer nicht unterstützt, nur wrap.


    Mir lacht hier sofort der Modus Mirror an, um das Problem mit den schwarzen Linien zu umgehen.

    Der Modus Clamp ist von seiner Definition her sicher eine Überlegung Wert. Wenn bei langgezogenen Backdrops es aber beabsichtigt ist, das Bild einer Baumreihe dort mehrfach zu wiederholen, wird außerhalb des Wertebereiches 0 - 1 nur noch eine einzelne Farbe dargestellt, oder im Falle eines durch den Alphakanal definierten Bildendes dann eben nichts mehr.


    Ein paar erklärende Bilder

    Wird der uv-Abgriff von -2 bis ca. 2.8 geführt, erscheint das Quellbild (grün umrandet) wie ein Patchwork immer wieder im Standard Modus Wrap.


    Der Modus Mirror liefert eine Spiegelung des Quellbildes an den zentralen Abgriff von 0 bis 1 angrenzend. Das Bild bezieht sich auf das Beispiel und stellt nur den Alphakanal dar. Auch in der Horizontalen wäre das angrenzende Bild eine Spiegelung des Originals, was im Bspl. aber weniger von Interesse ist. Beim Überschreiten der Grenze von 1 nimmt sich das Programm also nicht die untere Baumfläche vor, sondern greift ins Leere, daher keine Schwarzen Linien mehr.


    Zur Umsetzung

    Es ist lediglich nötig, den texAddrMode von zuvor 1 (wrap) auf 2 (mirror) zu ändern.

    Eine einzige Zahl innerhalb der Shape Datei, das ist alles. (lange Rede, kurzer Sinn.)


    Wer Archibald noch nutzen kann, braucht die .s Datei noch nicht einmal zu entpacken.


    Gruß Hehl

    • Gäste Informationen
    Hallo, gefällt dir der Thread, willst du was dazu schreiben oder mehr lesen, dann melde dich bitte an. Hast du noch kein Benutzerkonto, dann bitte registriere dich, nach der Freischaltung kannst du das Forum uneingeschränkt nutzen.

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!