Microsoft: DirectX 12 erhält Raytracing-API DXR für Hybrid-Rendering

Wolfgang Andermahr 187 Kommentare
Microsoft: DirectX 12 erhält Raytracing-API DXR für Hybrid-Rendering
Bild: Remedy

Spiele-Engines arbeiten derzeit ausschließlich mit einem Rasterizer. Der bedient sich diverser Tricks, um auch ohne die Berechnung der Wege von Millionen von Lichtstrahlen ein realitätsnahes Bild zu zeichnen – bei moderaten Anforderungen. Für einzelne Effekte bringt Microsoft DXR in Zukunft aber Raytracing ins Spiel.

Der Großteil der Grafik wird dabei auch in Zukunft wie bis jetzt per Rasterizer erzeugt, nur einige ausgesuchte Effekte per Raytracing. Denn für reines Echtzeit-Raytracing ist PC-Hardware heute und auch in ein paar Jahren noch immer zu langsam. Um den hybriden Ansatz mit einem in der Industrie akzeptierten Standard zu ermöglichen, hat Microsoft die eigene Low-Level-API DirectX 12 um einen Raytracing-Part erweitert. Dieser hört auf die Bezeichnung DirectX Raytracing, kurz DXR.

DXR ist für alle Hersteller: AMD, Nvidia, Intel und Co.

DXR soll nach wie vor auf einer GPU berechnet werden und der Teil der API kann nach wie vor von jedem GPU-Hersteller genutzt werden. AMD, Nvidia, Intel und Co. können also darauf setzen. Derzeit unterstützt aber – mit einer Ausnahme – noch keine einzige GPU nativ DXR. Dabei fehlt es nicht nur an Software, vor allem die Hardware kann es noch nicht (richtig) beschleunigen.

Aktuelle GPUs nutzen einen Fallback-Modus

Raytracing ist ein an Compute angelegter Workload. Microsoft hat deshalb einen Fallback-Modus in DXR integrieren können, mit dessen Hilfe alle zu DirectX 12 kompatiblen Grafikkarten DXR über Compute Shaders nutzen können. Microsoft selbst nennt diesen Modus jedoch nur eine Hilfestellung für Entwickler. Entwickler sollen so aktuelle Hardware nutzen können, um ihre Effekte auszuprobieren. Den Modus wird es möglicherweise auch für Endanwender geben, jedoch ist davon auszugehen, dass die Performance schlecht sein wird.

Nur Volta beschleunigt bisher nativ DXR

Aktuell gibt es nur eine GPU, die DXR auf die gedachte Art beschleunigen kann: Nvidias Volta-GPU, die auch auf der Titan V verbaut ist, verfügt über spezielle Hardware, die Raytracing nach DXR berechnen kann. Sie sollen die Leistung um das X-fache gegenüber der klassischen Compute-Berechnung anheben können. Es ist damit auch davon auszugehen, dass Nvidias Next-Gen-GPU für Spieler, die voraussichtlich auf die Bezeichnung Turing hören wird, DXR in Hardware beschleunigen kann. Alle anderen Nvidia-GPUs inklusive Pascal können DXR nicht per Hardware beschleunigen. Dasselbe gilt für AMD und Intel. (Zumindest) AMD und Nvidia werden für entsprechende GPUs dennoch eine Unterstützung für DXR anbieten, hier dürfte der Fallback-Modus gemeint sein. Nvidia hat das schon im Detail bekannt gemacht.

RTX ist Nvidias Implementierung von DXR

DirectX Raytracing ist die API, doch muss es auch ein Backend der GPU-Hersteller geben, das sie ansprechen kann. Nvidia hat das passende Software-Backend bereits vorgestellt, das auf den Namen RTX hören wird. Nvidia hat nach eigenen Angaben eng mit Microsoft zusammen gearbeitet, um RTX für DXR anzupassen. Volta und zukünftige GPUs werden RTX per Hardware unterstützen, ältere DirectX-12-GPUs können den langsamen Fallback-Modus per Direct Compute nutzen.

Nvidia nennt die Beleuchtung, Reflektionen und Schatten als erste Einsatzgebiete für Raytracing in Spielen. Zudem kündigt der Hersteller an, GameWorks-Effekte auch für RTX anzubieten. „Ray Traced Area Shadows“, „Ray Traced Glossy Reflections“ und „Ray Traced Ambient Occlusion“ werden die ersten sein.

Der Denoiser nutzt Voltas Tensor-Cores

