JETZT SPIELEN Kostenlos
Nachrichten

Verbesserungen beim Raytracing und bei der Frame Generarion

Im kommenden großen Update bieten wir euch neues Raytracing und weitere kleinere Features sowie zusätzliche grafische Verbesserungen!

Raytracing auf Konsolen

Für die Xbox Series X, PlayStation 5 und PlayStation 5 Pro gibt es eine neue Raytracing-Voreinstellung. Diese Voreinstellungen zielen auf 30 fps mit einer dynamischen Auflösung ab und richten sich an Spieler, die das Spiel mit nahezu maximaler Detailtreue erleben möchten. Wir haben große Anstrengungen unternommen, um den Speicheraufwand für Raytracing so zu reduzieren, dass er in das Speicherkontingent der Konsolen passt, und mit einigen Kompromissen ist uns dies gelungen.

  • XBOX Series X, PS5: Raytracing für Sonnenschatten, Umgebungsverdeckung und Reflexionen, jedoch vorerst keine dynamischen Objekte im BVH
  • PS5 Pro: Raytracing für die Sonne und dynamische Schatten, Umgebungsverdeckung und Reflexionen

Die XBOX Series S ist die leistungsschwächste Konsole der aktuellen Generation und verfügt leider nicht über genügend Speicher – selbst ohne dass Soldaten in die BVH-Struktur aufgenommen werden –, sodass für diese Konsole keine Raytracing-Voreinstellung verfügbar sein wird.

Am anderen Ende der Skala steht die PS5 Pro: Ihre im Vergleich zum Basismodell verbesserte GPU ermöglicht nicht nur die Darstellung von dynamischen Lichtern mit Raytracing, sondern läuft auch die meiste Zeit nahe der nativen 4K-Auflösung.

Path-Traced Global Illumination

Wir präsentieren einen neuen Effekt für Raytracing-Fans auf dem PC: „Path Traced Global Illumination“, kurz PTGI. PTGI soll eine physikalisch korrekte Umgebungsbeleuchtung für alle undurchsichtigen Objekte auf dem Bildschirm erzeugen. Es handelt sich um ein Path-Tracing-Verfahren, d. h., die Lichtstrahlen werden in der Szene rekursiv bis zu dreimal reflektiert, um indirekte Beleuchtung zu erzeugen. So kann beispielsweise eine von der Sonne beleuchtete Oberfläche auch Objekte vor sich aufhellen, die der Sonne den Rücken zuwenden.

Diese Art der Lichtausbreitung ist bereits in unserer Global-Illumination-Implementierung enthalten, diese stützt sich jedoch beim Raytracing auf das Signed Distance Field (SDF), das jedoch nicht alle Details der Szenengeometrie korrekt erfassen kann. Hochwertige GI führt für entfernte Pixel zudem Screen-Space-Ray-Marching durch, doch dies ist eine noch eingeschränktere Informationsquelle. PTGI umgeht dieses Problem, indem es Zugriff auf die gesamte Szene im BVH hat.

PTGI aus / PTGI ein

PTGI liefert aufgrund der Natur der indirekten Umgebungsbeleuchtung ein recht verrauschtes Signal, und das Abgeben mehrerer Strahlen pro Pixel und Bild würde diesen Effekt erheblich verlangsamen. Allerdings wird DLSS Ray Reconstruction in Enlisted bereits seit einiger Zeit unterstützt, wodurch das verrauschte Signal verarbeitet und ein Bild mit hochwertiger Umgebungsbeleuchtung ausgegeben werden kann. DLSS Ray Reconstruction ist erforderlich, um PTGI zu aktivieren.

Aufgrund der rekursiven Natur des Path-Tracing war dieses Feature ursprünglich für High-End-GPUs gedacht; es gibt jedoch einige Verfahren, um die Leistungseinbußen zu mindern:

1. Der beste Weg, die Kosten für das Raytracing zu senken, besteht darin, weniger Strahlen zu verfolgen. Mit DLSS RR können wir für PTGI ein „Checkerboard“-Rendering durchführen, wodurch sich der Leistungsaufwand um die Hälfte reduziert. Um den Helligkeitsverlust auszugleichen, der dadurch entsteht, dass die Hälfte der Pixel schwarz ist, können wir die Ausgabe der verfolgten Pixel einfach mit 2 multiplizieren.

Raytracing in voller Auflösung:

Raytracing mit halber Rate und „Checkerboard“-Muster:

(Das zweite Bild erscheint weiß, da Werte größer als 1 auf dem Monitor begrenzt werden.)

