Zur Games Developer Conference in diesem Frühjahr stellte Crytek eine Techdemo namens Neon Noir vor. Die Techdemo sollte einen Ausblick auf die Version 5.7 der CryEngine geben, die inzwischen in dieser Version veröffentlicht wurde. Eine der neuen Funktionen ist die Berechnung von Reflexionen via Raytracing. Die Beleuchtungstechnik Voxel-based Global Illumination (SVOGI) ist seit Jahren ein Bestandteil der CryEngine und spielt für Neon Noir eine Rolle.
Nun hat man die Techdemo in Form eines Benchmarks veröffentlicht. Alle interessierten Nutzer können sich diesen Benchmark herunterladen und die eigene Hardware testen. Wir wollen allerdings auch einen Blick hinter die Kulissen werfen und herausfinden, wie sich die Umsetzung von Crytek von den Raytracing-Effekten unterscheidet, die NVIDIA mittels RTX zu etablieren versucht.
Auch wenn Crytek explizit davon spricht, dass keine Screen Space Reflections verwendet werden, so könnten dennoch Planar Reflections zum Einsatz kommen, die nicht den Beschränkungen der Screen Space Reflections unterliegen, die aber auch Bereiche außerhalb der virtuellen Kamera in Form von Reflexionen darstellen können. Die Darstellung vom Reflexionen ist der Hauptanwendungsfall für das Raytracing in Battlefield V.
Anders verhält es sich bei der Simulation von Beleuchtung und Schattenwurf. Hier greift Crytek auf die Voxel-based Global Illumination (SVOGI) zurück. Eine Berechnung per Raytracing sei dadurch nicht notwendig. Anders auf Seiten der RTX-Spiele. Hier hat sich die Berechnung von Licht und Schatten in Spielen wie Metro: Exodus, Shadow of the Tomb Raider und Control als sinnvoll herausgestellt. Die Frage ist immer, ob dies in dieser Form auch notwendig ist, denn die Anwendung der RTX-Effekte hat auch immer einen Einfluss auf die Leistung bzw. die FPS.
Da es sich bei Neon Noir um eine selbstablaufende Demo bzw. einen Benchmark handelt, können wir die Raytracing-Effekte nicht in der Form untersuchen, wie dies in einem Spiel der Fall wäre. Dann könnten wir uns auch genauer anschauen, ob beispielsweise Planar Reflections zum Einsatz kommen. Zunächst einmal aber ein paar Screenshots aus dem Benchmark:
Neon Noir erinnert stark an Cyberpunk 2077. Dunkle Straßen, Regen und eine aufwändige Beleuchtung samt vieler reflektierender Oberflächen sind natürlich prädestiniert für ein Raytracing.
Als Basis der aktuellen Raytracing-Umsetzung verwendet Crytek eine Technik zur Berechnung einer möglichst realistischen Beleuchtung. Diese wird als Voxel Cone Tracing bezeichnet und basiert grundsätzlich auf NVIDIAs Voxel Global Illumination (VXGI). Als SVOGI (Total Illumination) ist diese Technik schon länger Bestandteil der CryEngine. Die hier gemachten Berechnungen sind bereits ein wichtiger Bestandteil für echte Raytracing-Umsetzungen und können dementsprechend auch für weitere Effekte verwendet werden.
Als Grafik-API setzt Crytek auf DirectX 11. Im Frühjahr war noch die Rede davon auch auf DirectX 12 und/oder Vulkan setzen zu wollen, da man mit den dortigen Optimierungen eine verbesserte Leistung erwartet. Offenbar ist diese Umsetzung aber noch nicht geschehen. Laut Aussage der Entwickler profitiert die aktuelle Implementierung nicht von einer Hardwarebeschleunigung wie NVIDIAs RTX-Schnittstelle oder einer Softwareschnittstelle wie sie von Microsoft mit DXR geboten wird. Man hat es bei Crytek aber geschafft inzwischen alle Reflexionen in der vollen Auflösung zu berechnen. Dazu muss in den Einstellungen das Raytracing auf Ultra gestellt werden. Wird hier Sehr Hoch gewählt, wird für höhere Ausgangsauflösungen noch die Auflösungen der Raytracing-Berechnungen reduzieren. Im Falle einer Ausgangsauflösung von 1.920 x 1.080 Pixeln werden die Raytracing-Effekte dann in 1.357 x 763 Pixeln berechnet.
Ob ein Raytracing der Reflexionen ausgeführt wird, hängt vom Abstand des Betrachters zum Objekt ab. Ist der Abstand groß, werden einfache Cube Maps verwendet – also ein klassisches Rendering für eine simulierte Darstellung von Reflexionen. Ist der Betrachter aber sehr nahe an spiegelnden Objekten, wird auf eine Raytracing umgeschaltet. Diese Form von LOD soll es möglich machen, dass ein Raytracing auch in komplexen Szenen keinen allzu großen Einfluss auf die Leistung hat.
Man konzentriert sich zunächst auf die Berechnung von Reflexionen, da diese den größten visuellen Effekt auf den Betrachter haben und sich hinsichtlich ihrer Anforderungen besser kontrollieren lassen. Die gute Umgebungslichtberechnung in der Cry Engine erlaube es die Notwendigkeit auf eine Raytracing-Umsetzung dieser Effekte zu verzichten.
Auf den Screenshots ist zu erkennen, dass die Reflexionen nicht so detailliert wie die eigentlichen Objekte sind, wenn für das Raytracing die Option "Sehr hoch" gewählt wird. Hier ist die reduzierte bzw. halbierte Auflösung in der Berechnung der Reflexionen am deutlichsten. Allerdings ist dies nur in einem Standbild zu erkennen. In einer fließenden Bewegung bzw. im Benchmarks selbst sind solche Details nicht auffällig.
An Einstellungen können im Neon-Noir-Benchmark nur sehr wenige vorgenommen werden. Die Auflösung kann geändert werden und die Raytracing-Details zwischen Ultra und Sehr hoch. Daneben sind noch eine Darstellung im Vollbild und eine Dauerschleife möglich – mehr Einstellungen gibt es nicht. Als Ausgabe erscheint ein Wert in Form von Punkten. Eine Auswertung von FPS, Min-FPS oder ein 99th-Percentile ist nicht möglich.
In einem Video haben wir den Neon-Noir-Benchmark einmal mit einer GeForce RTX 2080 Ti ausgeführt. Die Auflösung betrug 3.840 x 2.160 Pixel. Im ersten Durchlauf mit Raytracing auf Ultra, im zweiten auf sehr hoch.
Datenschutzhinweis für Youtube
An dieser Stelle möchten wir Ihnen ein Youtube-Video zeigen. Ihre Daten zu schützen, liegt uns aber am Herzen: Youtube setzt durch das Einbinden und Abspielen Cookies auf ihrem Rechner, mit welchen Sie eventuell getracked werden können. Wenn Sie dies zulassen möchten, klicken Sie einfach auf den Play-Button. Das Video wird anschließend geladen und danach abgespielt.
Ihr Hardwareluxx-Team
Youtube Videos ab jetzt direkt anzeigen
Kommen wir nun zu den Benchmarks, denn wir haben einige Grafikkarten mit AMD- und NVIDIA-GPU durch den Neon-Noir-Benchmark geschickt.
Werbung
In den Benchmarks haben die GeForce-RTX-Karten klar die Nase vorne. An dieser Stelle noch einmal: Die RT-Cores und damit die Hardwarebeschleunigung der Turing-Architektur kommt dabei nicht zum Einsatz. Rückschlüsse auf die Leistung in Spielen sind nur eingeschränkt möglich. Spiele, welche die aktuelle CryEngine verwenden, dürften sich recht ähnlich verhalten.
Während der Tests hatten wir auch mit einigen Problemen zu kämpfen. Auf einem System mit Ryzen-Threadripper-Prozessor mit 16 Kernen oder einen Intel Core i9-9980XE lief der Benchmark nicht flüssig. Eine GeForce RTX 2080 Ti wurde nur zu 30 bis 40 % ausgelastet und taktete mit 1.000 bis 1.200 MHz. Entsprechend kam es zu größeren Rucklern. Erst der Wechsel auf ein System mit einem Core i9-9900KS brachte Besserung. Ob alle Systeme mit mehr als acht Kernen mit solchen Problemen zu kämpfen haben, wird sich noch zeigen müssen. Ein Test mit einem Ryzen 9 3900X wäre sicherlich aufschlussreich.
Im CryEngine Marketplace ist der Neon Noir Ray Tracing Benchmark inzwischen verfügbar. Alle technischen Details zur Umsetzung hat Crytek in einem Video noch einmal zusammengefasst:
Datenschutzhinweis für Youtube
An dieser Stelle möchten wir Ihnen ein Youtube-Video zeigen. Ihre Daten zu schützen, liegt uns aber am Herzen: Youtube setzt durch das Einbinden und Abspielen Cookies auf ihrem Rechner, mit welchen Sie eventuell getracked werden können. Wenn Sie dies zulassen möchten, klicken Sie einfach auf den Play-Button. Das Video wird anschließend geladen und danach abgespielt.
Ihr Hardwareluxx-Team
Youtube Videos ab jetzt direkt anzeigen
Update:
Wir haben noch die Benchmarks für die folgenden Karten hinzugefügt:
- GeForce GTX 1080 Ti
- GeForce GTX 1080
- GeForce GTX 1070
- GeForce GTX 1060
- Radeon RX Vega 64
- Radeon RX Vega 56