Raytracing-Schatten in World of Tanks: Problemlos ohne RTX-Hardware?

Von Misie Gaming · 17. Oktober 2019 · ·
Kategorien:
  1. Lesedauer: 4 min       Alternativ: misie.ga/raytracing-schatten-in-world-of-tanks-problemlos-ohne-rtx-hardware
    [​IMG]

    Seit NVIDIAs RTX-Karten ist der Begriff »Raytracing« stark in Mode. Welch bessere Werbung gäbe es also, das eigene Spiel mit jenem Zauberwort aufzuhübschen. Dies dürften sich wohl auch die Entwickler hinter World of Tanks gedacht haben, welches bald per Raytracing berechnete Schatten beinhalten wird. Nach einer kompakten Erklärung des eingesetzten, hybriden Echtzeitverfahrens, werden wir anhand der gestern erschienen Demoversion die Grafik und Performance genauer ins Visier nehmen.


    Raytracing, RTX, Realität,… ist doch eh dasselbe, nicht?

    Die Besonderheit bei World of Tanks ist, dass die Strahlenverfolgung keinerlei Hardwarelösung verfolgt. Es läuft unter DirectX 11 und setzt auf Intels oneAPI, somit verzichtet es auf Microsofts DXR und RT Cores der RTX-Karten werden gar nicht unterstützt. Stattdessen werden die für »performantes« Raytracing unbedingt notwendigen Hüllkörper-Hierarchien (BVH) von der CPU berechnet, während eine gewöhnliche GPU die eigentlichen Schnitttests durchführt. Eine wirklich gute Erklärung über simples Raytracing im Allgemeinen und genaueres zur Implementierung in World of Tanks findet sich im entsprechenden Tagebucheintrag der Entwickler.


    Grafikvergleich mit drei Raytracing-Optionen

    Da man spätestens seit Turing weiß, dass Raytracing nicht gerade genügsam ist, finden sich verschiedene Alternativen im Spiel. Neben den klassischen Schattentexturen gibt es zunächst harte Raytracing-Schatten. Hier wird die Sonne als Punktlicht angesehen, welches im Gegensatz zu einer korrekteren Repräsentation als Kugel keinerlei Volumen besitzt. Ein Pixel kann somit nur komplett im Sonnenlicht oder vollkommen im Schatten sein. Realistischer ist es jedoch, einen weichen Übergang an den Rändern zu haben, da von dort die Sonnenstrahlen lediglich teilweise auftreffen. Dieser Bereich der Teilbeschattung wird außerdem größer, je weiter das schattenwerfende Objekt vom Untergrund entfernt liegt. Für diesen Effekt gibt es die beiden höheren Stufen.

    Es soll allerdings weiterhin (halbwegs) performant laufen, weshalb trotzdem bloß ein einzelner Schattenstrahl zur Sonne geschickt wird. Ich vermute, dass die Sonne in diesem Fall aus mehreren Punktlichtern besteht und benachbarte Pixel immer zu einer unterschiedlichen Lichtquelle ihren jeweiligen Strahl verschießen. Nach einem Frame dürfte dann gewechselt werden. Das unbearbeitete Resultat wäre kein wirklich weicher, sondern ein sehr körniger Schatten. Um das zu verhindern wird Rauschentfernung durchgeführt – bei der zweiten Stufe nur leicht, bei der dritten etwas stärker. In allen Fällen wird Raytracing ausschließlich für Panzerschatten eingesetzt. Konkret ergeben sich daraus die folgenden Bilder:

    0q.jpg 1q.jpg 2q.jpg 3q.jpg
    Einfache Shadowmaps im Vergleich mit Raytracing Stufe 1, Stufe 2, Stufe 3.

    Die klassische Methode hat ein paar Probleme: Einerseits sind einige Schatten nicht gänzlich korrekt platziert und leicht versetzt, andererseits hängt die Schärfe von der verwendeten Mipmap-Stufe, also der Texturauflösung ab, welche durch die Distanz zwischen virtueller Kamera und Schatten bestimmt wird – nicht aber von der Entfernung des schattenwerfenden Objekts. Die nächste Options-Stufe behebt das erste Problem und platziert alles korrekt, die resultierenden Schatten – beispielsweise vom langen Rohr – sind jedoch unrealistisch scharf. Raytracing-Stufe 2 behebt auch dies etwas, der Übergang bleibt allerdings etwas rau und noisy, erst die höchste Qualität schafft ein rauschfreies Bild.

    Obwohl ein paar Schatten fehlen oder zu unscharf sind, finde ich den Sprung von der niedrigsten zur höchsten Einstellung persönlich nicht besonders gravierend auf diesen Screenshots. In einer laufenden Partie würde vermutlich den wenigsten Spielern der Unterschied auffallen. Doch sollte die Performance stimmen, macht man mit der dritten Option nichts falsch (das kann man nicht immer bei Schatten-Einstellungen sagen). Auf die übertriebene Härte oder das starke Rauschen würde ich hingegen allemal verzichten.

    [​IMG]
    Am Schatten des Riesen-Rohrs ist mittig ein Wechsel der Auflösung zu erkennen.

    In Bewegung ergibt sich jedoch mit den Shadowmaps ein kleines Problem. Hier findet ein harter Übergang zwischen den Mipmap-Ebenen statt, welcher als sichtbare Kante wahrgenommen werden kann. Viele modernere Spiele umgehen das Problem, indem sie den Transitionsbereich ausbreiten, bis dieser kaum noch erkennbar ist. World of Tanks dürfte aus Performancegründen hierauf verzichten, zumal der eigene Panzer im Großteil eines Matches die Distanz zur Kamera halten dürfte.

    Demgegenüber steht aber auch ein nicht optimales Raytracing. Sobald schnellere Bewegungen relativ zur Bildschirmebene passieren, kann man schwerer die Informationen aus vorangegangenen Frames nutzen und die Rauschentfernung wird schwieriger. Das Bild wird folglich unruhig und der Denoiser kann Teile falsch zusammensetzten, hier an der Rohrspitze erkennbar. (Das Medium-Preset wurde verwendet, um Bewegungsunschärfe abzustellen.)

    [​IMG]

    Performance

    Selbst bei der Wahl des Ultra-Preset wird nicht automatisch Raytracing aktiviert, sondern muss manuell zugeschalten werden. Naja, vielleicht ist die Implementierung lediglich buggy, an der Leistung wird es bestimmt nicht liegen, wegen fehlender Hardware hat man sich ja mit der Komplexität zurückgehal…

    perf.png

    Gut, das ist jetzt doch ein ganzes Stück schlimmer als erwartet. Der Graph zeigt jeweils die ausgegebenen 1% und 11% Lows/Highs, sowie die Durchschnitts-Framerate in fps auf meinem Rechner mit RX 570 4 GB, 16 GB RAM und einer i7 4770 äquivalenten CPU. Neben der Schattenqualität steht alles auf Ultra bei Full HD und gemessen wurde ein 45-sekündiger Abschnitt, der beginnt, wenn das erste Mal Panzer zu sehen sind. Die etwa zwölf Prozent Unterschied zwischen der besten und schlechtesten Raytracing-Stufe dürfte bloß durch den Denoiser zu verantworten sein. Bei der Maximaleinstellung blieben im Vergleich zu »normalen« Schatten also letztlich magere 39% der ursprüngliche Bildwiederholrate übrig. Bei dem mittleren Preset wäre es sogar noch schlimmer und man fällt von fast 200 auf unter 50 fps.

    Das vielleicht etwas beängstigende dabei ist indes, dass die GPU komplett ausgelastet wird, während die CPU bei etwa 20% Last sitzt. Auch wenn diese Zahlen nicht völlig aussagekräftig bezüglich Flaschenhälsen sind, könnte es doch ein schlechtes Zeichen für hybride Raytracingverfahren sein. In AMDs Patent, welches sicherlich auf ihrer nächsten Generation und den neuen Konsolen Anwendung findet, arbeitet die generelle GPU-Hardware recht ähnlich wie hier in World of Tanks, nur bei den BVHs wird statt dem Prozessor auf extra Fixed-Function-Einheiten entsprechender Grafikchips gesetzt. Neben der Entlastung der CPU (was scheinbar in diesem Spiel kein wichtiger Punkt wäre), könnte lediglich die niedrigere Latenz durch die physikalische Nähe und der wegfallender Kommunikation über den PCI-Bus das Ruder rumreißen.

    Letztlich kann man hierüber nur spekulieren, bei World of Tanks weiß ich derweil sicher, dass ich auf Raytracing verzichten würde, wenn ich es spielen würden.


    Den Kommentarbereich aufrufen: Reddit | GameStar-Blog | Twitter
    Abonnieren und nichts verpassen: Reddit | GameStar-Blog | Twitter
    Kurz-Link zum Auswendiglernen: misie.ga/wot

    [​IMG]   [​IMG]
    Jasper und Blumenkohl gefällt das.

Kommentare

Um einen Kommentar zu schreiben, melde dich einfach an und werde Mitglied!
  1. Blumenkohl
    Tja, das RT only mit magischen RT Kernen, welche Team Parasit Grün als Grund für eine maßlose Verteuerung seiner Produkte hernahm, ist damit mal wieder, wie schon oft, als Verarsche am Kunden offen gelegt.

    Noch immer reagieren Fachmagazine und "Ex-perten" der Hardwareszene, im Gegenteil, gerade hier höre ich zuwenig Statements, wie Feiglinge, nicht, und prangern diese Sauerei offen an.

    Auf der Gamestar wird anbei hier von mir der zweite Artikel festgestellt, welcher dieses Thema offenlegt. Das ist gut, vor allem weil man nicht primär Hardwaremagazin oder Hardwareyoubekanal ist.
Top