2. Eine weitere wichtige Leistungsoptimierung in diesem Zusammenhang ist die vorzeitige Strahlabbruchmethode nach Monte Carlo. Während der Lichtstrahlverfolgung müssen wir den Beitrag des Strahls verfolgen. Er beginnt bei 1, und je öfter er reflektiert wird, desto kleiner wird er, da bei jeder Reflexion nur ein Teil des Lichts vom Objekt reflektiert wird. Wir können uns auf die Wahrscheinlichkeitstheorie stützen, um diesen Prozess zu beschleunigen und am Ende dennoch das gleiche erwartete Ergebnis zu erzielen. Legen wir die Überlebenschance als das Maximum des Beitrags des Strahls pro Kanal fest. Wir generieren eine Zufallszahl zwischen 0 und 1, verwerfen alle Strahlen, bei denen die Zufallszahl größer ist als die Überlebenschance, und erhöhen den Beitrag der überlebenden Strahlen um 1/Überlebenschance. Auf diese Weise verbringen wir viel weniger Zeit mit der Verfolgung schwacher Strahlen und verlieren kein Licht, da eine geringere Anzahl von Reflexionen das Bild lediglich dunkler macht.

3. Wir haben die Optimierung des Screen-Space-Resampling aus den Raytracing-Reflexionen übernommen. Da das vorherige Bild bereits durch GI korrekt beleuchtet war, können wir die Farbe von dort übernehmen, sofern der Lichtstrahl auf den Bildschirm trifft. Dies spart nicht nur die Berechnung der Beleuchtung auf der Oberfläche, sondern ermöglicht es uns auch, das Path Tracing an dieser Stelle zu beenden, da das vorherige Bild ebenfalls rekursiv beleuchtet wurde.

4. PTGI ist ein Umgebungslicht mit niedriger Frequenz, sodass man naturgemäß keine exakten Details der gerenderten Szenen erkennen kann – anders als bei Raytracing-Reflexionen, bei denen manche Oberflächen spiegelartig sind. Dies ermöglicht es uns, das Shading erheblich zu vereinfachen: Wir können Mip-Stufen mit geringerer Qualität für Materialien abtasten und das Shading vereinfachen, indem wir nur direkte Beleuchtung anwenden.

5. Da PTGI auf dem gesamten BVH berechnet wird, beinhaltet es von Natur aus Ambient Occlusion. Ambient Occlusion ist im Allgemeinen eine Methode, um Details wieder hinzuzufügen, die bei GI-Implementierungen verloren gehen; da PTGI dies jedoch von Haus aus leistet, benötigen wir sie nicht. Wenn PTGI aktiviert ist, wird RTAO deaktiviert, wie auch in den Grafikeinstellungen angegeben.

Und natürlich werden auch Effekte nachverfolgt, sodass Flammenwerfer zur Beleuchtung beitragen.

PTGI ohne FX / PTGI mit FX

Um das Effekt-Tracing schnell zu halten, verfolgt PTGI diese nur beim ersten Abprall und akzeptiert nur die ersten 4 Treffer. In Anlehnung an diese Optimierung könnten auch grobe Reflexionen beschleunigt werden. Pfützen und Ähnliches werden weiterhin in voller Qualität nachverfolgt; auf sehr groben Oberflächen können wir jedoch ebenfalls nur die ersten vier Treffer berücksichtigen, was den durch Effekte verursachten Leistungsanstieg bei minimalem visuellen Unterschied deutlich reduziert.

Opazitäts-Mikromaps

Opazitäts-Mikromaps (OMM) sind eine neue Optimierungsfunktion, die die herkömmlichen „Any-Hit“-Shader ersetzt.

Das Raytracing von Alpha-getesteter Geometrie kann besonders rechenintensiv sein, da die Raytracing-Hardware bei jedem potenziellen Treffer auf ein Alpha-getestetes Objekt einen programmierbaren „Any-Hit“-Shader aufrufen muss, der den Treffer möglicherweise verworfen und anschließend das Raytracing fortsetzt. Dies wird besonders in Wäldern aufwendig, in denen die Äste der Bäume mit Alpha-Cutout-Texturen erstellt werden. Um den Leistungsaufwand zu begrenzen, haben wir zuvor eine feste Obergrenze für die Anzahl der „Any-Hit“-Shader-Aufrufe festgelegt; nach Erreichen dieser Grenze wurden nachfolgende Treffer ohne weitere Alpha-Tests als undurchsichtig akzeptiert. Empirisch haben wir festgestellt, dass der optimale Wert bei 10 Aufrufen pro Strahl liegt, was einen guten Kompromiss zwischen visueller Qualität und Leistung darstellt.

OMM bietet eine bessere Lösung. Beim Aufbau der Beschleunigungsstrukturen der untersten Ebene fügen wir zusätzliche Daten hinzu, die die Dreiecke des Meshes unterteilen und jedes winzige Dreieck einem einzelnen Bit zuordnen, in dem gespeichert wird, ob es transparent ist oder nicht. Der Zugriff auf diese Beschleunigungsstruktur kann ohne die langsamen „Any-Hit“-Shader-Aufrufe erfolgen, sodass OMM selbst bei allen Optimierungen, die wir an den „Any-Hit“-Shadern vorgenommen haben, die Raytracing-Durchläufe in Wäldern und ähnlichen Umgebungen deutlich beschleunigen kann.

