Update Firebirds: Motion Blur in War Thunder

Update Firebirds: Motion Blur in War Thunder

15 November 2024DEV-BLOG

Heute werfen wir einen Blick auf Motion Blur (Bewegungsunschärfe) in War Thunder - was es ist, wie es im Spiel implementiert wurde und welchen Herausforderungen wir uns stellen mussten. War Thunder kommt ins Kino!

Was ist Motion Blur?

In einem Videospiel werden die Bilder von Grund auf neu erstellt, jedes Bild zeigt einen einzigen Zeitpunkt.

Echte Kameras oder sogar unsere Augen funktionieren nicht so. Die Aufnahme eines Bildes braucht Zeit, und während dieser Zeit steht die Welt nicht immer still. Wenn sich ein Objekt während der Aufnahme bewegt, wird es auf dem endgültigen Bild an all diesen Stellen gleichzeitig erscheinen. Dies wird als Motion Blur bezeichnet.


Screenshot aus War Thunder Seek & Destroy-Trailer

Erklärung der Grundlagen

Um den Motion Blur Effekt zu simulieren, müssen wir wissen, wie sich jedes Pixel seit dem letzten Frame bewegt hat. Dazu müssen alle Animationen und Bewegungseffekte ihre aktuellen und alten Positionen melden. Das kann einer der schwierigsten Teile sein, damit diese Funktion funktioniert. Aber zum Glück haben wir dies bereits für Anti-Aliasing-Techniken gelöst. Die wenigen Animationen, die dies nicht unterstützten, waren sehr leicht zu erkennen, da sie durch Motion Blur zu einem großen verschwommenen Fleck wurden. Also haben wir sie schnell behoben!

Als Ausgangspunkt haben wir eine bewährte Technik zur Implementierung des Effekts verwendet, über die ihr hier mehr lesen könnt. Wir prüfen, wo ein Pixel im letzten Frame war und wo es jetzt ist, dann verwischen wir dieses Pixel entlang der Linie dazwischen.


Saubere Trennung von Vorder- und Hintergrund

Um die Berechnungen effizienter zu gestalten und einige Kanten zu glätten, wird die Linie auch in der Vorwärtsrichtung unscharf gemacht, indem die Linie über die aktuelle Pixelposition hinaus verlängert wird. Um die Berechnungen weiter zu beschleunigen, treffen wir für größere Pixelblöcke gemeinsame Entscheidungen auf der Grundlage ihrer allgemeinen Richtung.

Der Abstand jedes Pixels von der Kamera muss ebenfalls berücksichtigt werden, damit wir den Hintergrund und den Vordergrund separat unscharf machen können. Die unscharfe Linie eines Hintergrundpixels kann manchmal hinter einem noch stehenden, scharfen Objekt im Vordergrund verlaufen. In anderen Fällen müssen wir den Hintergrund scharf halten, während ein Vordergrundpixel darüber verschwimmt. Wenn zwei Objekte in einem einzigen Pixel verschwimmen, ist auch ihre individuelle Geschwindigkeit wichtig, denn manchmal muss keines von beiden scharf bleiben.

Technische Herausforderungen in War Thunder

Natürlich mussten wir Anpassungen vornehmen, um es an unsere Bedürfnisse anzupassen. Um zu entscheiden, wie ein Pixel weichgezeichnet werden soll, müssen wir seine Geschwindigkeit kennen. Aber was ist, wenn es keine einzige Antwort gibt, weil an einem Punkt mehr als eine Sache sichtbar ist? Ohne besondere Sorgfalt ist die Transparenz für den Algorithmus unsichtbar.

In War Thunder haben wir Cockpits aus Glas und farbige Lichter an Flugzeugen, die über Bäume fliegen und dabei die Schallmauer durchbrechen. Also mussten wir Glasoberflächen irgendwie handhaben. Hier haben wir unterschiedliche Geschwindigkeiten auf ein und demselben Pixel. Das Glas ist gleichmäßig, aber der Wald dahinter ist sehr schnell.

Wie bei der Hintergrund-Vordergrund-Trennung haben wir einen ähnlichen Trick angewandt. Wenn wir etwas durch Glas sehen, behandeln wir das als eine Kategorie, während direkt sichtbare Objekte eine andere sind. Wir überlagern nicht eine Kategorie mit der anderen, sondern erlauben eine Vermischung innerhalb der Kategorien.

