Das SmoothVideo-Projekt verwendet die Frame-Interpolation, um die fps von Videos von 24 auf 60 zu erhöhen. Die Ergebnisse sind ziemlich beeindruckend . Ich habe mich gefragt, ob dies angewendet werden kann und ob es in Videospielen gut aussehen würde.
Es verbraucht viel weniger Ressourcen als das Rendern aller Frames, sodass Rigs am unteren Ende in der Qualität von viel besseren Rigs mit einem gewissen Kompromissniveau gerendert werden können. Ich weiß, dass es nicht so genau ist und die Eingangslatenz geringfügig erhöhen würde, da es am neuesten Frame festhalten muss, um den interpolierten Frame erzeugen und einfügen zu können. Es ist jedoch nicht so schlecht wie ein Vollbild. Nach meiner Überlegung wäre nur die Verzögerung die Interpolationszeit plus die Hälfte der ursprünglichen Aktualisierungszeit für fps. Für 30 fps wären es also 33 ms / 2 + Interpolationszeit.
Vielleicht würde diese Verzögerung es für schnelle First-Person-Spiele in der Vergangenheit ungeeignet machen, aber ich bezweifle, dass es ein Hindernis für langsamere Spiele wäre.
Die Verzögerung wird bei höheren Startraten geringer, daher würde ich denken, dass es sich sicherlich lohnt, von 60 fps auf über 100 fps zu wechseln, was die Erfahrung verbessert, wenn auch nur geringfügig, während das System extrem belastet wird.
quelle
Antworten:
Ein System in dieser Richtung wurde in The Force Unleashed verwendet . Andere Titel, die es verwendet haben, sind mir jedoch nicht bekannt.
quelle
Ja, es ist möglich, aber nicht ohne Komplikationen.
Während die Frame-Interpolation bei Videos in Echtzeit funktionieren kann, ist dies bei Videospielen nicht unbedingt der Fall. Obwohl dies für Videos in Echtzeit verarbeitet wird, kann die Software auf das nächste Bild "vorausschauen". Dies ist eine ziemlich kritische Komponente der Interpolation. Hier kommt das Problem bei Spielen ins Spiel. Meistens wurde der nächste nächste Frame noch nicht gerendert! Die Software kennt also den nächsten Punkt in der Interpolation nicht.
Es besteht sicherlich die Möglichkeit, das Spiel ein oder zwei Frames hinter sich zu lassen, um Ihrer Interpolationssoftware die Frames zu geben, mit denen sie arbeiten muss. Dies funktioniert jedoch nicht so gut für interaktive Medien. Was jetzt auf dem Bildschirm angezeigt wird, wird von der empfangenen Eingabe verzögert. Dies macht die Verarbeitung von Eingaben schwieriger und bietet eine gute Reaktionsfähigkeit auf das Spiel. Es ist, als würde man eine künstliche Leistungsverzögerung einbauen. Darüber hinaus ist es unwahrscheinlich, dass native Unterstützung in einer der großen Spiel-Engines vorhanden ist, was bedeutet, dass Sie Ihre eigene schreiben.
quelle
Ja, dies ist nicht nur möglich, sondern jetzt verfügbar: Schließen Sie Ihren Spiel-PC / Ihre Spielekonsole an einen Fernseher an, der Bewegungsinterpolation verwendet . Die Meinungen variieren, und dies ist aufgrund der Interpolationsverzögerung weniger für zuckende Spiele wie FPS geeignet, aber für das Hochskalieren von Bildraten von 60 auf 120 Hz funktioniert es einwandfrei.
Ob dies im Spiel selbst möglich ist, gibt es noch nicht genug Impulse, da die meisten Monitore diese hohen Bildraten nicht ausgeben können. 120 + Hz-Monitore für Computer sind weniger verbreitet, obwohl dies nach dem Stand der Fernsehgeräte bald passieren kann. Ein Monitor mit hoher Bildwiederholfrequenz hat auch dann Vorteile, wenn das Spiel diese Bildraten nicht erreichen kann: Neben der oben genannten TV-basierten Bewegungsinterpolation kann es flüssigere Bilder bieten, wenn das Spiel Bilder ausgeben kann, wenn sie bereit sind, anstatt sie zu synchronisieren up ala v-sync. Sobald 120 + Hz-Monitore an der Tagesordnung sind, erwarte ich, dass Spieleentwickler aufholen und mehr Tricks anwenden, einschließlich Bewegungsinterpolation, um diese hohen Bildraten zu erreichen.
quelle
Die Verzögerung zwischen dem Zeitpunkt, zu dem der Benutzer etwas tut, und dem Zeitpunkt, zu dem das Ergebnis auf dem Bildschirm angezeigt wird, sollte niemals 100 ms überschreiten, da der Benutzer sonst möglicherweise die Verzögerung bemerkt.
Der Monitor des Benutzers benötigt möglicherweise etwa 30 ms, um das empfangene Bild anzuzeigen. Es sind viel schnellere Monitore verfügbar, aber viele durchschnittliche Benutzer haben diese nicht. Wenn die Grafikkarte 30 Bilder pro Sekunde berechnet, dauert die Berechnung eines Bilds 33 ms. Ich gehe von 30 fps aus, da wir keine Frame-Interpolation benötigen, wenn das Spiel bereits mit 60 fps läuft. Wenn wir dreifache Pufferung verwenden, wird diese auf 66 ms verdoppelt. Das sind 90 ms.
Ich denke, wir brauchen eine dreifache Pufferung, damit die Frame-Interpolation Sinn macht. Wenn wir also zusätzlich eine Frame-Interpolation verwenden, um 60 fps zu erhalten, erhöhen wir die Verzögerung um einen 60-Hz-Frame, was einer weiteren Interpolationszeit X von 17 ms + entspricht, was uns auf 107 ms + X bringt. Das Problem ist nicht die Interpolation als Dies ist jedoch die Tatsache, dass wir uns bereits dem Punkt nähern, an dem die Latenz spürbar ist, bevor wir die Interpolation einführen.
Es wäre wahrscheinlich in Ordnung für ein Spiel, das hauptsächlich ein virtueller Film ist, aber in einem FPS würden die Benutzer bemerken, dass etwas mit dem Zielen nicht stimmt.
quelle