PIX-Ansicht der Opazitäts-Micromaps: Der farbige Baumstamm wird nicht auf Alpha-Transparenz geprüft, die Blätter hingegen schon, und alle schwarzen Teile werden während des Raytracing verworfen:

Dies ist die Debug-Ansicht eines von vielen Dreiecken eines Baumes. Der innere gelbe Bereich ist die überlagerte Alpha-Textur; jedes Mikrodreieck, das sie berührt, wird undurchsichtig.

Das Tolle daran ist, dass dadurch auch die visuelle Qualität verbessert wird. Die Begrenzung auf 10 „Any-Hit“-Shader-Aufrufe hat die Leistung zwar enorm gesteigert, führte aber auch zu falschen Treffern, die nun vollständig beseitigt sind. Wie Sie in der Debug-Ansicht sehen können, liefert OMM eine recht genaue Annäherung an die „Any-Hit“-Shader-Implementierung, die die tatsächlichen Alpha-Texturen abtastet.

Zur Veranschaulichung hier ein Beispiel für ein Alpha-getestetes Objekt, das gut isoliert ist.

Raster:

„Any-Hit“-Shader:

OMM:

Aufgrund der geringen Überlappung der Alpha-getesteten Oberflächen entspricht die „Any-Hit“-Shader-Version dem Endziel der Rasterisierung besser. Dies wird jedoch nur in der Debug-Ansicht wirklich deutlich; bei der Verwendung für weiche Schatten und Reflexionen sieht das Ergebnis sehr ähnlich aus.

Schauen wir uns nun aber den Stresstest für Raytracing an: die Vegetation.

Raster:

„Any-Hit“-Shader:

OMM:

Sträucher und Bäume bestehen aus vielen sich überlappenden, auf Alpha-Transparenz geprüften Dreiecken, und hier führt die Optimierung des „Any-Hit“-Shaders zu vielen falschen Treffern, wodurch die Mitte des Strauchs zu einem massiven Block wird.

Der Arbeitsspeicherbedarf bleibt dabei unverändert. Eine letzte Optimierung, die wir an transparenten Objekten vorgenommen haben, besteht darin, dass wir einen vereinfachten Puffer für Vertex-Daten verwenden, den wir ausschließlich in „Any-Hit“-Shadern nutzen. Dies ermöglicht es, auf dem Hot Path weniger Arbeitsspeicher zu belasten, auch wenn damit ein Speicher-Overhead verbunden ist. Mit OMM benötigen wir solche Tricks nicht, sodass wir mehr oder weniger denselben Speicherbedarf wie zuvor haben.

„Any-Hit“-Shader in der Szene / OMM in der Szene

Daher ist OMM immer aktiviert, sofern die Hardware dies unterstützt. Die Funktion wird derzeit nur von GPUs der NVIDIA RTX 40- und 50-Serie unterstützt. Stellen Sie außerdem sicher, dass Sie Ihre Treiber aktualisieren, um von den neuen Funktionen profitieren zu können.

Tracers im BVH

Tracer werden nun auch im BVH angezeigt, sodass ihr die Reflexionen heller Tracer auf Wasser oder Glas sehen könnt.

image

Ray-Tracing-Voreinstellung für den PC

Wir haben eine neue Ray-Tracing-Qualitätsvoreinstellung für den PC hinzugefügt. Dies ist eine bequeme Möglichkeit für Spieler mit Ray-Tracing-fähigen Grafikkarten, auf die vom Spiel empfohlenen höchsten Einstellungen umzuschalten. Sie aktiviert alle Funktionen der „Ultra“-Einstellung sowie Ray-Tracing-Schatten, Ambient Occlusion, Reflexionen (undurchsichtig, Glas und Wasser) und zusätzliche Umgebungsdetails.

Eingestellte Features

Wir stellen die Unterstützung für „Temporal Hyper Resolution“ (niedrige Qualität) sowie für AMD FidelityFX Super Resolution 1.0 ein. Damit werden Bewegungsvektoren bei Einstellungen oberhalb des absoluten Minimums immer gerendert, was die Renderqualität bei allen zeitlichen Effekten verbessert. Außerdem müssen wir nun keine Workarounds mehr für das Fehlen von Bewegungsvektoren entwickeln, die letztendlich immer wieder neue Artefakte verursachten.

Frame-Generierung

Mit diesem Update fügen wir dem Spiel Unterstützung für die AMD FSR Frame Generation hinzu, wofür DirectX 12 erforderlich ist.
Auch die DLSS Frame Generation erhält ein Update. Wir haben Unterstützung für die 5x- und 6x-Frame Generation hinzugefügt. Außerdem haben wir Unterstützung für die dynamische Frame-Generation hinzugefügt, die das Verhältnis der Frame-Generation automatisch anpasst, sodass die resultierende Bildrate konstant bleibt. Hierfür ist eine Grafikkarte der NVIDIA RTX 5000 Reihe erforderlich.

Mit Freunden teilen: