Ergebnis 1 bis 3 von 3
  1. #1
    Peachy keen Avatar von Toloc
    Registriert seit
    06.07.2008
    Ort
    In your mind
    Beiträge
    506

    Standard [Tutorial/Guide] Konsolebefehle und Konfigfile für bessere Performance/Optik

    'Tag zusammen,

    DA:I bietet über die Spieloptionen bereits recht flexible Möglichkeiten das Spiel graphisch an das eigene System anzupassen, aber mit ein bisschen Getrickse kann man durchaus wenn nötig noch ein paar FPS mehr rausholen oder, wenn man die Reserven hat, die Optik noch weiter verbessern.

    Erstmal die Basics:

    Dragon Age: Origins und der Nachfolger nutzten Abkömmlinge der Aurora Engine, die erstmals für Neverwinter Nights und später in Knight of the Old Republic genutzt wurde.
    Dragon Age Inquisition nutzt jetzt die FrostBite 3 Engine, mehr oder weniger die selbe wie Battlefield 4.
    Auf der einen Seite heisst das, dass Guides wie dieser hier, die aber für BF4 geschrieben wurden, meistens auch auf DA:I anwendbar sind, auf der anderen Seite, dass Konsolenkommandos und Cheats die in beiden Vorgängern vorhanden waren im neuen Teil nicht funktionieren!
    Ich würde das nicht für speziell erwähnenswert halten, hätte ich während meiner Recherche nicht auf mehreren Seiten das Gegenteil gelesen. Alte Konsolenkommandos sind nicht "ungetestet", "unbestätigt" oder "könnten funktionieren", die sind schlicht nicht vorhanden! Cheats gibt es so weit bis jetzt bekannt ist auch keine mehr. Soviel vorweg.


    Kommandokonsole und Kommandos allgemein:

    Um die Konsole zu aktivieren sind in DA:I keine besonderen Schritte nötig. Drückt im laufenden Spiel einfach Zirkumflex (^ unter Esc) und die Konsole öffnet sich, schliessen geht genauso, Befehle werden mit Enter bestätigt. Angefangene Kommandos können mit Tab automatisch vervollständigt werden.
    Die meisten Kommandos sind einfache Ein/Aus Schalter die mit "1" an- bzw. mit "0" ausgeschaltet werden, ein paar brauchen Zahlenwerte.

    Um bspw. die FPS während des Spiels einzublenden öffnet ihr die Konsole, tippt "PerfOverlay.DrawFps 1" und bestätigt mit Enter.

    Das Kommando "list" gibt eine Liste mit gültigen Befehlen aus.


    Kommandos bei Spielstart automatisieren:

    Bei einigen Befehlen ist es sinnvoll sie bei jedem Spielstart neu auszuführen. Das kann man auch sehr einfach automatisch vom Spiel selbst erledigen lassen. Dazu zwei Möglichkeiten.

    Die erste Möglichkeit ist, wie hier im Forum im Thread zur FPS Begrenzung in Zwischensequenzen beschrieben die Desktopverknüpfung zu bearbeiten. Das wird bei einer großen Menge an Befehlen aber unübersichtlich.

    Die andere Möglichkeit ist eine kleine Datei im Spielverzeichnis anzulegen, die bei jedem Spielstart automatisch ausgeführt wird:
    Dazu wechselt ihr einfach im Explorer in euer Installationsverzeichnis (Am schnellsten Rechtsklick auf die Desktopverknüpfung und "Pfad öffnen" wählen).
    Dort, im selben Verzeichnis wie die exe, legt ihr eine neue Textdatei namens "user.cfg" an. Achtet auf die Dateiendung.
    Die gerade erstellte Datei öffnet ihr in einem einfachen Textedtor wie Notepad. Dort könnt ihr einfach beliebig viele Kommandos untereinander eingeben.
    Das Spiel erkennt selbständig das eine "user.cfg" vorhanden ist und führt beim Start alle darin enthaltenen Kommandos aus.

    Beispielinhalt einer user.cfg die die FPS-beschränkung in Cutscenes aufhebt (bzw. auf 60 anhebt):
    Code:
    GameTime.MaxSimFps 60
    GameTime.ForceSimRate 60.0
    Später folgen noch ein paar mehr oder minder nützliche Kommandos und ein paar Erfahrungsberichte damit.

    EDIT: Neeeein, ich hab mich ausgerechnet im Titel vertippt. Ist das irgendwie korrigierbar?

    MfG
    Toloc
    Geändert von Toloc (13.01.2015 um 13:52 Uhr)
    I walked worlds of smoke and half-truths, intangible. Worlds of torment and of unnamable beauty.
    Opaline towers as high as small moons. Glaciers that rippled with insensate lust.
    And one world with nothing but shrimp. I tired of that one quickly.


  2. #2
    Peachy keen Avatar von Toloc
    Registriert seit
    06.07.2008
    Ort
    In your mind
    Beiträge
    506

    Standard

    Ich wollte ursprünglich zusätzlich zu den jeweiligen Befehlen den Performancegewinn/-verlust auf meinem System dabei schreiben.
    Dazu wollte ich das interne Benchmark Tool benutzen und habe gestern einige ziemlich langweilige Testreihen gemacht.

    Folgende Erkenntnisse:
    1. Die Performance im Benchmark hat praktisch nichts mit der Performance im Spiel zu tun. Egal, ob ich normales Gameplay oder Zwischensequenzen betrachte.
    2. In jedem Testdurchlauf waren meine durchschnittlichen FPS laut Auswertung deutlich geringer(!) als meine minimalen FPS.

    Ergo: das Tool ist Humbug oder zumindest auf meinem System nicht zum Testen geeignet.

    Die meisten Einstellungen hier setzt man am besten direkt in die oben beschriebene user.cfg, es ist aber u.U. sinnvoll vorher mit der Konsole zu testen.

    Ich habe noch nicht alles hier getestet und alles hier spiegelt nur meinen aktuellen Wissensstand da. Wenn ihr Fehler findet oder etwas besser wisst, korrigiert mich bitte.

    Vielleicht mache ich irgendwann noch ein paar Vergleiche mit Fraps oder so, aber bis dahin erstmal nur ein paar Befehle ohne objektiven Performancebericht, nur mit meiner persönlichen Wahrnehmung oder wenigstens Einschätzung:


    Performance Monitoring und Systeminfos

    Folgende Befehle blenden aktuelle Performancedaten ein oder zeigen Informationen zu Einstellungen und System an. Die am besten direkt im Spiel in der Konsole eingeben, nicht in die user.cfg

    FPS einblenden:
    Code:
    PerfOverlay.DrawFps 1
    Performance Graph zeichnen:
    Code:
    PerfOverlay.DrawGraph 1
    CPU/GPU Auslastung
    anzeigen (nützlich um zu sehen welche von beiden die Performance begrenzt):
    Code:
    PerfOverlay.DrawCPUGraph 1
    PerfOverlay.DrawGPUGraph 1
    Systeminfos einblenden:
    Code:
    Render.DrawScreenInfo 1



    Triple Buffering

    Zu so ziemlich keinem Trick um ein paar mehr FPS zu bekommen hab ich der Art widersprüchliches gelesen, das war auch der Hauptgrund warum ich das ursprünglich selber durchtesten wollte.
    Aus technischer Sicht sollte Triple Buffering die Performance bei aktiviertem VSync erhöhen/stabilisieren im Tausch gegen etwas höhere Speicherauslastung..
    Ich habe aber auch Guides gesehen die empfehlen das Feature zu deaktivieren um die Performance zu verbessern oder das ganze sogar als Alternative zu VSync empfohlen haben, was keinerlei Sinn macht. Laut wieder anderen ist Triple Buffering in der Engine so oder so automatisch an...
    Würde mich über Erfahrungen anderer damit freuen, da ich ehrlich gesagt mittlerweile selbst recht verwirrt bin was das ganze jetzt in DA:I bewirkt.
    Dies ist eine der Einstellungen die man am besten in der user.cfg unterbringt.

    Zum aktivieren:
    Code:
    RenderDevice.TripleBufferingEnable 1
    Zum deaktivieren:
    Code:
    RenderDevice.TripleBufferingEnable 0
    Triple Buffering bedeutet kurz gesagt, dass drei Bilder im Voraus berechnet werden um die Performance mit VSync zu stabilisieren.
    Es wird meist zusätzlich empfohlen, eine Einstellung namens "renderdevice.renderaheadlimit" auf 2 zu reduzieren, was aber Triple Buffering so weit ich verstehe ad absurdum führt, da dann wieder nur zwei Bilder im Voraus berechnet würden...
    Andere, meist die die auch empfehlen Triple Buffering komplett zu deaktivieren empfehlen sogar das "renderdevice.renderaheadlimit" auf 0 zu setzen, was angeblich auch einen Performance Boost bringen kann.

    Zusammengefasst sind die Erfahrungen hier sehr widersprüchlich und wahrscheinlich sehr vom System abhängig.

    Werde das weiter testen, würde mich aber wie gesagt über Berichte anderer freuen.

    Rein logisch würde ich Einstellungen wie die hier empfehlen:
    Code:
    RenderDevice.TripleBufferingEnable 1
    renderdevice.renderaheadlimit 3

    Motion Blur

    Das ist der Verwischeffekt der über das Bild gelegt wird wenn z.B. die Kamera geschwenkt wird. Ist Geschmackssache, ob man's mag; das Deaktivieren lässt das Spiel zumindest subjektiv etwas flüssiger laufen.
    Auch ein Befehl den man am besten in die user.cfg packt.

    Code:
    WorldRender.MotionBlurEnable 0
    Es gibt Guides die an der Stelle mehr Befehle beinhalten; die sind hier einfach überflüssig, aus ist aus.


    Ambient Occlusion (Umgebungsverdeckung)

    Um AO komplett auszuschalten, nutzt ihr folgenden Befehl (wieder in die user.cfg):
    Code:
    WorldRender.DynamicAOEnable 0
    Ja, den gibts auch direkt in den Spieleinstellungen. Der direkte Befehl geht aber anscheinend über die normale Einstellung hinaus. Es gibt einige die dadurch noch ein paar mehr FPS als nur durch das deaktivieren in den Optionen bekommen haben.


    DirectX 11

    Wenn es ganz extreme Performanceprobleme gibt, gibt es den Tip DX11 komplett zu deaktivieren und auf die Version 10 zurück zufallen:
    Code:
    RenderDevice.Dx11Enable 0
    RenderDevice.Dx11Dot1Enable 0
    RenderDevice.Dx11Dot1RuntimeEnable 0
    Auch in die user.cfg
    Dabei sollte angemerkt werden, dass DX 11 auch einige Features enthält die die Performance erhöhen, so dass dieser Tipp wohl wieder sehr systemabhängig ist!


    LightTileCsPathEnable

    Code:
    WorldRender.LightTileCsPathEnable 0
    user.cfg...
    Ich habe ehrlich keine Ahnung was das tut. Hat anscheinend was mit Berechungen bei Lichtquellen zu tun. Auf bestimmten GPUs kann es anscheinend die Performance etwas verbessern die Einstellung abzuschalten, und das ohne merklichen Unterschied in der Optik. Also warum nicht?



    Supersampling

    Eine der interessantesten Möglichkeiten die ich gefunden habe ist das aktivieren von Supersampling.
    Die anderen Tricks hier sollen die Performance über die normalen Spieleinstellungen hinaus erhöhen. Der hier verbessert die Optik noch weiter, aber mit immensen Einbussen bei der Performance!
    Praktisch bewirkt die Einstellung, dass das Bild mit einer höheren Auflösung als eingestellt gerendert und dann runter gerechnet wird. Der Effekt ist im Prinzip eine sehr hochwertige Form der Kantenglättung. Kann, wenn man die Reserven hat, also eine der Anti-Alias Optionen ersetzen oder sogar ergänzen.
    Das ist übrigens die selbe Einstellung wie einer der Regler in den Grafikoptionen. Der lässt sich aber nur auf 1.0 oder kleiner einstellen. Mit dem manuellen Befehl kann man einen beliebigen Wert setzen.
    Auch hier wieder in die user.cfg
    Code:
    Render.ResolutionScale 1.0
    Achtung:
    "1.0" heisst das Bild wird in der eingestellten Auflösung berechnet und angezeigt, default also. Mit "2.0" würde das Bild mit doppelter Höhe und doppelter Breite berechnet, wäre also viermal so gross! Das Wachstum des Bildes und damit auch die Anforderung an die GPU sind hier quadratisch, d.h. 1.0 -> 1x, 2.0->4x, 4.0->16x! Wenn ihr ~2-fache Größe wollt, nehmt ihr den Wert "1.4".
    Es ist hier sinnvoll erstmal im Bereich 1.0 bis 2.0 zu testen, alles andere gibt selbst aktuelle Hardware wohl nicht wirklich her.
    Geändert von Toloc (14.01.2015 um 18:57 Uhr)
    I walked worlds of smoke and half-truths, intangible. Worlds of torment and of unnamable beauty.
    Opaline towers as high as small moons. Glaciers that rippled with insensate lust.
    And one world with nothing but shrimp. I tired of that one quickly.


  3. #3
    P-Buddy Avatar von Ryudo
    Registriert seit
    15.04.2006
    Beiträge
    4.935

    Standard

    Kein Spiel mit Konsole ist vor dir sicher . Schade, dass man nur die Optik ändern kann. Ich würde viel lieber das Spielgeschehen manipulieren.

    "Besser schweigen und als Narr scheinen, als sprechen und jeden Zweifel beseitigen."


    Name: Despot
    Adoptiere auch eins! @Pokémon Waisenhaus

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •