Nabend zusammen,
ich bastle seit längerer Zeit an einer Innenanzeige und habe aktuell das Problem, dass es beim Wechseln der Textur häufig unangenehme Mikroruckler gibt. Daher wollte ich mal erfragen, ob jemand schonmal ähnliche Probleme hatte und/oder eine Lösung dafür hat.
Die zu wechselnden Texturen sind dds-Dateien mit einer Größe von 750x470 Pixeln (Dateigröße 346KB bzw. 173KB), falls das noch eine Rolle spielen könnte. Ich habe auch bereits probiert, die Texturen als png-Dateien zu speichern - leider ohne Erfolg.
Im Voraus schonmal vielen Dank
Wagen300

Ruckler bei Texturwechsel
- Wagen300
- Erledigt
Als Gast kannst du nur Inhalte in deiner ausgewählten Sprache sehen. Registrierte Nutzer können die Sichtbarkeit anderer Sprachen in ihrem Kontrollzentrum aktivieren, weitere Infos hier.
Alle Themen sind in den Foren mit einer Sprachflagge gekennzeichnet:
-
-
-
-
Mikroruckler
Steht doch da
Ja, daran hatte ich auch schon gedacht. Über's Script ist es aber ja deutlich flexibler...
-
-
-
-
Der entsprechende Teil des Scripts sieht wie folgt aus:
Code
Alles anzeigen(L.L.haltewunsch) {if} (L.L.buse_display_stoptimer) (L.S.Timegap) + (S.L.buse_display_stoptimer) (L.L.buse_display_stoptimer) 4 >= {if} 0 (S.L.buse_display_stoptimer) {endif} {else} 99 (S.L.buse_display_stoptimer) {endif} (L.L.buse_display_timer2) (L.S.Timegap) + (S.L.buse_display_timer2) (L.L.buse_display_timer2) 50 >= {if} 0 (S.L.buse_display_timer2) {endif} (L.L.buse_display_timer2) 40 > {if} (L.L.buse_display_stoptimer) 2 < {if} "BUSE\Base_info_stop.dds" (S.$.BUSE_TFT_Display) {else} "BUSE\Base_info.dds" (S.$.BUSE_TFT_Display) {endif} {else} (L.L.buse_display_stoptimer) 2 < {if} "BUSE\Base_stop.dds" (S.$.BUSE_TFT_Display) {else} "BUSE\Base.dds" (S.$.BUSE_TFT_Display) {endif} {endif}
Ist grundsätzlich nur das Script von Morpheus' TFT-Bildschirm aus'm Citaro Facelift, welches ja ruckelfrei funktioniert... -
-
Diese Ruckler lassen sich leider schwer vermeiden bei Texturtausch über das Script. Es hilft nur die Dateigröße möglichst klein zu halten.
Es hängt auch vom Prozessor ab. Als ich noch den FX8350 hatte, war das schon echt teilweise eine Katastrophe. Mit meinem aktuellen i9 9900k ist das schon deutlich weniger geworden. Leider kann man da nicht sonderlich viel machen.
Das gleiche gilt auch für Textfelder. Je größer die Alphabitmap der OMSI-Font ist, desto schlimmer wird das Ruckeln bei Änderung des Textes.
-
Diese Ruckler lassen sich leider schwer vermeiden bei Texturtausch über das Script. Es hilft nur die Dateigröße möglichst klein zu halten.
Ja das kann ich so auch bestätigen.
Jedes mal, wenn der Drucker und die Innenanzeige auf die nächste Haltestelle springt und die nächste Ansage abgespielt wird, gibt es einen kleinen aber spürbaren Ruckler.
Auch auf Grundorf
mfg
Daniel
-
reduziere die Auflösung der angezeigten Textur bitte auf 512x512 Pixel.
Das scheint die Ruckler tatsächlich schon stark zu minimieren. Vielen Dank.
-
es hilft auch, Textfelder oder Bitmaps nicht gleichzeitig zu aktivieren und/oder die Textur geladen zu halten.
Eine Möglichkeit wäre beispielsweise, ein verstecktes Mesh mit den benötigten Texturen zu mappen und damit "vorzuhalten". tauscht das Script dann die Texturen aus, ruckelt es nicht da diese nicht erst geladen werden müssen.
Tritt das Problem bei Textfeldern auf, kann man diese auch "zug um zug" aktualisieren anstatt alle auf einmal. Das ist häufig ein Problem bei der Haltestellenweiterschaltung, wo auf IBIS, Bordcomputer, Innenanzeige und mehr gleichzeitig etwas passiert. Dort macht es sinn die Aktualisierungen je um ein paar Frames verschieben, um so den Rechenaufwand für diesen einen Wechselframe zu minimieren.Hält man die Dateien vor, wird natürlich der Speicherbedarf erhöht und für versetztes aktualisieren muss das Script entsprechend angepasst werden.
Wagen300eine Textur, die Beispielsweise 513x513px groß ist, wird automatisch auf die nächst größere 2 hoch x Texturgröße hochgerechnet - deine Textur ist also fürs Spiel eigentlich 1024x1024px groß, obwohl sie nur ein Pixel größer ist als das nächst kleinere Format.
-
Danke für den Tipp mit dem Timer
Jetzt läuft der Wechsel von Innenanzeige, Drucker und Ansagen ruckelfrei beim DD-Mod Bremen-MAN.
mfg
Daniel