Darüber hinaus wird das GameWorks SDK ein Denoiser-Modul („Rauschunterdrücker-Modul“) bieten. Das kämpft gegen rauschende beziehungsweise schwarze Stellen im per Raytracing erstelltem Bild, die auftreten, wenn zu wenig oder noch gar keine Strahlen (Rays) an dieser Stelle angekommen sind. Der Denoiser nutzt die Tensor-Einheiten auf der Volta-GPU, um über einen KI-Algorithmus ein Bild zu rekonstruieren, bei dem zu wenig Strahlen keine gute Qualität zulassen. Ob zukünftige Spieler-GPUs ebenso über Tensor-Kerne verfügen werden, ist noch nicht bekannt.

AMD hat noch kein DXR-Backend für Radeon angekündigt

AMD hat dagegen noch kein Software-Backend für DXR vorgestellt, aber einen Treiber in Aussicht gestellt, der mit DirectX Raytracing umgehen kann. Wann dieser erscheinen wird, ist noch genauso unklar wie die Art und Weise der Beschleunigung auf AMD-GPUs. AMD hat die entsprechende Pressemitteilung jedoch sehr vorsichtig formuliert, sodass nicht auszuschließen ist, dass auch Vega größtenteils bis ausschließlich den Fallback-Modus nutzen wird. In Anbetracht der aktuellen Situation bei AMD und Nvidia ist davon auszugehen, dass es mehrere Jahre dauern wird, bis DXR in mehr als nur einigen Spielen pro Jahr eingesetzt werden wird. Bereits DirectX 12 ist als Low-Level-API selbst für erfahrene Entwickler komplex. Und DXR setzt entsprechend noch einen drauf, da neben der Low-Level-Programmierung auch Raytracing integriert werden muss.

Erste Spiele mit DXR sollen dieses Jahr erscheinen

In ersten Spielen soll es mit DXR keine wirklich neuen Effekte geben. Stattdessen sollen vorhandene Effekte auf Raytracing portiert werden, um sie weiter zu verbessern. Spiegelnde Oberflächen und Schatten gehören dazu. Zu einem späteren Zeitpunkt soll es auch neue Effekte geben, die per Rasterizer bisher gar nicht zu erstellen sind.

Microsoft nennt die Frostbite-Engine von EA, die Unreal Engine, Unity sowie 3DMark als die ersten Produkte mit der Unterstützung von DXR. Nvidia nennt Frostbite, Unreal Engine, Unity und Allegorithmic als Engines, die RTX implementiert haben, sowie EA, Remedy und 4A Games als Entwickler, die erste Spiele mit RTX anbieten werden. Die ersten Spiele mit DXR (und RTX) sollen noch im Laufe dieses Jahrs erscheinen. Da 4A Games genannt, wird ist die Wahrscheinlichkeit hoch, dass Metro Exodus DXR unterstützen wird. Das Spiel soll im Laufe dieses Jahres erscheinen.

Exkurs: Was ist Raytracing?

ComputerBase hatte sich bereits vor Jahren in der Serie „Raytracing in Spielen“ mit dem Thema Raytracing befasst. Die darin präsentierten Informationen und Erkenntnisse zur alternativen Rendering-Methode sind auch heute noch gültig.

Update 23.03.2018 07:03 Uhr

4A Games hat den Einsatz von Microsoft DXR, erweitert um Features der Nvidia-Umsetzung RTX, auf der GDC 2018 inzwischen bestätigt und am Donnerstagabend deutscher Zeit einen ersten Einblick in die Engine des Spiels gegeben. Umgesetzt wurden per Raytracing die Effekte „Ambient Occlusion“ und „Indirect Lighting“, höchstwahrscheinlich auf Basis der von Nvidia in Aussicht gestellten GameWorks-Bibliotheken.

Microsoft DXR in der Filmindustrie

Auch Epic Games hat auf der GDC eine weitere Demo mit DXR-Unterstützung auf Basis des Backends XTR von Nvidia auf Basis der Unreal Engine 4 gezeigt – in Kooperation mit ILMxLAB. In diesem Fall handelt es sich allerdings um eine reine Technologie-Demonstration ohne direkten Bezug zu einem Spiel. Es wird ein bisher nur aus Filmen bekanntes Qualitätsniveau präsentiert – in Echtzeit gerendert. Die Entwicklung wurde auf Nvidias DGX Station mit vier Grafikkarten vom Typ Tesla V100 vorgenommen. Kostenpunkt: 49.900 US-Dollar. Ob sie auch zur Berechnung des finalen Videos zum Einsatz kam, ist nicht bekannt. In diesem Fall kommt auch Nvidias Raytracing-Rauschunterdrückung zum Einsatz.

Update 31.03.2018 09:35 Uhr

Interessierte Entwickler können ab sofort mit den Arbeiten an der Umsetzung von DirectX Raytracing in Spielen beginnen. Der entsprechende DirectX-12-Layer für den Kompatibilitätsmodus auf bereits verfügbarer Hardware wurde von Microsoft auf GitHub zur Verfügung gestellt.