So erhalten wir Bilder, bei denen der Hintergrund durch das Glas verschwommen ist, das Glas selbst aber seine scharfe Silhouette behält.

Hinweis: Zum Zeitpunkt der Erstellung dieses Beitrags ist die Sonderbehandlung von Transparenz nur aktiviert, wenn “Bewegungsunschärfe” auf “maximal” eingestellt ist.


Unscharfer Hintergrund durch scharfes Glas


Unscharfer Hintergrund durch scharfes Glas

Einschränkungen

Da wir nur eine bekannte Geschwindigkeit für jedes Pixel haben, werden sich schnell bewegende transparente Objekte nicht unscharf dargestellt, sondern nur Hintergrundobjekte, die man durch sie hindurch sehen kann. Das bedeutet auch, dass Reflexionen auf solchen Oberflächen nur auf der Grundlage des Hintergrunds unscharf gemacht werden können.

Um einen perfekten Effekt zu erzielen, bräuchten wir perfekte Informationen. Selbst wenn wir die Bildschirmposition eines Pixels sowohl in der Vergangenheit als auch im aktuellen Bild kennen, wissen wir nicht, welchen Weg es zwischen den beiden Bildern genommen hat. Wir lassen ihn einfach in einer Linie verschwimmen, als ob er sich linear bewegt hätte, was fast immer ausreicht. Eine wichtige Ausnahme bilden die Räder von Fahrzeugen. Hier kann sich ein Punkt auf dem Rad in der Zeit eines einzigen Bildes auf die andere Seite bewegen. Hier von einer geraden Bewegung auszugehen, ist weit von der Realität entfernt.

Vorläufig ist dieses Problem noch nicht gelöst, die Räder benötigen eine eigene Methode zur korrekten Motion Blur, die auf anderen Prinzipien beruht.


Motion Blur im Vordergrund mit übermäßig unscharfen Rädern

Ist es realistisch?

Motion Blur ist nicht nur bei sich schnell bewegenden Objekten sichtbar, sondern auch, wenn sich die Kamera selbst bewegt. Bei Filmen ist dies ein sehr häufiger Effekt, aber in unserem natürlichen Sehvermögen bleibt das Auge normalerweise auf Objekten haften, so dass die Welt für uns gleichmäßiger erscheint. Motion Blur in Videospielen ist filmisch - sie sieht aus wie ein Film, der mit Kameras gedreht wurde. Aber nicht so, als sähe man die Welt mit den eigenen Augen.

Um das menschliche Sehen besser zu simulieren, haben wir eine Option hinzugefügt, mit der Motion Blur, durch Kamerabewegung, deaktiviert werden kann. Dadurch werden sich schnell bewegende Objekte wie vorbeifliegende Flugzeuge oder explodierende Trümmer immer noch unscharf dargestellt, aber das Bild bleibt scharf, wenn ihr euch nur umseht.


Kameraunschärfe aus, nur der Geschützturm bewegt sich


Turmdrehung mit maximalem Motion Blur

Ist Motion Blur gut für unsere Spiele?

Wir hören diese Frage oft und haben auch intern darüber diskutiert. Die einen sagen, dass es das Gefühl von Bewegung vermittelt und das Spielerlebnis noch intensiver macht. Andere sagen, dass es dadurch schwieriger wird, auf sich bewegende Ziele zu zielen, und dass die Klarheit verloren geht, die für das Spielen wichtig ist. Nun haben beide Recht. Es ist eine Frage des Geschmacks und dem, was man vom Spiel erwartet. Wenn es euch vor allem darum geht, zu gewinnen und die Rangliste zu erklimmen, ist das vielleicht nichts für euch - dann könnt ihr es ruhig ausschalten. Für uns ist das völlig in Ordnung. Wenn ihr aber bereits gewonnen habt und aus euren Wiederholungen ein Highlight-Reel machen wollt oder einfach nur die Geschwindigkeit spüren wollt, während ihr fliegt, könnt ihr das Maximum herausholen und es für einen Effekt in Filmqualität nutzen.