Entwickler sprechen über die Details der UE5-Technologien

Veröffentlicht am: von

unreal-engine4Bereits vor einigen Tagen stellte Epic Games die Unreal Engine 5 vor. Diese soll ab Ende 2021 in einer finalen Fassung vorgestellt und unter anderem auf den Next-Gen-Konsolen PlayStation 5 und Xbox Series X zum Einsatz kommen. Die erste Techdemo, die in Echtzeit auf einer PlayStation 5 gelaufen sein soll, sorgte für einiges an Aufsehen.

Die Kollegen von Digital Foundry haben mit einigen Entwicklern bei Epic über die Unreal Engine 5 gesprochen und dabei ein paar interessante Details erfahren.

Die Unreal Engine 5 soll eine hoch skalierbare Engine sein. Zielsysteme sind die nächsten Konsolen, aber auch der PC. Die Hardwarevoraussetzungen sind daher höchst unterschiedlich. Die aktuell gezeigte Demo wurde intern in 1440p mit 30 FPS berechnet und dann hochskaliert. Je nach Zustand der Entwickler-Hardware und der Unreal Engine selbst kann dies aber noch kein Indikator für die Leistungsanforderungen der UE5 sein.

Kommen wir nun zu den Details der neuen Techniken der Unreal Engine 5:

Nanite

» zur Galerie

Bei Nanite handelt es sich um ein Micro Polygone Rendering. In Spielen müssen hunderte, wenn nicht tausende 3D-Objekte dargestellt werden. Allesamt verfügen diese Objekte über ein mehr oder weniger detailliertes 3D-Modell. Um die Anzahl der zu berechnenden Objekte und Details besser ausbalancieren zu können, gibt es verschiedene Techniken. Die wohl bekannteste ist die Abstufung des Detailgrads über den Abstand des Betrachters. Über unterschiedliche Tessellation-Techniken können geometrische Details in komprimierter Form gespeichert und letztendlich wiedergegeben werden.

Die diversen Tessellation-Techniken haben allerdings auch einige Nachteile. So erzeugt ein zu- oder abnehmender Abstand zu solchen Objekten eine Art Popups, in denen deutlich zu erkennen ist, wie Objekte aufpoppen oder plötzlich in einem höheren Detailgrad berechnet werden. Es gibt wiederum Techniken diesen Effekt zu minimieren, meist aber bleibt er erkennbar.

Das Micro Polygone Rendering kommt bisher im Echtzeit-Rendering nicht zum Einsatz und wird nur im Offline-Rendering verwendet. Einfach gesprochen stellt das Micro Polygone Rendering Objekte in einer Auflösung von einem Polygon pro Pixel dar. Diese Details werden durch eine hoch aufgelöste Height-Map hinzugefügt. Die vielen Details werden aber erst mit einer korrekten Berechnung der Beleuchtung sichtbar. Dazu kommen wir bei der Lumen getauften Technik dann später.

Noch ein paar Fragezeichen gibt es hinsichtlich der Eignung für unterschiedliche Oberflächen. Steine und Oberflächen scheinen dem Micro Polygone Rendering entgegen zu kommen. Wie es aber um feine Details die Haare oder Vegetation bestellt ist, ist derzeit unklar. Zudem benötigt das Micro Polygone Rendering eine hohe Streaming-Leistung der Geometrie-Daten – also entweder viel Grafikspeicher oder eine schnell angebundene GPU. Sony stellte besonders die schnelle SSD als einen der Pluspunkte der eigenen Konsole heraus. Dies dürfte auch für das Micro Polygone Rendering eine Rolle spielen.

Lumen

» zur Galerie

Bei Lumen handelt es sich um eine Global-Illumination-Technik (GI), also eine Berechnung der kompletten Beleuchtung der dargestellten Szene. Anders als ein Raytracing-GI auf Basis einer Raytracing-Berechnung wie in Metro: Exodus verwendet Lumen aber nur ein Bounce Light, verfolgt den Lichtstrahl also gewissermaßen nur nach seinem ersten Auftreffen. Es handelt sich streng genommen also nicht um eine Raytracing-Technik.

Lumen ist im Gegensatz zu traditionellen Umsetzungen mit statischen Lightmaps, die zuvor festgelegt werden (pre-backed), aber dynamischer und ermöglicht es den Entwicklern schon während der Arbeit an den 3D-Szenen die direkten Auswirkungen in Echtzeit zu erkennen. Es muss nicht auf ein Pre-Rendering gewartet werden. Damit kann Lumen als eine Art Hybrid-Lösung zwischen einem vollständigen Raytracing-GI und den statischen Lightmaps bezeichnet werden.

Diese Kombination zeigt sich auch in der Umsetzung. Für große und weit entfernte Objekte wird eine Art VXGI (Voxel Global Illumination) verwendet. Für kleine und detailreiche Objekte wird der Screen Space verwendet und für dazwischenliegende Objekte eine Art geometrische Repräsentation des eigentlichen Objekts (Signed Distance Fields), auf welcher der direkte und indirekte Lichteinfall berechnet wird. Je nach Objektgröße wird also ein andere Detailgrad angewendet, was die Hardwareanforderungen im Vergleich zu einem Raytracing-GI deutlich reduziert.

Lumen scheint auch eine temporale Komponente zu verwenden. Diese besteht aus einer Feedback-Schleife, welche zuvor berechnet Informationen beibehält, auf die in einer nächsten Berechnung zurückgegriffen werden kann. Da mehrere Iterationen notwendig sind, kommt es in der Berechnung der Beleuchtungssituation allerdings auch zu kleineren Verzögerungen in der Darstellung.