Ruckler trotz hoher fps-Rate

  • An alle Loksim3d-Freunde,


    bedauerlicherweise läuft Loksim3d auch auf meinem Computer nicht ruckelfrei. Ich nutze Loksim3d 2.7 und befahre regelmäßig die Strecken der Demo 2. Wiederholt kommt es vor, dass für eine gewisse Zeit viele kleine Ruckler kurz hintereinander, dabei jedoch in meist unregelmäßigen Abständen, auftreten, was eine zuckende Darstellung bewirkt (evtl. Mikro- oder Nachladeruckler ?). Nicht ganz so häufig, aber gelegentlich, hängt die Simulation für ein bis zwei Sekunden. Das Kuriose hierbei: Die Anzahl der Frames pro Sekunde (fps) liegt meist bei 60, in Bereichen mit aufwändigeren und mehr Texturen wie Bahnhöfen immerhin bei etwa 30. Selbst während der Ruckler wird die fps-Anzahl von 60 auf nicht unter 30 herabgesetzt. Was die Abfolge der Ruckler auf der Strecke insgesamt betrifft, so treten diese nicht in gleichmäßigen Abständen auf, sondern vielmehr an bestimmten Stellen, beispielsweise bei der Fahrt durch Hainfurt-Nord, auf der Schnellfahrstrecke bei Moors, im Waldgebiet bei Altenstein, während der Vorbeifahrt an Zügen und etlichen mehr. Dabei ist mir aufgefallen, dass sich die Ruckelphasen verschieben, wenn die Sichtweite (Berge) verändert wird.


    Nachfolgend einige Informationen zu meinem Rechner:


    Windows Vista 32 Bit Service Pack 2
    Intel Core 2 Duo CPU E6750 @ 2,66 GHz
    2 GB Arbeitsspeicher
    NVidia GeForce 8600 GS mit 256 MB Speicher, Treiberversion 7.15.116926
    DirectX-Version 10


    Die 3D-Einstellungen meiner Grafikkarte lauten:


    Anisotrope Filterung = Anwendungsgesteuert
    Antialiasing - Gamma-Korrektur = Ein
    Antialiasing-Modus = Anwendungsgesteuert
    Antialiasing - Transparenz = Aus
    Dreifach-Puffer = Aus
    Erweiterungsbeschränkung = Aus
    Fehlermeldung = Aus
    Mipmaps erzwingen = Bilinear
    Multi-Display/gemischte GPU-Beschleunigung = Einzel-Display-Leistungs-Modus
    Stereo-Anzeigemodus = Integrierten DIN-Anschluss verwenden
    Texturfilterung - Negativer LOD-Bias = Zulasssen
    Texturfilterung - Optimierung von anisotropen Mustern = Aus
    Texturfilterung - Trilineare Optimierung = Ein
    Texturfilterungsqualität = Hohe Leistung
    Threaded-Optimierung = Auto
    Vertikale Synchronisierung = Automatisch aus
    Übereinstimmende Textur-Clamp = Hardware verwenden


    Schließlich noch die Konfiguration der Loksim3d-Darstellung:


    Sichtweite = 300
    Sichtweite Berge = 1000
    Nebel = Aus
    Qualität = 5 (alles zeichnen)
    Landschaft zeichnen = Ein
    Beim Start Landschaftsberechnung sofort starten = Ein
    Bei stehendem Zug Landschaft berechnen = Aus
    Unterhalb dieser Framerate Grafik vereinfachen = 15
    Führerstand ausblenden = Aus
    Buchplan und Fahrplan ausblenden = Aus
    2D-Darstellung mittels GDI = Aus
    Texturen glätten = Ein
    Hohe Farbtiefe = Aus
    Cache verwenden = Aus
    Maximale Texturgröße = 256
    Texturhandling = Alle Texturen laden und im Speicher halten
    3D-Treiber = Direct3D T&L HAL
    Vollbild = Ein
    Bildschirmauflösung für Vollbild = 1280 x 1024 x 32
    Zusi-Display verwenden = Aus


    Um die Rechnerleistung zu erhöhen, habe ich bereits alle unnötigen Hintergrunddienste über den Taskmanager deaktiviert, die klassiche Windows-Darstellung gewählt sowie Internet-Verbindung und Antivirenprogramm ausgeschaltet. Ferner ist anzumerken, dass bei verminderter Qualität (Stufe 3 - auch unwichtige Objekte zeichnen) die Anzahl der Ruckler zwar abnimmt, jedoch an diversen Punkten noch hoch genug ist, um das Fahrvergnügen zu schmälern, was auch das baum- und oberleitungsfreie Landschaftsbild nicht verhindert. Bei einer 2D-Darstellung des Führerstandes gibt es sogar noch weniger fps bei entsprechend mehr Rucklern.


    Fraglich ist, ob und ggf. auf welche Weise dem Problem wirksam begegnet werden kann. Ideal wäre es natürlich, während der gesamten Zugfahrt eine flüssige, ruckelfreie Darstellung bei 60 fps zu erreichen. Reicht es dafür bereits aus, die Konfiguration der Darstellung von Grafikkarte und Loskim zu verändern und bzw. zu kombinieren? Sind die Ruckler auf die oben genannten Hardwarekomponenten zurückzuführen, sodass etwa eine Grafikkarte mit größerem Speicher oder noch mehr Arbeitsspeicher ein ruckelfreies Fahren ermöglichen? Liegt es an einem zu langsam arbeitenden Prozessor? Oder existiert einfach keine Lösung, eine zumindest merkliche Verbesserung des Bildflusses herbeizuführen?


    Infolge der gehäuft auftretenden Ruckler ist der Realitätsgrad extrem herabgesetzt und somit meine Freude am Fahren erheblich getrübt. Daher bitte ich um fachkundigen Rat, insbesondere seitens der Entwickler und Kenner von Loksim3d.


    Beste Grüße
    Peter

  • Hallo Peter


    Willkommen im Forum.


    Wie verhält es sich, wenn du den 3D-Treiber von Direct3D T&L HAL auf den Treiber deiner Grafikkarte (bzw zum Testen auch auf andere dort angebotene Werte) setzt?


    Miguel


  • Sichtweite = 300
    Sichtweite Berge = 1000


    Mit diesen Einstellungen muss es ruckeln, die Sichtweiten sind viel zu gering eingestellt.
    Versuch es mal damit:
    Sichtweite = 1000
    Sichtweite Berge = 2500
    Unterhalb dieser Framerate Grafik vereinfachen = 0
    Maximale Texturgröße = 512


    Damit sollte die Demostrecke zufriedenstellend laufen.


    Zitat

    Das Kuriose hierbei: Die Anzahl der Frames pro Sekunde (fps) liegt meist bei 60, in Bereichen mit aufwändigeren und mehr Texturen wie Bahnhöfen immerhin bei etwa 30.


    Diese hohen Werte resultieren vor allem aus der zu gering eingestellten Sichtweite von 300 m. Die Sichtweite Berge hat zwar auch Auswirkungen, aber in geringerem Maße. Mit den obigen Werten wird die Bildrate niedriger und gleichmäßiger sein.


    Gruß
    Nemo

  • Zunächst einmal vielen Dank für eure Beiträge.


    @Miguel: Die Verwendung des Grafikkarten-Treibers bewirkt leider keine Besserung.


    Nemo: Richtig ist, dass, abgesehen von gelegentlich noch immer auftretenden, kurzen Hängern, die Umstellung auf die von dir vorgeschlagenen Sichtweiten einen gleichmäßigeren Bildfluss insofern bewirkt, als dass die kurz hintereinander auftauchenden Ruckler - ich nenne sie mal Nachladeruckler - zumeist ausbleiben. Diese habe ich lediglich dann festgestellt, wenn sich die fps-Rate von 20 auf 30 erhöhte. Ob dies zufriedenstellend ist oder nicht, hängt ab von den persönlichen Ansprüchen an die Performance. Gestestet habe ich die Strecke von Hainfurt nach Altenstein. Bei der Fahrt durch die Bahnhöfe sowie im Wald bei Altenstein ruckelt es noch sehr stark, obwohl die fps-Rate hier jeweis bei ca. 20 liegt. Auf den übrigen Streckenabschnitten werden um die 30 fps erreicht. Hier ruckelt es merklich weniger stark, allerdings noch stark genug, dass es wahrnehmbar ist. Lediglich bei der Ankunft in Altenstein, somit am Ende der Strecke, schnellt die fps-Anzahl hoch auf 60. Eigentlich müsste doch bereits bei 30 fps die Bildfolge flüssig sein. Meine bisherige Erfahrung zeigt indes, dass ich bei Loksim3d erst ab 60 fps eine gänzlich flüssige Darstellung wahrnehme, vorausgesetzt, es treten keine Ruckler auf. Während der Fahrt scheinen die Masten der Oberleitung bei den aktuellen 30 fps leicht ruckelhaft vorbei zu ziehen. Diese Ruckler sind von der Gestalt her andersartig als die Nachladeruckler. Bei den durch die zuvor geringeren Sichtweiten erreichten 60 fps schnellten die Masten gänzlich flüssig vorbei, zumindest in den Phasen ohne Nachladeruckler. Im Ergebnis überzeugt mich die jetzige Performance noch nicht. Mein Ziel ist, die fps-Anzahl konstant auf 60 fps zu bringen und eine komplett ruckelfreie Bildfolge zu erreichen. Die Frage ist nur, ob dies überhaupt realisierbar ist, beispielsweise unter Verwendung eines höheren Arbeitsspeichers oder einer anderen Grafikkarte. Ich bitte weiterhin um rege Stellungnahmen :).


    Beste Grüße
    Peter

    Einmal editiert, zuletzt von Peter ()

  • Hallo Peter,


    das wird leider ein Wunschtraum bleiben.



    Mein Ziel ist, die fps-Anzahl konstant auf 60 fps zu bringen und eine komplett ruckelfreie Bildfolge zu erreichen. Die Frage ist nur, ob dies überhaupt realisierbar ist, beispielsweise unter Verwendung eines höheren Arbeitsspeichers oder einer anderen Grafikkarte.


    Weder mehr Arbeitsspeicher (2 GB sind für Loksim vollkommen ausreichend) noch eine andere Grafikkarte würden da etwas bringen. Vielleicht wäre eine mit einer Taktfrequenz von 6 GHz arbeitende CPU die beste Alternative. Sämtliche Objektberechnungen werden im Loksim durch die CPU erledigt und je mehr Objekte gleichzeitig darzustellen sind, desto geringer wird die Bildrate. Durch das Variieren der Sichtweiten kann man für bestimmte Strecken die kurzen Rucke vermeiden, es treffen dann manchmal weniger gleichzeitig zu berechnende entfernte (Sichtweite Berge) und nähere (Sichtweite) Objekte zusammen.
    Die Grafikkarte hat da weniger Einfluss auf die Performance, ein Austausch wirkt da nach meiner Erfahrung nur marginal. Eine Verbesserung habe ich im Lauf der Jahre auch immer nur durch einen schnelleren Prozessor erzielen können.


    Eine andere Möglichkeit ist die Verwendung solcher Strecken aus früherer Zeit des Loksim, da kann man durchweg mit 60 fps fahren.


    [Blockierte Grafik: http://img828.imageshack.us/img828/108/wolle1.jpg]



    Ist zwar etwas eintönig, dafür ist diese Strecke aber 150 km lang.


    Aber im Ernst: Diese Diskussion über die Erhöhung der Bildraten wird schon seit langer Zeit immer wieder geführt und gerade mit der Einführung von Windows Vista und Windows 7 lebte sie immer wieder auf. Man kann ein paar Tipps geben und dann ist das Ende der Fahnenstange erreicht. Mit den Einstellungen für NVidia-Grafikkarten kenne ich mich nicht aus (habe immer nur welche von ATI benutzt), aber auch mit falschen Einstellungen kann man sich die Bildrate ganz schön drücken. Die beste Performance erreiche ich mit diesen Einstellungen.


    [Blockierte Grafik: http://img708.imageshack.us/img708/4075/3deinstellungen.jpg]



    Allerdings verwende ich Windows XP, mit Windows 7 sind die Bildraten im Vergleich auch niedriger.


    Gruß
    Nemo

  • Hallo Nemo,


    ich danke dir für deine ausführliche Antwort.


    Könntest du einen Prozessor speziell für Loksim3d empfehlen? Sollte es ein mehrkerniger sein?


    Gruß
    Peter

  • Hallo Peter,


    leider überschätzt Du da mein Wissen und Können. Ich bin beim Computer auch nur Autodidakt und kein Experte, experimentiere aber im Rahmen meiner Möglichkeiten gern mal zur Gewinnung neuer Erkenntnisse herum.



    Könntest du einen Prozessor speziell für Loksim3d empfehlen?


    Das kann ich leider nicht, da ich mit meinem Rechner immer der aktuellen Entwicklung hinterherhinke. Ich habe noch einen Athlon 64 4000+ mit 2,4 GHz (Sockel 939), also schon im Handel gar nicht mehr erhältliche Hardware, bin damit aber vollkommen zufrieden.


    Zitat

    Sollte es ein mehrkerniger sein?


    Ich glaube nicht, dass die Loksimsoftware gezielt mehrere Kerne nutzen kann. Dein Rechner ist eigentlich von den Parametern der Hardware her schon sehr gut für die Simulation geeignet. Das aktuelle Hauptproblem dürfte eher sein, dass der Loksim für die 3D-Darstellung noch ältere DirectX-Versionen benutzt und daher auf Betriebssystemen mit DX oberhalb von 9c (Windows Vista = DX 10, Windows 7 = DX 11) schlechter läuft. Die aktuellen Betriebssysteme können mit DX 7- oder DX 8-Inhalten im Programm wohl nicht mehr viel anfangen und dann wird eben zwecks 3D-Berechnung der Objekte rechnerintern improvisiert, was zu Verzögerungen führt. Die grafische Ausgabe durch die Grafikkarte dürfte nicht das Problem sein, sie bekommt ja die durch die CPU berechneten fertigen 3D-Gerüste der Objekte geliefert, bekleidet diese nur mit den gerade aktuell erforderlichen Texturen und schickt das Ergebnis zum Monitor. Wenn weniger zugeliefert wird kann auch nur weniger ausgegeben werden. Nur deshalb ist Windows XP mit seinem abwärtskompatiblen DirectX 9c vorläufig noch die günstigere Alternative für die Loksimnutzung.


    Mehr kann aus meiner Sicht zum Thema Performance eigentlich nicht gesagt werden.


    Gruß
    Nemo

  • Hallo Nemo,


    wird denn Loksim3d ab Version 2.8 DirectX 10 und höher unterstützen?


    Gruß
    Peter

  • Hallo Peter,


    die Frage kann ich nicht beantworten. Ich bin kein Programmentwickler und weiss auch nicht mehr als im Forum dazu von lukash geschrieben wurde.


    Gruß
    Nemo