Lücken in Texturen

  • Schönen guten Abend allerseits,


    Ihr könnt euch bestimmt noch an diese lustigen weißen Ränder auf meinen Texturen erinnern. Nachdem ich mein erstes Objekt nach Trainz exportiert hatte, war dieser Fehler in TANE erstmal nicht mehr zu sehen. Der Fehler ist aber noch da, die "weißen" Ränder sind nur nicht mehr weiß, sondern texturlose Lücken im Objekt. Mit anderen Worten bin ich wieder genau da, wo ich schonmal war. Ich konnte den Fehler nur bei dem ersten Versuchsobjekt nicht sehen, weil er vor einer anderen Fläche des selben Farbtones war.

    Nun habe ich den Fehler aber auch in TANE auf frischer Tat ertappt. Wie man mit etwas Mühe erkennen kann, klafft dort eine Lücke in der Textur.

    Andere nicht von mir erstellte Objekte sind jedoch lückenlos, also kann das nicht normal sein. Um möglichst alle Flächen auf eine UV-Map zu bekommen, habe ich die Texturen sehr knapp auf die Flächen zugeschnitten, was der allgemeine Grund für diesen Fehler sein könnte. Darum habe ich anschließend den Abstand zwischen Texturende und Flächenkannte mehrmals vegrößert, um den Fehler zu reduzieren. Die Reduzierung ist aber immer nur für einige Meter mehr Entfernung zum Objekt wirksam, bis der Fehler wieder zu sehen ist. Bei diesem Bild bin ich schon bei 10 Pixeln Abstand, was auf der UV-Map relativ viel ist. Wenn ich zwei Flächen mit unterschiedlichen Texturen nebeneinander habe, wäre ich schon bei 20 Pixeln Abstand. Ich bin mir nicht sicher, ob ein größerer Abstand (10 Pixel reichen nicht einmal) erstrebenswert und richtig ist, um diesen Fehler zu vermeiden. Schließlich geht mir immer mehr wertvoller Platz auf der UV-Map verloren.

    Was könnt Ihr mir vorschlagen?

    Einmal editiert, zuletzt von Willi S ()

  • Gibt es vielleicht einen Mindestabstand in Pixeln, den man zwischen Texturende und Flächenkannte lassen sollte, damit dieser Fehler nicht entsteht?

    Was hat sich denn in den vielen Jahren der Trainz-Geschichte unter Euch Modellbauern bewährt?

    Zur besseren Veranschaulichung habe ich hier einen Screenshot von meiner UV-Map. Es handelt sich um einen älteren Versuch mit 6 Pixeln Abstand, was aber noch lange nicht gereicht hat.

    Ist das tatsächlich noch viel zu wenig und ich sollte z. B. 1382,854 Pixel Abstand lassen, oder reicht normalerweise 1 Pixel und ich mache etwas komplett anderes falsch? Ich hatte dieses Problem schon mit weißen Rändern, mir wurde vorgeschlagen, z. B. den Padding-Wert zu erhöhen.

    Bis heute habe ich weder so eine Einstellung in Blender gefunden noch habe ich im Internet unter zahlreichen Tutorials und Texten auch nur ansatzweise etwas zu diesem Texturfehler gefunden. Als würde dieser Fehler normalerweise nicht existieren. Ich kann mir auch nicht vorstellen, dass meine Theorie, den Abstand zu vergrößern, richtig ist, da schon 10 Pixel als Abstand, was noch nicht einmal, auch nur fast, reicht, meiner Meinung nach extrem unprofessionell und platzverschwenderisch aussehen. Vielleicht ist es die simpelste und einfachste Bildeinstellung in Windows, vielleicht sind es aber auch 3 Einstellungen in Blender, die man beachten muss, um fehlerfreie Texturen zu erhalten. Ich komme einfach nicht darauf. Laut Internet müsste die Fläche gerade noch, wenn auch nur auf den Femtometer genau, auf der Textur sein und fertig wäre das perfekte Objekt. Dass das Ende der Textur, auch wenn es deutlich, wie auf dem Foto zu sehen, noch außerhalb der Fläche ist, unter den verrücktesten Umständen auch mal in die Fläche rutschen kann und Texturfehler entstehen, wird im Internet in keiner Silbe erwähnt, genauso wenig wie Kompensationsmaßnahmen.


    Ich würde mich sehr über Eure Hilfe freuen.

    • Offizieller Beitrag

    Wenn du dich von einem Objekt entfernst, fängt Trainz an, dessen Texturauflösung zu verkleinern, um deine Hardware zu schonen.
    Dies geht abhängig nach der Größe des Objektes und der Einstellung "Texture Quality" im Launcher mehr oder weniger schnell.


    Wenn Trainz die Auflösung verkleinert, beinhalten die Inseln auf der UV-Map plötzlich Pixel, die vorher nicht zu ihnen gehörten. Aus diesem Grund solltest du auf deiner UV Map wenn möglich darauf achten, dass sich stark kontrastierende Farben (zum Beispiel ein kräftiges Blau und ein helles Rot) nicht direkt aneinander liegen, weil sonst rote Ränder auf dem sonst Blauen Objekt beim herauszoomen sichtbar werden und vice versa. Das ist aber lediglich eine Empfehlung, möglichst ähnliche Farben auf der UV nebeneinander zu platzieren, im Zweifelsfalle fällt es meist trotzdem nicht auf, wenn der User das Objekt nicht beim rauszoomen anstarrt. Dies sollte bei deiner Bräunlichen Textur aber kein Problem darstellen.


    Zu deinem Problem: Ich glaube du bist in ein ganz anderes Fettnäpfchen getappt. Öffne mal bitte dein Objekt und gehe dort in die zugehörige .texture.txt Datei. Füge dort unten einmal bitte eine neue Zeile mit dem Inhalt "Tile=st" ein. Diese kannst du eigentlich immer einfügen. Wenn sie nicht eingefügt ist, so ist außerhalb der Textur überhaupt nichts zu sehen, beim herauszoomen entstehen untexturierte Flächen. Mit Tile=st wird die Textur automatisch "gekachelt", d.h. sie setzt sich endlos fort.


    Zur Frage nach dem Padding-Wert: Ich vermute, dass damit in Blender die Option "margin" gemeint ist, mit welcher du den Abstand der einzelnen Inseln beim Unwrap oder beim Packing einstellen kannst.


    Irgendwo hörte ich mal, dass 0.2 da in Trainz das Problem mit den überlappenden Texturen eliminieren würde, aber natürlich auf Kosten von Platz auf der Textur. Wenn du Dinge mit ähnlicher Farbe hast (bei einer durchgehend ähnlichfarbenen Textur ist dies der Fall), kannst du sie dichter zusammenrücken, um den Platz effektiver auszunutzen.




    Greets, Mika

    Student in Vollzeit, Straßenbahnfahrer in Teilzeit. Skripte für Trainz wenn Motivation da ist...


    "It's always more fun to share with everyone" -Jack Johnson

  • Vielen Dank,


    wo kann ich die texture.txt finden?

    Ich wette, dass die meisten Modellbauer genau diesen Trick anwenden. Ich habe den Fehler nämlich ausschließlich bei meinem Objekt gesehen, also müssen die anderen Modellbauer ein Ass im Ärmel haben. Es ist nur überraschend, dass dieser Trick in den Tutorials nicht erwähnt wird, dabei ist das für mich Grundwissen.

    • Offizieller Beitrag

    Wenn du dein Objekt im Explorer öffnest, findest du dort deine Textur-Dateien (also .png, .tga, .bmp). Dazu findest du jeweils gleichamige Textdateien, welche in ".texture" enden. Öffne diese mal in einem Texteditor.


    Mehr Informationen (auf Englisch): http://online.ts2009.com/mediaWiki/index.php/Texture_file




    Greets, Mika

    Student in Vollzeit, Straßenbahnfahrer in Teilzeit. Skripte für Trainz wenn Motivation da ist...


    "It's always more fun to share with everyone" -Jack Johnson

  • Hallo Mika,


    ich habe die Datei geöffnet, der Eintrag "Tile=st" ist aber schon vorhanden. Nun habe ich ihn einfach noch ein zweites mal eingegeben, es hat aber am Objekt nichts verändert, die Lücken sind immer noch da.:frowning_face:

  • Zu Deinem Beitrag Nr 2:

    Soweit ich mich noch erinnere, kannst Du die UV-Map pixelweise ausrichten.

    Zumindest erinnere ich mich noch daran, dass es bei mir geholfen hatte.

    (Ich bin seit längerem nicht mehr aktiv im Modellbau)

    16066-signaturbild-ujb

    Früher war nicht alles besser.

    Es war nur unsere Zeit, unsere Kindheit und Jugend.

  • Kannst Du dich noch daran erinnern, wie viele Pixel Du als Abstand gelassen hast?

    Wenn nicht, dann würde ich es einfach experimentell ermitteln.


    Mit Tile=st wird die Textur automatisch "gekachelt", d.h. sie setzt sich endlos fort.

    Wird die ganze UV-Map gekachelt, oder werden alle einzelnen Flächen gekachelt?:thinking_face:

  • Verzeih mir bitte meine etwas verspätete Antwort.


    Sicher bin ich mir nicht, da es doch "einige Tage" zurück liegt. Ich meine aber, zum Rand der Textur keinen Abstand gelassen zu haben, aber direkt auf die Pixelkante ausgerichtet zu haben. Und wenn ich Abstand drin hatte, maximal einen Pixel. Wichtig ist, dass Du die Fangfunktion der Pixel nutzt.

    16066-signaturbild-ujb

    Früher war nicht alles besser.

    Es war nur unsere Zeit, unsere Kindheit und Jugend.

  • Verzeih mir bitte meine etwas verspätete Antwort.

    Kein Problem.:winking_face:


    Was ist eigentlich die Fangfunktion?

    Bei mir ist ein Pixel Adstand viel zu wenig, selbst 10 Pixel Abstand von der Fläche bis zur neuen Textur reichen nicht.

    Oder hast Du mit einem Farbton texturiert, sodass man das "Verschwimmen" der Texturen nicht sieht?

  • Kann ich Dir aktuell leider nicht sagen. Eventuell am Wochenende. Oder ein anderer übernimmt bitte den Part.


    Bitte ausprobieren, was passiert. Im Notfall die Datei ohne Speichern neu laden.


    Sorry.

    16066-signaturbild-ujb

    Früher war nicht alles besser.

    Es war nur unsere Zeit, unsere Kindheit und Jugend.